Inspiration
It's difficult to keep track of all the groceries you have in the fridge. Often, people forget about food they have and it simply goes bad, not being eaten and contributing to food waste. Our goal was to create a fun and easy to use application that would help solve this problem.
What it does
Users can upload pictures of their receipts, which the application converts into a clean, organized list of food items. The users have the ability to manage this list, either deleting items or manually adding items. Finally, our application can generate a list of recipes that use the items in the user's list. This allows them to find promising new food to cook with what they have on hand.
How we built it
We built the desktop application using PyQt5, which is the Python wrapper for Qt. In order to convert pictures of receipts into usable text, the OpenCV computer vision library was used in conjunction with the Pytesseract optical character recognition(OCR) engine. We used the Python requests library to query Supercook, which was the database that we referenced to find recipes.
Challenges we ran into
Time was a big issue since we were using a lot of new tools that we weren't familiar with and had to learn. Additionally, a couple of our team members had other commitments that kept them from being able to focus more on the project. Another difficulty was making the GUI. None of us were very visually inclined, so it definitely a challenge.
Accomplishments that we're proud of
We are proud of creating a finished, working prototype. The final product was surprisingly similar to our original vision.
What we learned
We gained experience in developing desktop applications with PyQt5, which was really interesting. We also learned a lot about managing our time effectively under close deadlines. Other than the technical programming aspect, we also figured out how to collaborate better as a team.
What's next for PantrySaver
There are a ton of ways for us to expand this project. We planned to add accounts, favorited recipes, and a webapp version, but we did not have enough time. We could also refine the receipt processing to make it more accurate.
To try it out, download the files from the github link, install the dependencies, and run main.py.
Log in or sign up for Devpost to join the conversation.