Inspiration

The inspiration behind FoodHero is to minimize food waste. Millions of pounds of food is wasted annually in the USA, and one way to decrease that number is to increase the awareness of the shelf-life of your food items, and increase the amount of donations.

What it does

Our app, allows users to upload receipts from their grocery store purchase after they have signed in and uses the Lovable API for extracting the information from the uploaded receipt, making predictions on the shelf life of the food and the category of the food item. The user can make changes to the fields if the AI is inaccurate.

How we built it

Our tech stack involves Supabase, React.js, TypeScript, Node.js, the Lovable API for inferences, and the OpenStreetMap API for the map. We used an edge function to handle the logic of passing the receipt from the frontend to Supabase because Supabase is a PostgreSQL database and backend as a service, eliminating the need for an Express server. Once that receipt is passed from the frontend to the edge function, the edge function will make a call with that info to the Gemini API using the lovable API, so we didn't need our own Gemini API key. The extracted info is sent as a JSON back to the edge function from the Gemini API, then the edge function populates tables in Supabase.

Accomplishments that we're proud of

We're proud of the UI design, our architecture decisions, and integrating the AI to extract information from the receipt and making inferences. We shipped many features under this condensed deadline, and have plans for many more.

What we learned

We learned the importance of system design because we constantly reviewed our approaches to potential features and the overall app flow. It was our first time using edge functions also, so that required some research to ensure we're using it correctly and securely.

What's next for FoodHero

We have plans to scale the app to partnerships with food banks locally, and eventually globally. Food banks will provide donors with a QR code to scan and verify their donation and the user will receive points for verified donations. We will also add a confetti animation when a donation is verified to encourage more donations. For the tracker screen, we will implement multiple filtering options through check boxes that the user can select and deselect. The checkboxes include filtering by food category (Meat, Produce, etc) , shelf life (lowest to highest or highest to lowest), and storage method (Frozen, Fridge, Pantry).

Built With

Share this project:

Updates