Inspiration

We were inspired by working parents, professionals, and other individuals who struggle with deciding what to cook for dinner every day. Many of our parents are immigrants and we have experienced their lack of time and energy for meal planning. But their persistence in providing healthy and home cooked meals for their families is why they didn't turn to easier options like eating out or pre-packaged food.

What it does

Swinner is an Android app that makes meal planning easier than ever. After downloading the app and creating a free account, users are greeted with some preliminary questions:

  1. What is your planned budget per meal?
  2. Do you have any dietary restrictions and/or allergies?
  3. Which cuisines do you like?
  4. How much time are you able to dedicate to cooking?

After establishing some basic parameters, users get access to thousands upon thousands of curated recipes. They swipe right or left to "favorite" or "skip" a recipe. Users can view directions to cook their favorite recipes, or even check out the ingredients to be delivered to their door.

How we built it

To build all the graphic elements, we used iPad apps called Vectornator and Assembly.

Using sqlite3, we were able to parse Internet data to construct a dynamic database that would hold all our recipes, as well as information about these recipes (images, instructions, ingredients and their quantities, meal prep time, ratings, and number of reviews). Based on the tags of each recipe and the user's preferences, we iterated through the recipe database to provide optimal meal options.

Additionally, we made use of algorithms to (1) create a rating metric, specifically by mapping the number of reviews to the natural logarithm function; then, multiplying the average rating times this value and (2) calculate costs of carts of ingredients.

To build the GUI, we used a python framework called kivy to build the pages of our app along with their layouts (GridLayout, StackLayout, etc.) and components (labels, buttons, widgets, etc.). Lastly, we integrated our frontend, backend, and database to complete our program.

Challenges we ran into

We first started working on the GUI on Android Studio, but quickly realized it was difficult to design activity pages. So, we pivoted to using kivy because of our collective experience in Python. However, we did not know kivy, so we read through the documentation and watched tutorial videos to get up to speed.

With our database, we had to be able to gather a very large amount of data. Specifically, scraping images from recipe websites proved difficult. To combat this, we learned how to use an extension called beautiful soup to scrape only the images from the recipe websites and add this information to our database.

Accomplishments that we're proud of

As beginners (most of our team are freshman), we are proud of making it through our very first hackathon! We worked for 30/36 hours and persevered even when it seemed like we weren't close to finishing.

What we learned

This challenge has taught us a lot about working as a team and playing to each team member's strengths (and weaknesses). Talking through ideas and planning them out before starting their execution is also a lesson we learned. We had very high expectations in the beginning for what our app would look like and be like, but could not meet all of our goals. This has shown us that we should take challenges one step at a time when it comes to tackling complex problems.

What's next for Swinner

In the future, we would like to integrate Swinner with grocery stores or other partners. This would allow us to better serve our customers by delivering ingredients to their door. We would also like to implement a machine learning program to learn about a user's preferences based on their swipes right or left.

Share this project:

Updates