Inspiration
The U.S produced nearly 120 billion pounds of food waste every years, estimated to be almost 40% of the entire U.S. food supply. This has drastic environmental repercussions, with U.S. food waste contributing 170 million metric tons of carbon dioxide, the equivalent of 42 coal fired power plants, every year. Meanwhile, nearly 35 million people across the U.S suffer from food insecurity. So, what if there was a platform to connect the two? Plate Shifters aims to connect grocery stores, restaurants, bakeries, cafes, dining halls, and other food vendors with homeless shelters in an attempt to decrease food waste, reduce carbon emissions, and fight food insecurity.
What it does
Plate Shifters is a mobile app that enables food vendors to report leftover meals. It also allows volunteer drivers to conveniently pick up and deliver these meals during their regular commutes. Food vendors can report the quantity of food available for donation. Drivers can enter their starting and ending destinations, as well as the number of food vendors they are willing to stop by. Our machine learning algorithm then clusters food vendors, prioritizes pickups, and generates an optimal route. This allows drivers to efficiently collect food from multiple locations and deliver it along their usual commute.
How we built it
Data: We leveraged ArcGIS Survey123 to gather reports from food vendors and amass the data in a Feature Layer. To identify recipient locations, we sourced the Homeless Shelters and Services web map from the County of Los Angeles ArcGIS Hub Site. We integrated both of these Feature Layers with our platform using the ArcGIS REST API. Additionally, all driver data is securely stored in Firebase.
Routing: We utilize a machine learning algorithm to cluster food vendors using k-means. We then used weighted formulas to calculate pickup priorities based on the pickup window, proximity of restaurants to drivers’ commute routes, and the quantity of available food. The route is calculated using Network Analyst in ArcGIS API for Python to determine the most optimal path.
Mobile App: All these components are brought together in a user interface built with React Native, Typescript, and Calcite Components, providing a seamless experience for both food vendors and volunteer drivers.
Challenges
We encountered several challenges while developing our app. First, when sending food vendor and homeless shelter locations to the network analyst, we found that the system would sometimes route a driver to a homeless shelter before a food vendor. To address this, we added an additional constraint to ensure that drivers always picked up food form vendors first.
We also faced hardware limitations, as we were unable to download XCode on our laptops, rendering us unable to use Swift for the frontend. As a result, we pivoted to using React and TypeScript for the frontend development.
While we originally planned to use a machine learning model to do most of the routing optimization, we realized we lacked training data. So, we instead developed a machine learning algorithm and weighted formulas to group food vendors based on proximity and prioritize them from highest to least pickup urgency.
Lastly, one of our teammates was sick this weekend and unable to join us in person. Although they participated online, it was challenging to keep everyone on the same page and maintain constant communication. We redistributed tasks effectively, allowing us to maintain critical deadlines.
Accomplishments
We are proud of our clustering algorithm, which combines a custom weighting formula with the k-means machine learning algorithm, and its integration with Network Analyst. This approach enables drivers to efficiently pick up food from multiple locations and deliver it along their regular commute routes. This lowers the barrier for volunteers by allowing them to participate without making large detours from their regular routes.
What we learned
We learned the importance of communication as one of our teammates could not join us in person. We quickly learned to communicate our needs and various specification changes through Microsoft Teams and our own messaging apps. We also learned how to integrate Survey123, Feature Layers, and Network Analyst using the REST API, technologies we were mostly unfamiliar with prior to this project. Lastly, we learned how important it is to work through the user flow before starting development, as the structure and logic of the codebase relies heavily on these decisions.
What's Next
This is just the beginning for Plate Shifters. We envision our app growing into a nationwide application that cities across the U.S. can adopt. To support widespread use, we aim to partner with local governments to offer tax incentives to participating food vendors, encouraging donations, and to help provide up-to-date data on homeless shelters. We also plan to expand our reach beyond homeless shelters, enabling deliveries directly to individuals experiencing food insecurity or those receiving food assistance, right at their place of residence.
On the functionality side, we want to improve coordination with shelters to ensure food is delivered when and where it’s needed most, as well as enhance communication between drivers and food vendors to streamline pickups. For drivers, we plan to introduce real-time, turn-by-turn navigation within the app, making routes easier to follow.
To encourage volunteer participation, we’re looking to gamify the experience by adding badges and rewards for drivers who complete multiple trips or volunteer for extended periods. Finally, as we collect more data, we hope to train a custom AI model to further optimize routing and improve the overall efficiency of the platform.
Built With
- arcgis-network-analyst
- argis-rest-api
- calcite-components
- esri
- firebase
- machine-learning
- python
- react-native


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