Inspiration

We were inspired by our peers working in food justice and their anecdotes of the rampant food waste in the restaurant and grocery sectors. Bakeries sweep trays full of untouched bread into the trash at the end of each day. Grocery stores toss truckloads of bruised or wilted produce. Even businesses that do take part in donation processes to food banks and community shelters often do so infrequently. Clearly, we need a better solution to directly connect restaurants and grocery stores with people experiencing food insecurity.

What it does

Our app serves two target user populations: restaurants and grocery stores with surplus unsellable meals or produce, and people experiencing food insecurity in need of free and nutritious meals. Restaurants log surplus food they have available at the end of the day by inputting the food item, a description, an image, and nutritional information. Grocery stores do the same, logging “imperfect” produce that don’t meet consumers’ high demands for cosmetically perfect produce. People looking for meals check the app and see a list of locations in their area where they can go to pick up free food and help the businesses reduce their carbon footprints. Each location shows the food groups- fruits, vegetables, grains, proteins, and dairy- available there so that consumers can access nutritious meals that fit their needs. We also provide information about the carbon footprint of the meal so users know that by consuming the meal, the user has prevented a certain amount of energy from going to waste.

How we built it

We created a full-stack mobile application compatible with iOS and Android. We use React Native for the frontend and API interfacing with the web server. We built an HTTP web server in Flask and Python that interacts with Google Cloud services, like Firebase, which we chose for its real-time performance capabilities.

Challenges we ran into

This hackathon was our first time hosting non-local applications on Google Cloud, and we ran into many challenges like dealing with interface constraints and dependencies we weren't aware of. We're happy that we were able to grow from these challenges and successfully incorporate the NoSQL Firebase database to allow for real-time food availability updates. Our front-end team also had limited experience in React Native and we were surprised by how different it was from HTML/CSS front-end. We adapted our understanding of front-end paradigms to create a clean UX.

Accomplishments that we're proud of

We successfully interfaced all the server-side and user-side experiences! Along the way, we learned so many new tools and implementations in full-stack mobile development.

What we learned

We learned how to use a ton of new frameworks! On the front-end, we learned about using React Native and iOS/Android development, as well as key design principles for app development. On the back-end, we learned how to implement and interface with Google Cloud services to host web servers, but more importantly, how to query and update data in the NoSQL Firebase tool. We also used the Flask framework to handle the web server compared to already familiar frameworks like Django and Node.js

What's next for PantryCycle

The most important thing is to implement the “claim” feature, allowing choosers to claim and hold orders that they want. This way the system does not allow for multiple people to claim the same food item. This information can be stored in the database, and queried and reported when necessary.

Share this project:

Updates