This project was inspired by the documentary Wasted! The story of Food Waste, which discusses how 1.2 billion tonnes of food is wasted each year. What stuck out to us was that a substantial amount of food waste is due to items expiring or people not knowing how to use their food scraps. We decided to do something to solve this problem and started brainstorming ideas. Out of the many ideas we thought of, there was one that repeatedly seemed to be the most viable option to combat food wastage, which is where Recipify was born.

The app allows users to input the items in their fridge or pantry and provides recipes that use the ingredients the user selects. It encourages users to input an expiration date for their items, and the application sends a notification 10 and 5 days before the item goes bad. The purpose of this functionality is to remind the user of items that will expire soon, so they are more likely to remember to use them.

Starting with wireframing, we brainstormed ideas for functions of the app, all of which made it into the final design. We also got our color scheme figured out, to make the UI as cohesive as possible. Then began the coding. We have worked with authentication and Excel spreadsheets to input data before, so those were some of the easier aspects to implement. Parts of the fridge, however, took much longer to figure out.

The add dialog was the our first focus in the fridge. Dates and calendars were completely new to us, so it took a while to understand that since Date is a different data type that String, we could not use a string of the expiry date and the date version of the same information interchangeably. Selection and deletion also were complicated aspects, because there were many dependent interfaces and classes we needed to ensure stayed complete - if one interface was not correctly implemented (spoiler alert - this happened multiple times!), the whole selection and deletion code would stop working.

Learning from our last few projects, we split the work according to our strengths. One of us worked on generating and importing data from Excel, as well as creating the Recipe activity while the other worked on the fridge function, login pages, UI and notifications.

We did have some challenges when completing the application. We are still learning to work with GitHub, and although this project was significantly more successful than our previous ones because we knew how to pull and merge changes, there were still a few times where we pushed into the wrong branch or had difficulty pulling from the master branch due to different Gradle or manifest files. Additionally, we had three people working on this project: two in Pacific time and one in Eastern. Some days, it was difficult to coordinate who does what, especially since one of our team members had no previous experience in using Java or Android Studio.

Nearly all of the functionalities of the application are things we learned for this application, however, and we are all very proud of that. For example, the implementation of lock screen notifications, the saving of data into Firebase (different accounts for each username), and creating clickable cards that take the user to the associated recipe pages. We learned a lot about teamwork and improved on our work ethic, as well as our skills with Android Studio.

In the future, we plan to implement AI to allow the user to have all the ingredients in their fridge or pantry automatically inputted through a photo of their fridge or grocery receipt. Currently, the user must manually input the items they have, which is inefficient.

We are also working on using AI to generate recipes for ingredients that aren't commonly seen in modern cuisines. For example, creating recipes with uncommon combinations of ingredients, such as using honey in grilled cheese sandwiches, or using overripe, and otherwise inedible, bananas to create desserts like s’mores.

Share this project:

Updates