Inspiration
City Pulse was inspired by a simple problem: people report city issues, but responses are often slow and unclear. We wanted to make reporting as easy as chatting, and make sure every issue reaches the right department quickly.
What it does
City Pulse lets citizens report problems like potholes, broken lights, leaks, and garbage through a web app. The system then:
Understands the issue Detects duplicates Assigns priority Routes it to the correct city team Gives a ticket number for tracking It also includes a dashboard and map view so teams can monitor issues in real time.
How we built it
We built City Pulse with:
FastAPI (Python) for backend APIs Next.js + React + Tailwind for frontend SQLite for storing issue data ChromaDB for duplicate detection Multi-agent pipeline for classification, deduplication, prioritization, and routing Logging and test structure for reliability We designed both a normal report form and a chat-style report flow.
Challenges we ran into
API and environment setup across backend/frontend Handling failures when cloud AI credentials were missing Keeping ticket numbers unique after server restarts Making chat flow robust across multiple steps Managing async background processing and error tracking Accomplishments that we're proud of Built a full working end-to-end city issue platform Created a clean chat experience for reporting issues Added smart pipeline logic instead of simple form storage Implemented meaningful logs and debugging flow Fixed important reliability bugs during testing Delivered a practical, demo-ready solution
What we learned
Reliability matters as much as features Good logging saves huge debugging time Edge cases appear in real-world chat flows Background tasks need clear error handling
What's next for City Pulse
Add stronger fallback logic for priority and routing when AI services are unavailable Improve duplicate detection accuracy with better geospatial and text signals Add citizen notifications (email/SMS/WhatsApp) Add admin workflows for assignment and SLA tracking Support multilingual reporting Prepare deployment for production with authentication and role-based access
Log in or sign up for Devpost to join the conversation.