When you're cooking, you'll find that you'll end up forgetting that some ingredients even existed in your refrigerator. Eventually, they'll rot in place, and you'll be left with a bad smell and a bunch of food waste. We wanted to find a way to help stop that waste from happening and at the same time help users save some money and learn some new and more healthy ideas for recipes.

What it does

Munch takes in either a list of ingredients or a name for a dish along with dietary restrictions and outputs a list of ten recipes ordered by the best match. You can click on all of these recipes to see more detailed information such as the exact amounts of all of the ingredients, their estimated total cost in US dollars, step-by-step cooking/preparation instructions, and disgustingly detailed nutrition facts, such as calories, protein content, and vitamin/mineral content. Munch supports all sorts of food items from overly complicated fancy desserts with unpronounceable French names to your run-of-the-mill ham-and-cheese sandwich.

How we built it

Using the Dart programming language we created a Flutter project in Android Studio Code. One of the main advantages of Flutter is the fact that it is completely cross-platform. Our application can be run on the web, locally on an Android or Apple iOS smartphone, or even on a Windows PC or Mac. Munch is however designed as a smartphone app first and foremost. To obtain its data, Munch sends and receives queries to and from the RESTful "spoonacular recipe-food-nutrition" API hosted on

Challenges we ran into

Flutter was a huge obstacle in our development process. It was very new to us as only one of our team members had any prior experience with it. Getting Flutter working for everyone was such a big issue that only one of us was able to get an Android emulator to function, so only that one person was actually able to write and test all front-end code.

Accomplishments that we're proud of

We managed to make a functioning prototype application with Flutter despite our lack of experience with the software. We were also able to implement multiple extra features at the end.

What we learned

We learned that communication was essential. (Don't we all...) From inconsistencies in formatting URLs, our differing ideas of the control flow of the application, and what the return types and parameters needed to be were, there were many things that we inadvertently butted heads on. By the end, however, we were able to manage just fine with the help of writing out and documenting our work, and just plain communicating better.

What's next for Munch

We have many possible features that could improve much of the functionality of our application. Many of these features would further our goal of reducing the food waste of users and would increase the health benefits of using this app. This includes: giving each recipe a generated health score, allowing users to make accounts, saving current inventory of ingredients and dietary preferences to accounts, when clicking on a recipe, ingredients already in an inventory are highlighted, receiving cost estimations and estimated amount of savings, selecting recipes and automatically building a shopping list, sending push notifications when ingredients are about to expire so they are not forgotten, favorite recipes to save and reuse, and uploading user-generated recipes.

Built With

Share this project: