Inspiration
Our inspiration came from a teamates prior experience working at ICNA Relief, where I saw firsthand how important food distribution is for people in our communities. I also saw how much coordination it takes to get food to the people who need it, which inspired us to build FoodFlow to help make that process more efficient and reduce the amount of good food that goes to waste.
What it does
FoodFlow connects restaurants with organizations serving people in need and helps coordinate the pickup and delivery of available meals. It uses intelligent matching, logistics, and routing to help get food where it is needed efficiently.
How we built it
We used Next.js, TypeScript, and Tailwind CSS for the frontend, with React Leaflet and OpenStreetMap for maps. The backend uses Python, FastAPI, and SQLAlchemy. Our matching logic considers distance, urgency, capacity, and receiving requirements. Routing uses OSRM with an offline fallback. We also explored surplus prediction using scikit-learn, with synthetic training data explicitly labeled. Backend safeguards include role-based permissions, validated delivery transitions, handoff codes, and audit records.
Challenges we ran into
Food rescue involves more than finding the closest organization. A destination might be closed, unable to accept hot food, or already at capacity. Drivers can cancel, and autonomous vehicles require people at both ends to load and unload food. We also had to distinguish evidence from assumptions. A restaurant’s surplus listing does not prove how much food it discards, and a simulated delivery does not establish a real vehicle integration. As the backend expanded, keeping the frontend aligned became another challenge. Completing that integration remains part of our next steps.
Accomplishments that we're proud of
We built a prototype that connects the restaurant, driver, organization, and admin perspectives around one rescue process. We’re particularly proud of the backend’s attention to receiving requirements, delivery accountability, and donation documentation. We also created automated tests for permissions, lifecycle rules, failure handling, and tax calculations. Throughout the project, we kept simulations and estimates visible rather than presenting them as real-world results.
What we learned
We learned that successful food rescue depends on practical details: receiving hours, food storage, clear pickup instructions, and reliable handoffs. We also learned that useful technology needs understandable decisions. Participants should know why a match was selected, what happens when a delivery fails, and which records still need attention. Most importantly, software tests can validate implementation, but real partners must validate our assumptions.
What's next for FoodFlow
We plan to complete the expanded backend’s frontend integration, interview Miami-Dade restaurants and receiving organizations, and validate the workflow through a small partner pilot. From there, we want to improve surplus forecasting using actual partner history and investigate transportation integrations where access is available. Good Food. Greater Impact.
Built With
- fastapi
- git
- github
- leaflet.js
- next.js
- numpy
- openstreetmap
- osrm
- pandas
- postgresql
- pydantic
- pytest
- python
- react
- scikit-learn
- scipy
- sqlalchemy
- tailwind-css
- typescript
- u.s.-census-bureau-api
- uvicorn

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