Inspiration

According to the USDA, food waste amounts to 30-40 percent of the country’s food supply. To put that into perspective, that’s around 80 billion pounds of food that end up in landfills and contribute to the ever growing climate crisis. To help combat this, we wanted to tackle the problem of wasted ingredients when cooking. Food Finders is a mobile app that allows you to take a picture of ingredients in your home to provide an assortment of recipes that utilize these already existing ingredients. This helps eliminate the problem of unused ingredients whether it’s from expiration or not knowing how to use them while providing delicious meals for the user.

What it does

Our app allows users to take a photo of ingredients that they already have which are then identified and listed out. Then, the user will be provided a list of possible recipes with links to those recipes. This app allows any user to take a picture of the ingredients he/she has.

How we built it

We created a mobile application using React Native to allow the user to easily take a picture of the set of ingredients that they have and receive a possible list of dishes they can make. After the user takes the picture, we save it in base64 format and send it to a Flask server. The Flask server contains Python code that saves and converts the image appropriately before sending it to the LogMeals API, which generates a list of ingredients from the image using image processing and machine learning. The Flask server is then called using the Fetch API to retrieve the data from the API call in Python. Next, this set of ingredients is sent to the Spoonacular API that outputs a list of possible recipes the user can create with their set of ingredients. Finally, the recipes are elegantly displayed to the user on the mobile application.

Challenges we ran into

Initially, it was difficult to properly set up the camera functionality in our app and also save the resulting image in a format that was easy to send between API calls. Following this, we had to compress the size of the image to a size small enough to send to the API. After compressing the image, we were not able to call the LogMeals API in JavaScript due to vague documentation and had to create a Flask server as a result. When accessing the Flask endpoint, we had trouble receiving the data in a readable JSON format, which took us many hours to troubleshoot.

Accomplishments that we're proud of

We were happy to successfully build a mobile app as for the first time. On top of this, we are proud of the vast tech stack we used and solutions we came up with for our main problems.

What we learned

We were able to learn about the intricacies of effectively transferring data between APIs and managing it throughout. We also used Flask for the first time and learned about creating a server to retrieve results from and API. We were also able to learn about React Native and mobile development as a whole throughout our time working on our project. Furthermore, we learned about the importance of being able to access an API directly and always doing so when possible.

What's next for Food Finders

In the future, we hope to implement features to improve the user experience and make our application more robust. For example, we hope to add features such as favoriting to allow users to save recipes that they enjoyed and adding ingredients that may not be pictured to the query. We would also like to incorporate a difficulty gauge, to allow users to filter recipes based on time and overall effort to make. Finally, we hope to implement a forum to allow users to talk among themselves and share recipes they especially enjoyed!

Built With

Share this project:

Updates