Inspiration
43 billion pounds of food is wasted annually by supermarkets. 50% of all food that is wasted by grocery stores is still edible. 10% of all food waste is caused by supermarkets. We were inspired by these statics of how much food is wasted by grocery stores annually. Not only that, but half the food that is wasted is STILL EDIBLE. This is why we decided to create an app called Expir. Expir lets grocery stores add food items, that are going to expire soon, or will last a few more days. This allows grocery stores to help reduce food waste, and give food to people that would otherwise be thrown away. Expir also helps stop hunger since it allows the underprivileged to pickup food items for free.
What it does
Our app Expir, has 2 user interfaces. One is the grocery store side, and the other is the user side. The grocery store side, is where the supermarkets can input food that they will throw out soon, or will expire. They can add the food item, quantity, and how many days it could last. This allows them to give food that would expire soon, or would be throw away for free and help minimize food waste. The user side is meant for food pantry's, the underprivileged, and other organizations and people as well. The user side is built so the users can select how much of each food item they want then request the food items they selected. Finally, they can see all the items they selected and input their names and pick up times. The amount of food that the user requested is automatically removed from the database. The grocery store side is then able to view all of the scheduled pick up times.
How we built it
We built the app using Flutter and Dart. The backend was built using Firebase. The grocery side was built using flutter, as it allowed grocery stores to add items, and delete them as well. Our app is also connected to Firebase. Any items that the grocery store will be added to Firebase, so we can use that data to show the users what food items are available. The user side was also built using flutter and firebase. It firsts calls all the food items as a list from the foods collection in the database. The users can increment counters to select how much of each food item they want. Then, they can send a request to to show all their selected food items and can input their names and the date they are going to pick the food items up. This was connected to Firebase also, so that each time a user sends a request to pick up some food, the original amount will be decreased, to show other users, that someone has picked up a certain amount of food.
Challenges we ran into
There were many challenges that we ran into. The hardest one was passing data around, so the grocery store can add items and the users would be able to see it. This was especially challenging, since it was the first time for us integrating firebase and flutter. After many hours, we were able to figure out how to add, delete, and update data from Firebase.
Accomplishments that we're proud of
We are really proud that we were able to make the whole app functional with a successful backend. This was a big achievement since it was really hard to figure out how to integrate Firebase, and use the data throughout the app. Although the database integration was our biggest accomplishments, building the app was another, since we were not that experience with flutter, but we learned a lot and were able to create both functioning user interfaces.
What we learned
We learned a lot while creating Expir. We learned out to connect flutter UI's to firebase. We learned how to read data from firebase, update the data to firebase based on user interactions, and write to the database, as the grocery stores added food items to their inventory. We learned how to make proper UI's that change state based on user interactions. We learned how to collaborate together, and work together as a team to make a fully functioning app.
What's next for Expir
The next steps for expire, is to integrate maps and allow selected grocery stores near people and add requests. We would like users to see a map full of grocery store that have food items to give away, so they can select the nearest food items and retrieve the food item. We would also like to to connect with real grocery stores and allow them to make a food inventory that they know will be thrown out, and instead help to give it to people. All in all, we hope to expand this app so it is connected real time with real supermarkets and people.



Log in or sign up for Devpost to join the conversation.