Inspiration

When it comes to a healthy future, ensuring our cities are sustainable is critical - and can be contributed to through small, deliberate steps. Statistics show that a single family wastes around 275 kg of food per year, so we wondered how we could impact this. In our own kitchens, food is often disposed of because it has gone bad. Foods were forgotten about and perhaps over-purchased. We imagined a solution - an app called Chexpiry that could identify how much longer a food would be good, remind users to consume or freeze the item soon, and make suggestions to the user.

What it does

Chexpiry has three main features- Shopping, Pantry and Suggestions- which all contribute towards minimizing food waste by informing the user of the fruits and vegetables' short shelf lives.

The Shopping feature of the app is to be used at the end of each grocery run. When the user takes a picture of their produce groceries and upload it to the app, the app identifies the food items and returns the estimated number of days each type of food would last in that given household. If the estimated number of days of finishing the food exceeds the shelf life of the food, the app notifies the shopper and encourages them to drop certain food items.

Pantry feature is a page for the user to keep track of the vegetables and fruits in their fridge as well as their estimated shelf lives. The items are automatically added to the Pantry upon the grocery picture upload and stay on the list until they are "Removed" by the user, after it has been eaten.

Lastly, the Suggestions feature reminds the user of the existing food items in the pantry that are approaching their estimated shelf lives. This feature begins to send reminder notification to the user 3 days prior to the estimated shelf life, recommending recipes or food preservation methods to reduce food waste.

How we built it

Our team began with a general framework of frontend and backend sides of the application and identied APIs or external resources needed to build this project. At this stage, we also divided areas of the application that each member would be focusing on.

After hours of struggle on frontend with various tools, our frontend development team was able to learn bootstrap which incorporates JavaScript and HTML to develop a web-based application. Another developer utilized a python server, Flask, to interact with Google Cloud Vision API to process images uploaded by the user and identify the present food items. Finally, the data of shelf lives, types of fruits as well as possible recipes and suggestions were combined on mlabs to be a comprehensive data set.

Challenges we ran into

As first-time web developers, frontend design was extremely challenging to get started on. Given the time constraint and steep learning curve of many web-dev tools, we were not able to easily find the appropriate one for the Hackathon app development task. However, upon trying out many platforms, we were able to find a fitting framework for our goal - bootstrap.

In addition, communication between frontend and backend aspects were challenging. We struggled with setting up a rest endpoint API and as a result could not send needed image files inserted through the web application to the desired server.

What we learned

Through this project, our team learned about the importance in integration of parts and how functionality of each parts are essential for performance of the whole. Even when we each had figured out our respective parts for the application, without the API and the communication to tie them all together, the application couldn't exist.

We also challenged ourselves by branching out to aspects of programming that we were originally unfamiliar with. Although this was very difficult and we were faced with a lot of steep learning curve, at the end it was an invaluable learning experience for everyone. Each member finished the project with knowledge in at least one topic they previously were new to, whether it be using Cloud platforms or coding in HTML.

Special Thanks

We would have been unable to complete this project without the support of some friends and mentors, a few of which we will mention here. Thank you to Luke for helping us to understand how to set up the project in different sections. Thank you to Sid for his patience and understanding with strange and simple issues. Thank you to Esther for suggesting that we try to use Bootstrap. We appreciate it so much!

Share this project:

Updates