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

Built With

Share this project:

Updates

Submission history