π‘ Our Mission
With the average Montreal restaurant producing over 3,200 tonnes of food waste a year and a growing population relying on food banks for their everyday meals, we hoped to build a solution to help alleviate both problems. From our research, we uncovered the 3 obstacles preventing restaurants from donating to food banks: the lack of information, regulations regarding donation items, and incentives for restaurants to donate. We aimed to solve these problems!
π§ What it does
Connecting Restaurants to Food Banks
Our application connects food banks willing to pick up donations and restaurants looking to donate excess food to charity. Food banks can view restaurants and their food items available for donations and decide to pick up at the nearest restaurant from our built-in map. Next, the food banks can place an order for pick up based on the restaurants closing times, reserving the items.
Donation Guidance for Restaurants
Figuring out what food items should be donated can be tricky and is often strictly regulated. But don't fret! Our custom AI model allows restaurants to use any mobile phone to take a picture of food items and identify if they are eligible for donation. It also seamlessly tallies all eligible items and displays it to food banks, without the need for restaurants workers to invest excessive time.
Incentives for Restaurant Customers
Customers are always eager to choose restaurants that are sustainable and support local communities. Our rating systems makes it easy for customers to view restaurants commitment to reducing waste and supporting local food banks. This improves the experience for customers and can drive business for restaurants.
π οΈ How we built it
We began researching why this problem exists and understanding the main roadblocks preventing restaurants from donating to food banks. Next, we came up with potential solutions and investigated the requirements specifications for the main features. We then designed a software architecture to map the communication between the frontend and backend, The means of deployment (GCP and Supabase), and the model for training (YOLOv8). We used a Postgres SQL database to store restaurant, food bank, and order information. We built the front end with react native making use of expo go, integrating a map using google maps API to allow food banks to view the nearest restaurants, a camera to allow for restaurants to scan images, and rating system to quantify a restaurants involvement with donations. We used flask to build a REST API to communicate between the database and frontend.
π§ Challenges we ran into
We attempted to piece together several components and build a full stack application. The team members were specialized in a specific fields but after we individually built our components, we found it difficult to assemble the various pieces. In retrospect, we should've spent more time in the planning phase, to build the different elements in a modular & compatible manner.
π Accomplishments that we're proud of
Despite the challenges we faced, we were able to create a functioning full stack application complete with a database using best data practices, building a custom API & AI model, and several intuitive frontend webpages.
π What we learned
This was the first time all of us developed a mobile application using React Native. We also learned how to implement SQL e queries using flask to fetch and store items in Supabase. Finally, we all gained learning experiences from each others strengths, learning how our individual developments can be assembled together to build a complete full stack application.
βWhat's next for CharityCuisine
We are really excited about adding final touches to the front end, improving our custom AI model, and making our software more scalable. We would like to partner with local food banks in the Montreal Area, and get restaurants on board to make a difference!
Built With
- flask
- google-cloud
- react-native
- supabase
- yolov8
Log in or sign up for Devpost to join the conversation.