Track
Environment
Inspiration
Everyday, we notice that Broadhead center has an abundance of food left over after 4pm and after 8pm. We wanted to create an application that not only analyzes the current food waste and predicts potential financial gains by estimating the appropriate number of ingredients in the dishes, but also finds a solution to combat this food waste. We wanted to bring Duke one step closer to carbon neutral initiative by both decreasing food waste while utilizing it in a meaningful way. By redistributing food waste at a lower price to the disadvantaged population, this application can help alleviate food source inequality to some degree.
What it does
Our app offers Duke restaurant’s leftover ingredients on an online marketplace for students and allows a transparent way to monitor and lower food waste for the restaurants. A web application for restaurants connects to point-of-sale systems to access inventory database and shipments of food each week. The dining hall can see the informative metrics on food waste on the Flask API Dashboard in both tabular and chart forms. The total amount and cost are informative for the dining center to quantify their food waste and adjust their future purchase when stocking up the inventory. With the estimated remaining food per week, we created another web application that listed all the potential food waste to allow students to pick up before its expiry date. This student-oriented web application reflects the content on the flask api dynamically. Students will ‘reserve’ an item for 1 hour and will be given a QR code, as well as a summary of their order.
How we built it
Based on examples of POS databases and information from the Duke Dining website, we generated a dummy database that includes four tables, an inventory table, recipe table, predicted amount of servings cooked, demand of servings. (Due to the privacy concerns of restaurants, there were no available POS datasets online.) Ideally, the actual demanded amount of servings (which ideally would come from a centralized cashier system). With these four tables, we calculate the amount of ingredients wasted and the total cost of those wasted ingredients. The tables are hosted in Google Big Query. We presented the analytic results in a Dashboard with Flask API. Within the Flask API, we used Google Cloud Client to extract and analyze the database. This Flask API is deployed using Google App Engine to public URL.
Meanwhile, the marketplace web application was built using React.js. This React.js loads the analyzed data including the item and the amount of each item left in the inventory from the Flask API.
Challenges we ran into and how we solved them.
- We did not have access to any restaurant’s inventory list / POS system Solution: For POC, we manually created our own dataset that mimics a similar inventory list
- We could not connect to Duke Dining representatives to tailor and CustDev our product on the weekend Solution: Leverage experience of mentors
Accomplishments that we're proud of
- Iterate through ~20 ideas to pick the one that we are most excited about and implement it
- Being able to build an end to end product including both a Frontend and Backend
- Being able to fully implement it on the Google Cloud Platform which makes it ideal for further implementation thanks to its diverse features
- Effectively communicate, meet and have fun with a diverse team. Our different skill sets helped us brainstorm and find solutions in a more effective way
What we learned
- “Analysis paralysis” is real and you should avoid it when iteration through ideas and working on POC to be effective Successfully brainstorming and implementing a workable solution
- Compartimelizing work amongst each other according to our strengths
- Breaking down a bigger problem into smaller and easier to debug tasks
What's next
- Build a database and backend for the marketplace application to enable user authorisation and authentication.
- Get in contact with a food dining manager to get access to some type of data or even just a template of their inventory. This would help us assess how much this app could help Duke Dining reach their carbon neutral initiative.
- Build a prediction model with enough data to potentially help Duke Dining managers know with a good accuracy how much inventory they should have.
- Implement “log in with Net ID” through Schibboleth single sign on and make it open source for any other student to use for their university.
Log in or sign up for Devpost to join the conversation.