Inspiration

Have you ever been stuck in that endless cycle of eating the same meals over and over again but aren't sure how to expand your grocery list? Sick and tired of watching leftover ingredients go bad? SnaptoSavor is our AI-Powered Recipe System designed for you!

This idea holds special nostalgic significance to our two senior teammates, Katrina and Bob. In their first ever hackathon back in 2019, they designed SeasoningShack, a similar website that searches recipes in an effort to save food waste and promote sustainability.

In addition, as both Bob and Katrina are set to graduate this year, this serves as a way for them to directly visualize how much they have grown during their 5 years and University of Toronto compared to their young first year selves and all utilize the skills they picked up along the way to truly redefine the vision they had 4 years ago. This time, we upgraded the idea with AI-powered image recognition so that users could simply take a picture of their fridge to identify ingredients, and then get recipes. In addition, SnaptoSavor is fitted with a backend SQLite Database to efficiently store recipes and ingredients to allow for more efficient querying.

Our other teammates, Snow and Marilyn, are first years learning the ropes to carry on this legacy. Our hope is that they will grow just as much if not more than Kat and Bob in their journey through university.

What dat Snap do?

SnaptoSavor allows hungry but clueless users to upload an image of their ingredients, and provides recipes based on the ingredients available. It recognizes all the ingredients in the picture and compares it against an extensive database of recipes in order to provide users with a large variety of options for them to try and stretch their eating habits with.

How we built it

SnaptoSavor is fundementally built using the Taipy Python library. It powers their frontend UI and connects various API calls.

On the backend, a from-scratch SQLite Database deals with the bulk storage, transformation, and configuring of large amounts of recipes with custom made functions made to allow the database to be easily called from the frontend.

Challenges we ran into

As we were working with Taipy for the first time, it was initially challenging to wrap our heads around the Taipy's concepts of "state" and syntax format. Moreover, working with certain APIs, like LogMeal, was challenging to connect with the front-end components due to all the tricky call-backs and syntax required by Taipy.

Accomplishments that we're proud of

Managed to generate a functional website incorporating Taipy, an open source Python Library we'd never encountered before. In addition, we were able to use an AI-powered API to detect the ingredients from an images, and link the output data to our recipes page.

On the backend, this was the first time we'd been able to fully build a database schema by schema from the ground up using SQLite as opposed to using an existing database like MongoDB or Amazon Firebase.

What we learned

For all 4 members of our team, this was not only our first experience with Taipy but also with web design and development in Python. We also placed heavier significance on making a visually pleasing and user friendly webpage making us put more effort into balancing functionality and looks.

What's next for SnaptoSavor

SnaptoSavor has significant room to grow in it's current state. There are some planned features that did not end up making it into the final product and some stretch goals that could be achieved with enough time and development.

First and foremost, we planned on adding OAuth so that users can login and save their favourite recipes, and even auto-save the recipes and ingredients lists to their Google Calendars to ease meal-planning!

The addition of users as a category allows us to filter by things like food preferences and/or allergies to better refine our queries.

Among the various unused SQLite Database schema and architecture, there are columns in place to store information on the recipe steps to potentially provide users with recipes in friendly and digestible forms. There is also more functionality and data clarity available for ingredients with the ability to hopefully store nutritional information and allow SnaptoSavor to help people track their dietary fitness goals.

Built With

Share this project:

Updates