💡 Inspiration

A common problem among post-secondary students is food. When leaving home for the first time and no longer having your parents to take care of feeding yourself, maintaining a balanced diet and keeping track of freshness can be a chore. By simply scanning the barcode on food items you purchase, add its data straight to your device and view it in your "virtual fridge".

In addition, having been a volunteer for Food for Peace, we noticed that many institutions and individuals have soon to be expiring products that could be used to cook foods for those in needs! So when seeing a product soon to be expiring, notify the charities and food banks around you!

🍽️ What it does

  • Scan a barcode or upload an image of one to your app, and watch as useful health data is summarized and visualized right before your eyes!
  • Integrated with the OpenFoodFacts database, PizzaMind will display some key nutritional facts in an easy-to-understand way, along with a nutritional score based on the food's overall healthiness.
  • Add foods to your shelf to track best before/expiry dates so you can avoid food waste.
  • Donate to local food banks around you if you're unable to finish food!

⚙️ How we built it

We initially wrote some backend in Python using Flask framework. We eventually introduced React to introduce a more polished front-end. We integrated our system with Auth0 for user logins, MongoDB for data storage, and set up additional functionality in JavaScript and HTML. We used various Python packages, such as Pillow, and pyzbar, to set up the scanning and basic functionality of our system. We maintained our system and our various developments through a GitHub repository.

✨ Stack

  • React for frontend
  • Bootstrap to make it mobile responsive
  • Webfontloader library for the gorgeous fonts
  • Mapbox API for showing nearby charities and food banks
  • Auth0 for user functionality

🥊 Challenges we ran into

While we had some familiarity with some of the frameworks and languages used, we had to learn many new skills and software, such as MongoDB and Flask, in order to get our system to be fully functional. Additionally, the implementation of computer vision in order to scan barcodes and extract data was challenging, as despite the existence of packages within Python and JavaScript that could help with this, cleaning up and storing the data properly proved to be a difficult task.

🏆 Accomplishments that we're proud of

Having completed the barcode scanning and uploading system and fully integrating it with MongoDB, which none of us were overly familiar with at the beginning, was very satisfying once completed. We are also happy with the idea to expand our product going forward for social justice, as we had the idea to use this project to assist local food banks (more on that in the What's Next section).

📖 What we learned

This project allowed us to gain a lot of insight into the development of major web applications. Though ideally our app would be mobile-based, web-based was easier to figure out in 36 hours and easier to demonstrate live. This major project consisted of all three of us alternating between frontend and backend development as needed, so we learned a lot about the full stack process and how to integrate all the various components of our system. We also learned about various useful, free online sources, such as Auth0 and MongoDB, that can be implemented into our system to aid in critical functionality. These systems, despite making some of our work easier, still took much time, effort, and trial and error to learn enough to use in our project. We also learned about designing user-friendly interfaces and branding aesthetic, as coming up with idea for frontend led us to really dive into what kind of an app we wanted to create and how we could make it both functional and useable.

🌎 What's next for PizzaMind

Approximately 2.3 million tonnes of food went to waste in Ontario due to the general public in 2020 (Gov't of Canada, 2020). We would like to implement a system where users can donate food near expiry to local food banks that are willing to accept it. This would function like a sort of reverse UberEats system, where the user sends out the request, a food bank responds and can send a representative to the user's location to collect the food item(s). This way, further food waste is prevented in the event that a user realizes they are unable to use up a food item before its expiry; this also allows the food to go towards a good cause.

Sources Cited:

Government of Canada Publications, Government of Canada, 2020. National Waste Characterization Report: The Composition of Canadian Residual Municipal Solid Waste. https://publications.gc.ca/collections/collection_2020/eccc/en14/En14-405-2020-eng.pdf.

Share this project:

Updates