Inspiration
Inspiration
Community fridges are free fridges on the sidewalk: neighbors leave food, anyone takes what they need. There's no staff and no inventory. When SNAP benefits were disrupted in November 2025, fridges in New York and elsewhere emptied faster than volunteers could keep up. Two people are left guessing: someone who needs food walks over not knowing if anything is inside, and volunteers learn a fridge is empty only when someone happens to post a photo. A WPI student team found that tracking fridge use is hard without breaking the take-what-you-need model. Many fridges already have a camera pointed at them, so we asked: what if that camera could just say how full the fridge is?
What it does
When a Ring camera sees someone use the fridge, Stocked waits for them to leave, takes one snapshot, crops it to the shelves only, and estimates how full the fridge is.
- A public board shows every fridge in the network: well stocked, about half full, running low, or empty, and when it was last checked.
- Volunteers get an alert when a fridge has been empty for 30 minutes or has a problem like a spill.
- Neighbors who follow a fridge get a "just restocked" alert.
Privacy by design
The snapshot is cropped to the fridge interior before anything looks at it, so people walking by are never analyzed or stored. Stocked keeps only the fill estimate and a small thumbnail of the shelves.
How we built it
- Ring Partner API: HMAC-signed motion webhooks (verified on the raw body and deduplicated), device lookup, the snapshot endpoint, Event History, and OAuth refresh.
- Amazon Bedrock (Nova Lite, Converse API with image input) reads the shelf crop and returns the fill level, food types, and issues as JSON. The prompt forbids describing people. Without AWS, a simple pixel estimate gives the fill level only, and it is labeled as such.
- Python + FastAPI with Server-Sent Events, so the board updates live.
- A simulator sends the exact signed webhook a Ring camera would, so the whole pipeline can be tested without hardware. 9 automated tests.
Challenges we ran into
- The snapshot request body isn't in the main Ring API reference. We pieced it together from community threads.
- The Developer Playground doesn't deliver webhooks, so we built our own signed-webhook simulator.
- Timing: a picture taken while someone is still at the fridge is useless. We wait until motion stops before looking at the shelves.
Accomplishments that we're proud of
- It's useful to people who aren't the camera owner: the whole neighborhood benefits.
- Privacy is built into the pipeline, not added as a setting.
- It works end to end without any special hardware beyond the camera that's already there.
What we learned
Ring cameras can do more than security: they can report the state of a shared space. Simple, honest signals ("empty for 35 minutes") help volunteers more than detailed analytics.
What's next
- Test with a real fridge network and real camera angles.
- SMS alerts for neighbors without smartphones.
- A shared map with existing fridge directories such as Fridge Finder.
Built With
- amazon-bedrock
- amazon-nova
- amazon-web-services
- css
- docker
- fastapi
- html
- httpx
- javascript
- ntfy
- pillow
- pytest
- python
- ring-partner-api
- server-sent-events
- uvicorn
Log in or sign up for Devpost to join the conversation.