This is a submission for Weekend Challenge: Generosity Edition
What I Built
Anyone who has volunteered at a shelter knows the "second disaster": rooms filled with random, unneeded items while the community's most urgent needs (like baby formula or specific medications) go completely unmet.
I built GiveRoute to flip donation logistics from donor-centric to need-first:
- Verified Wishlist Aggregator: Tracks real community needs with automatic freshness decay (stale requests lose priority).
- 8-Factor Matcher: A deterministic scoring engine that factors in category, quantity limits (penalizing surpluses), audience age, radius, and condition.
- 8-Step Handoff Protocol: Guides donors and staff from initial outreach all the way to scheduled delivery.
-
Public Impact Ledger: Issues verifiable receipts (
GR-2026-XXXX) instead of meaningless vanity badges.
Demo
- 🌐 Live App: https://giveroute.vercel.app
- 🛠️ GitHub Repository: https://github.com/sreejit-dev/giveroute
Try typing or pasting a messy offer like "I have 8 boxes of baby wipes and warm toddler blankets in Seattle" into the intake box to see how the engine normalizes it and ranks real local matches.
Code
- GitHub Repository: https://github.com/sreejit-dev/giveroute
Stack:
- React 19, TypeScript & Tailwind CSS
- Express backend (with Vercel serverless adapter in
api/index.ts) - Supabase PostgreSQL with Row-Level Security (RLS) & offline in-memory fallback
- 41 automated tests (
npm test) covering matching math, edge cases, and security boundaries
How I Built It
-
Deterministic Matching Over LLM Guesswork: I didn't want a fuzzy AI black box deciding logistics. The scoring engine (
matcher.ts) allocates 100 points across 8 concrete variables, explicitly penalizing volume surpluses so shelters don't get swamped. -
Freshness & Evidence Trails: Needs cycle through 5 audit stages (
SOURCE FOUNDtoORG CONFIRMED). Requests unverified after 30 days are automatically marked Stale to prevent outdated runs. - Safe AI Ingestion: Google Gemini runs server-side behind strict SSRF guards to turn chaotic user descriptions and agency wishlists into typed civic schemas.
- Vercel & Supabase Ready: Built on Supabase for persistent tables with RLS, backed by an Express app modularized for both Vercel Serverless and Docker environments.
Prize Categories
Best Use of Google AI
I integrated Google Gemini on the backend to handle the messy human side of civic intake:
- Wishlist & Offer Normalization: Extracts structured counts, item specifications, age brackets, and delivery constraints from messy text and emails.
- Outreach Drafter: Generates concise, professional coordination messages with donor specs and availability, sparing busy shelter workers from endless email tag.
Top comments (0)