Inspiration
We kept noticing the same thing in our own city. Restaurants and grocery stores throw out a lot of good food at the end of the day, and at the same time there are shelters nearby that run out of meals. The food exists, it just never gets to the people who need it in time. We learned that around 40% of food in the US gets wasted while 1 in 8 Americans deal with hunger. That gap felt like something software could actually help fix, so we built Plateful.
What it does
Plateful connects people who have extra food with shelters that need it.
- Donors like restaurants and stores post their surplus food in under a minute, including what it is, how much there is, any dietary tags, and when it expires.
- Shelters see a live feed of nearby donations that is ranked for them, and they can claim a donation with one click.
The ranking is the core of the app. Every donation gets an urgency score based on how soon it expires and a dietary match score based on the needs of the shelter's residents. Those two combine into a priority score, so the most urgent and most relevant food shows up first. When a shelter updates its dietary needs, the whole feed re-ranks instantly.
The app also has account onboarding, support for six cities, a live map with color coded pins, and an impact dashboard that tracks meals rescued, pounds of food saved, and CO2 avoided.
How we built it
We built Plateful as a React app using Vite. We used Tailwind CSS for styling so we could move fast and keep the design consistent. React Router handles the different pages, and we used Leaflet with OpenStreetMap for the live map so we did not need any paid API keys.
The ranking engine is written in plain JavaScript. It is a set of clear rules that score urgency and dietary fit and then blend them into one priority number. We kept it rule based on purpose so it stays fast and easy to explain. For the demo we used localStorage as the data layer, which let the whole app run in the browser with no backend setup, and it seeds itself with realistic data for each city on first load.
Challenges we ran into
The map gave us the most trouble. At first our donation pins were placed randomly around each city, which meant a lot of them landed in the ocean or a lake instead of on actual streets. We fixed this by picking real, on land coordinates for each city. We also had a bug where claiming a donation on the map would crash to a blank screen, because the whole map was being rebuilt at the wrong time. We changed how the map updates so it refreshes the pins without tearing the map down.
Making the scoring feel smart but still stay simple was another challenge. We did not want a black box, so we spent time tuning the urgency and dietary weights until the ranked feed actually made sense.
Accomplishments that we're proud of
We are proud that Plateful is a full, working product and not just a mockup. You can make an account, pick a city, post food, get an AI ranked feed, claim donations, and see the impact update live. We are also happy with how the app looks. We rebranded it, added a real charity image and a clean green theme, and gave it a polished feel that we think holds up in front of judges. Most of all, we are proud that the idea is genuinely useful and tackles food waste, hunger, and emissions at the same time.
What we learned
We learned a lot about turning a real world problem into clear logic. Writing the ranking engine taught us how to break a fuzzy idea like "which food matters most" into numbers we could actually compute. We got more comfortable with React, state management, and working with maps. We also learned that small details, like where a pin lands or whether a button gives feedback, make a big difference in how trustworthy an app feels.
What's next for Plateful
Next we want to move Plateful off of localStorage and onto a real backend so donors and shelters can use it for real. We want to add live accounts, SMS or email alerts so shelters get notified the moment a good match appears, and routing or pickup time estimates. We would also like to partner with local food banks and restaurants to run a small pilot, and expand to more cities once the core flow is proven.
Built With
- css3
- git
- html5
- javascript
- leaflet.js
- node.js
- openstreetmap
- react
- react-router
- tailwindcss
- vite
Log in or sign up for Devpost to join the conversation.