About the Project
Right now, if you want to tell your city about a pothole, a noise complaint, a transit issue, or an idea for your local park, you're often stuck choosing between a 20-minute phone hold, a confusing web form built for a government IT department—not a person—or simply giving up. That gap is real: legitimate concerns can easily get lost before they ever reach the people who can act on them.
We wanted to build a better connection between residents and their local government.
Our project is a two-way bridge between residents and city staff. Residents can describe their issue or suggestion naturally in plain English—without needing to understand bureaucratic categories or navigate complicated forms. Our AI analyzes the submission, identifies what the resident is asking about, determines its urgency, and routes it to the appropriate department.
On the other side, city staff get a live, organized queue of reports, complaints, and suggestions. Instead of sorting through unstructured messages one at a time, staff can quickly see what each issue is, where it belongs, and what requires attention.
How We Built It
We built the application as a web-based system using Flask, Python, HTML, CSS, Jinja2, and AI-powered processing. We designed separate experiences for residents and administrators, allowing complaints to move from initial submission through categorization, prioritization, and management.
A major focus was keeping the system lightweight and accessible. We wanted this to be something that could realistically be used by a public institution, including on older hardware and slower internet connections. That meant prioritizing a simple interface, efficient pages, clear feedback, and avoiding unnecessary complexity.
What We Learned
Throughout the project, we learned how to connect a user-facing web application to backend logic and AI processing while keeping the experience simple for someone who doesn't care about the technology behind it.
We also learned that building an effective AI system isn't just about getting an output. The result needs to be understandable, useful, and integrated into a workflow where a real person can act on it.
Challenges We Faced
One of our biggest challenges was balancing technical functionality with usability. It would have been easy to create a complicated system with lots of features, but our goal was to make the process feel effortless for residents.
We also had to think carefully about how unstructured, everyday language could be transformed into information that a city department could actually use. A resident might say:
"The 75 was supposed to come at 8:15, but it's 8:45 and still hasn't shown up."
They shouldn't have to know which government category that belongs to. Our system has to translate that natural-language complaint into structured, actionable information.
Ultimately, that's what this project is about.
This isn't a suggestion box. It's the missing translator between how people actually talk, and how government actually works.
Log in or sign up for Devpost to join the conversation.