Description as a Tweet:

As our lives become increasingly fast-paced, we tend to forget small things like expiration dates of perishable items. But items like medicines can be required on urgent basis and expired medicines can be an inconvenience. Hence, I built Best Before, an expiry date tracker.


Once I fell ill during midnight, and even though I had the medicine at home but I found out it had already expired. So, my father had to go look for a 24x7 medicine store in the middle of the night. That is when I thought that this situation wouldn't have arise if we had a system where I could keep track of the expired items of household.

What it does:

The user can sign up to the best before website. Then they can add the perishable items to their dashboard. Every morning all the items in user's dashboard are scanned and if any expired items are found then a notification is sent to the user.

How we built it:

All the frontend has been built using ReactJS. The backend logic for login, signup of the users, addition and deletion of items has been implemented using Node.js, Express.js and MongoDB. Every morning the items' expiry date entered are checked against current date. This has been implemented using node-cron package. If any expired item is found then a notification is sent to the user using Twilio SMS API.

Technologies we used:

  • Javascript
  • Node.js
  • Express
  • React

Challenges we ran into:

Since, I was working alone, it was like a race against time. also, I am not fully confident with backend so I had to search and watch a lot of tutorials to implement each feature (like adding and deleting the items). Since, I am from India and Twilio trial doesn't provide SMS facility in my country so I had to figure out a way to use a US dummy number instead.

Accomplishments we're proud of:

I am very proud of the UI of the website. It is very smooth and looks pleasing to the eye. Other than that I am happy that I was able to implement the backend of the website perfectly.

What we've learned:

Before building this website, I was not very good at backend web development. But after building this, I can confidently work on any backend project.

What's next:

Next, I am planning to figure out a way to stop using dummy numbers and instead be able to send a notification to the user instead.
I also plan to incorporate a feature so that the user can customize the timing of the notification.

Built with:

To build this project I used ReactJS (Frontend), Node.js and Express.js (Backend), MongoDB (Database)
and VSCode (IDE). I also used Twilio SMS API to send notifications to the users.

Prizes we're going for:

  • Nintendo Switches
  • Twilio Swag Box, GameGo Console
  • Apple AirPods 3rd Gen
  • Hydroflasks
  • Meta Portals

Team Members

Sanchi Bansal

Table Number

Table TBD