For my final, I decided to build an Adafruit wishlist collation system for ITP.
A lot of us at ITP require electronic components and modules, and the usual go-to place is for us is Adafruit. The unfortunate part is that Adafruit, despite being in New York, charges for shipping, unless the order amount is greater than $200. As a result, a lot of us email the student list to check if anyone else on the floor also needs parts. My hope with this project was to attempt to streamline this process.
This is what I’ve built so far:
If logged into Adafruit, one can create public wishlists. In the system I built, anyone wishing to buy starts by creating a public wishlist, pasting the URL of the wishlist along with their email address and an expiry date for the wishlist.
The service then scrapes the wishlist page for the user’s name, and overall cost of items on the wishlist. As soon as a list is added, an email is sent to the user to confirm the validity of the wishlist. Once the user confirms, the list is highlighted in green to signify that it’s confirmed. Others may also add to this list of wishlists, and once the overall cost of all confirmed wishlists are beyond 200 dollars, it sends an email to all the email addresses associated with that list.
Here’s a link to the code.
I used nedb to store the data since this program will probably have to deal with a relatively small amount of data. I used bootstrap, ejs for templating, cheerio for scraping, and sendmail to send emails for confirmations and notifications.
Here’s a link to the site. I might bring it down soon, and work on it more. The confirmation emails currently look super sketchy and
might will end up in the spam folder (just FYI). I’ll fix this soon.