Inspiration
We wanted a faster, calmer way to reunite people with their stuff without spreadsheets, scattered DMs, or mystery bins.
What it does
Collects lost-item reports via SMS/MMS or the web, generates a short pickup ID, stores them in Supabase, and lets staff mark items found. Users can text their short_id + “status” to check progress.
How we built it
Vite/React for the assistant dashboard, Supabase for data and storage, Flask for the SMS webhook, Twilio for messaging, and a sprinkle of Gemini to parse free-text/image reports into structured entries.
Challenges we ran into
Keeping short_ids unique across SMS and web flows, handling status checks when the DB is down, and gracefully dealing with missing media/auth credentials on incoming MMS.
Accomplishments that we're proud of
A single flow from SMS to dashboard to resolution, automatic short_id replies, and a status text-back that actually works without manual lookup.
What we learned
Tight schemas and clear status states beat ad-hoc notes; always cache the ID you promise in SMS; defensive fallbacks keep the experience smooth even when services hiccup.
What's next for LOFO
Add user notifications when a match is approved, richer image matching, and a public “check item” page so users can self-serve without staff involvement.
Built With
- flask
- gemini
- ngrok
- postgresql
- python
- react
- supabase
- twilio
- typescript
Log in or sign up for Devpost to join the conversation.