As college students, we are no strangers to being hungry, but with a limited number of supplies in pantry. Because of this, we thought it would be a nice idea to make a site that could take in what we have and get us a large repository of recipes that we can choose from, all in one place.

What it does

Peckish Pantries takes an input of ingredients from the user and, using the Recipe Puppy API, searches the internet for recipes that use the given ingredients. We created a "tolerance" option for the search function that allows the user to determine how strict they want the ingredient list of the results to be: 0% for all recipes that use at least some of the ingredients ranging to 100% for recipes that use only the ingredients given, nothing more. The results are displayed in a card-style format with links to the recipe source for fast navigation.

How we built it

Peckish Pantries was built using a base of python in the back-end with Jinja and Flask as the HTML5 support. We linked together some of the elements on the webpage with HTML and did formatting with CSS, Bootstrap, and a small bit of Javascript.

Challenges we ran into

None of us had experience with multi-threading in Python before, and we had issues getting the threading to work in such a way that it didn't eat up all of the CPU usage. Finding a usable (free) API that we could base the search function off of took a very, very long time to find, and then required us to learn how to parse out the JSON results into something python could utilize.

Accomplishments that we're proud of

We managed to solve all of the challenges that we ran into (see above), and did so in a fairly time-efficient manner. Getting the search queries to complete in reasonable amounts of time was a big relief, especially given the amount of pages the queries had to sift through.

What we learned

We learned that finding good ingredient/recipe APIs is extremely difficult, and we now have a grasp on how to utilize multi-threading for future projects.

What's next for Peckish Pantries

We'd like to fine-tune how accurate the tolerance limit is, provide nutritional information for the dishes/ingredients, and create a means to sort the results by some other kind of criteria, such as cost or food group.

Share this project: