ShelfAware: From Receipt to Reminder - and Beyond

About the Project:

ShelfAware is a web application designed to combat food waste by extracting expiration dates from grocery receipts and reminding users to use these items. We aim to transform how people manage their food, minimizing waste and maximizing consumption.

Inspiration:

The inspiration for ShelfAware came from a simple, yet frustrating, experience: throwing away expired food. We noticed how often we'd purchase groceries, only to forget about them until they spoiled. This waste of food and money sparked the idea of a tool that could proactively manage expiration dates. We wanted to create something practical and accessible, empowering individuals to make more informed decisions about their food consumption.

What We Learned:

This project was a fantastic learning experience in several areas:

  • Optical Character Recognition (OCR): We dove into the world of OCR, specifically utilising Tesseract, learning how to process images of receipts and extract text accurately. We learned the nuances of Tesseract and image preprocessing for optimal results.
  • Date Extraction and Parsing: We grappled with the complexities of date formats, which vary significantly across different products and regions. We learned how to develop robust algorithms for identifying and parsing date information from extracted text.
  • Frontend Development with React: We gained practical experience in building a user interface using React, focusing on component-based architecture and state management.
  • Backend Development and Firebase Integration: We learnt how to build a database using Firebase and have efficent operations for retrieval, modification and deletion.

How We Built It:

We built ShelfAware using the following technologies:

  • Frontend: React.js for the user interface.
  • OCR: Tesseract OCR.
  • Database: Firebase Realtime Database.
  • APIs: We utilized various APIs to enhance functionality including Gemini, Google Maps and Firebase

Challenges Faced:

We encountered several challenges during the development process:

  • OCR Accuracy with Tesseract: Achieving consistent and accurate OCR results with Tesseract was a significant hurdle. Receipt images can vary in quality, and text can be distorted or difficult to read.
  • User Interface Design with React: Creating a user-friendly interface with React that was easy to navigate and use was essential.
  • Time constraints: As a hackathon project, time was a major constraint. We had to prioritise features and make efficient use of our time. Due to these constraints, we were unable to fully implement the ability of users to connect to local charities and organisations.
  • Firebase Integration: Learning and implementing Firebase Realtime Database within the time constraints was a learning curve. The structure of the realtime database was difficult to implement at first, due to the nested nature of the data.
  • Google Maps API Integration: We faced difficulties integrating the Google Maps API to accurately locate and display nearby charities. Challenges included handling API key security, managing CORS issues, and accurately filtering and displaying relevant charity information.

Future Improvements:

We envision ShelfAware evolving into a comprehensive food management platform. We plan to:

  • Recipe Recommendations: Integrate a feature that provides recipe suggestions based on expiring products, helping users utilize their food before it spoils.
  • Social Product Trading: Create a social platform within the app where users can trade products that are nearing their expiration dates, fostering a community-driven approach to reducing waste.
  • Charity Donations: Implement a system that allows users to easily donate expiring items to local charities, contributing to food banks and those in need.

By incorporating these enhancements, we believe ShelfAware can make a significant impact on reducing food waste and promoting sustainable consumption.

Built With

+ 78 more
Share this project:

Updates