Inspiration
Relay311 helps cities handle reports like potholes, flooding, graffiti, outages, and safety concerns faster. It supports SDG 11: Sustainable Cities and Communities by making reporting easier for residents and clearer for city teams.
What it does
Relay311 is a voice-based 311 reporting tool and dashboard.
- Residents call and describe an issue
- The call transcript is saved and analyzed
- AI identifies the issue, location, category, and urgency
- Similar reports are automatically detected and merged
- Operators can view and manage incidents from one dashboard
How we built it
- Next.js, React, TypeScript, and Tailwind CSS
- Supabase for storing calls and incidents
- Vapi for voice calls and transcripts
- Gemini for classifying reports
- Zod for validation
- Vitest for testing
Challenges
- Calls can be unclear or incomplete
- Telling real reports apart from general questions
- Detecting duplicates without merging different issues
- Extracting useful details from spoken reports
- Building a complete product in hackathon time
What we’re proud of
We built a working end-to-end system, not just a mockup:
- Phone-based reporting
- Transcript processing
- AI issue classification
- Automatic duplicate merging
- Operations dashboard for managing incidents
What we learned
AI works best when it supports people instead of replacing them. We also learned that clear UX, structured data, and duplicate detection are important for making a city reporting system useful.
What’s next
- Maps and location clustering
- Routing reports to the right department
- Alerts for unresolved issues
- Citywide analytics
- Integration with real municipal systems
- Better handling for urgent reports and non-native speakers
Scalability
Relay311 uses a structured JSON format for incident data. Many major cities in Canada and the U.S. use similar formats, so it could be adapted to existing municipal systems without needing to rebuild everything from scratch.
Built With
- natural-language-processing
- next.js
- node.js
- openfreemap
- postgresql
- react
- supabase
- tailwind
- typescript
- vapi
Log in or sign up for Devpost to join the conversation.