EqualifyEverything/equalify

Add Bulk Upload CSV

Closed this issue · 12 comments

Here is a video demo of the feature: https://www.loom.com/share/7538d9060d464570bb36282771c7c20b?sid=1e0389b1-4d86-449d-8e8a-84fefbded3fe

Important Notes:

  • Announce when your toggling bulk upload or single upload to screen readers
  • Validate URLs uploaded - announce any issues
  • Validate CSV columns and data - announce any issues
  • Announce successful upload

Here is a sample CSV: https://github.com/EqualifyEverything/eudaimonia-wp/blob/main/websites.csv

@heythisischris said he was interested in jumping on this. Bounting this issue. He is going to submit a quick proposal for approval. Adding this to our next Sprint, since @heythisischris said he can get the issue done in a few days.

Always excited to work on power tools. Here we go:

Overview

We're building a bulk CSV import tool for Equalify. The idea is to allow users to upload CSV lists of properties with the following attributes:

  • Name
  • URL
  • Discovery

We'll have to intelligently detect what columns correspond to what fields. We can leverage GPT-4o for this purpose.

Steps

  • Create API endpoint to preview Bulk Upload (POST /bulk/preview)
  • Create API endpoint to handle Bulk Upload (POST /bulk/upload)
  • Create API endpoint to roll back Bulk Upload (POST /bulk/rollback)
  • Add "Bulk Upload" button to Properties screen
  • Create Start Bulk Upload route
  • Create Preview Bulk Upload route
  • Create Bulk Upload results route
  • Ensure accessibility across all new routes
  • Test bulk uploaded properties and ensure everything is working as expected

Budget

The requested bounty is $500 for roughly 8 hours of development spread across 2 days.

This comes out to an effective rate of $62.50/hour.

Timeline

I intend to have this completed and ready for by August 23rd, 2024.

Approved.

$250 payment initiated.

EqualifyEverything/equalify-dashboard#60

Created a pull request, would consider this issue complete after it's approved.

adding @kevinandrews1 - Kevin you should be able to test adding multiple properties under "Properties" at https://equalify.dev

@heythisischris: There is currently no validation. We need to validate:

  • to make sure you're adding a CSV
  • the csv has the correct column names
  • the url is a valid url
  • the type is a valid taype.

It incorrectly reported that this was successfully added:

name,url,type
Equalify Single,https://decubing.com,fake
Equalify Sitemap,httpfdfecubing.com/sitemap.xml,sitsfsdfemap

Feel free to push to staging and let me know when it's up there to test.

EqualifyEverything/equalify-dashboard@d154692

@bbertucc Validation is added and pushed to staging! Handling everything that you listed above. @kevinandrews1, you can start testing over at https://equalify.dev.

@kevinandrews1 any updates on this? It's ready for you to test.

@bbertucc @heythisischris I will get to this and report back by the end of today.

For @heythisischris:

  • Went to equalify.dev
  • Logged in
  • WEnt to Properties
  • Activated Bulk Upload CSV
  • I get the "reports page loaded" message with JAWS
  • There should be a message that tells you the upload was successful. Basically all I get with JAWS spitting this out at me "Showing first 10 rows name url type Equalify Single..." The upload message is cleaner and more informative.
    Otherwise this is great! When I press submit I get the notification the property was successfully added.

Reassigning @heythisischris to add an upload confirmation

EqualifyEverything/equalify-dashboard@54d10c2

@bbertucc added upload confirmation, I think this task is completed and ready to merge into production.

Thanks! Looks good.