There is $42.8 billion per year in food waste in the US. The current state of expiration labels in the world is overly complicated and results in massive amounts of food waste. We have all seen the combinations of "Best by", "Use by", and "Sell by" dates on the expiration labels of all sorts of products. Upon doing further research, we realized that these terms do not actually convey the expiration date of the product. For example, the term "best buy" is when the flavor is the best, not when the product expires. Over 33% of participants in a study conducted last year incorrectly assumed date labeling is federally regulated and another 26% were unsure. With Expirology, we aim to create a system for managing expiration dates based on the USDA database of refrigerator shelf life, rather than the confusing manufacturer labels.

What it does

Expirology is an iOS application that reduces food waste through an organizational system and greater freedom of information. By integrating a variety of federally regulated databases about expiration dates, the application can either use manual entry or a picture of a food and add it to your list of expiration dates. Expirology also sorts the expiration dates on the home page and has a comprehensive list to search through as well.

How we built it

We decided to build this by dividing into different product development roles and teams. Vishal created a custom API that the iOS application could query data from using Python, Flask, and HTML. Rahul combined databases of information while cleansing and parsing through thousands of datapoints of expiration dates using Pandas in Python. Harish developed the front-end iOS application using SwiftUI which calling the API and displays the information for the user. Arjun worked in a variety of roles, from data scraping to flask development and front-end design within the team. James focused on using web scraping techniques through Python and BeautifulSoup to harvest and add data to our database.

Challenges we ran into

Creating the API, gathering data, and handling dataflow in iOS were the most challenging aspects of this project. Although we knew Python beforehand, applying this knowledge and creating a RESTful API service using Flask as the backend was a new area for all of us and had many challenges as well. Further, although there are many databases available about food nutrition, there is not nearly as much about expiration dates since they are not federally regulated and depend on the manufacturer's discretion. Thus, we had to use web scraping to gather our own data as curated datasets were not available. The dataflow in iOS was also one of the biggest challenges we faced since SwiftUI is a relatively new platform and there are many differences in it, especially how the dataflow is handled.

Accomplishments that we're proud of

We're really proud of the iOS application and RESTful API we created for this project. Since all of us are freshmen, none of us had prior experience with technologies for creating custom APIs for our data as well as integrating this into an iOS application. Being able to create a platform based on a concept that we are all really passionate about makes us incredibly happy. We're happy that we learned new technologies and stepped out of our comfort zone, all while coding for good.

What we learned

We all learned about the value of communication within a team. Although each one of us had our own tasks to work on, we all needed each other and work together in order to actually develop the application. We used a lot of delegation and constant communication to get help from others and solve problems together. None of us had any particular front or back-end experience and we learned a lot about working outside what we know. In terms of technical skills, we all picked up a new application of languages we knew, whether it was Flask for Python or SwiftUI. These skills, along with the communication skills we learned, are truly invaluable.

What's next for Expirology

At Expirology, we're passionate about having as much accessibility within our platform as possible. In the future, we would like to include multilingual support as well as text-to-speech features to improve the outreach of the app and how easy it is for a person of any age or background to use. We would also like to gather a wider database of expiration dates and include dates for products that are not refrigerated since currently we only handle those, simply due to time constraints. We would also like to add features such as text recognition from receipts that could be scanned since this would streamline the process for the user even more!

Built With

Share this project: