SnapCity — One photo, real change.
Inspiration
This project started with a feeling many of us know too well: the helplessness of seeing a problem in your own neighborhood and believing that reporting it is pointless.
Living in Rawalpindi and Islamabad, some of us watched the same things happen for years. Near our homes there was always a spot where garbage piled into massive heaps, because once a few people started dumping there, everyone did, and no one ever came to clear it or stop it, so it just became normal. The same went for the roads. Even in areas considered good, you find broken, neglected stretches that stay that way for months, because there is no clear way to report them and no sense that anyone will act.
For three of our teammates from Karachi, the problem hit even harder. Road conditions there are on a completely different level, where broken, unmarked, and poorly maintained roads are everywhere and have directly caused accidents and injuries, yet they still go unreported and unfixed for long stretches of time.
What stayed with all of us was not the garbage or the potholes themselves, but the feeling that came with them: that complaining was pointless. People would grumble, post about it on social media, or just walk around the mess, but nobody believed reporting it would change anything, so eventually they stopped trying. That helplessness is what motivated us to build a better solution. We did not want another place to file a complaint that disappears. We wanted a system where one photo could actually lead to something happening, where people could see that their report mattered, and where the broken trust between citizens and the system could finally start to rebuild.
What it does
SnapCity is an AI-powered civic hazard reporting app that turns a single citizen photo into a verified, trackable civic case.
When someone snaps a problem like garbage, a pothole, sewage, a broken road, or an open manhole, a workflow of AI agents works behind that one photo to:
- Validate whether the image is a genuine civic issue
- Understand the location context
- Judge how serious the issue is
- Find the correct authority
- Prepare a formal report that can be sent as an official email or WhatsApp message
In the app, citizens can view nearby civic issues on a feed and map, capture a photo of a problem, add a voice note, let the AI verify and analyze the report, and track their submitted cases through to resolution.
Instead of complaints scattering across WhatsApp and social media and then disappearing, every report becomes a structured, verified, and trackable case routed to the right place, giving citizens proof that their report actually leads somewhere.
How we built it
SnapCity runs on a focused, modern stack:
- Flutter for the mobile frontend
- FastAPI for the backend
- Supabase for image and case storage
- Gemini AI for image validation, context understanding, severity scoring, authority matching, and report generation
The heart of the system is the AI agent workflow. Behind one simple snap, a supervising brain orchestrates specialized agents that each handle one part of the job: one validates the evidence, one fuses the location and context, one evaluates the severity and threat level, and one plans the response and prepares the final civic report. The result is that a process which normally takes human effort and days of waiting collapses into a few seconds behind a single photo.
We designed the architecture to be city-agnostic from day one, so the same system can expand to any new city by swapping in local issue types, updating the authority database, and adding a localized language layer.
Challenges we ran into
- Edge cases everywhere. Real users do not submit clean data. We had to teach the system to ask for a retake on blurry images, reject non-civic photos like selfies and food, merge duplicate reports into a single stronger case, and flag low location confidence instead of failing silently.
- Keeping AI decisions transparent. It was not enough for the AI to make a decision. Authorities need to see what was detected and why, so we built traceable reasoning into the pipeline so every case carries its own explanation.
- Orchestrating multiple agents. Getting several agents to work together in a predictable order, while still handling unexpected situations gracefully, took real iteration on the workflow design.
- Scope under a hackathon timeline. We had to decide what to build for real and what to keep as a clear path for later. The core workflow of report creation, AI detection, case generation, evidence scoring, and report drafting is functional, while some external integrations are set up to plug in as the project grows.
Accomplishments that we're proud of
- A working AI agent pipeline, not just a form. Behind a single photo, multiple AI agents actually validate, analyze, score, and route an issue end to end, which is the core of what makes SnapCity more than a complaint app.
- Turning a real frustration into a real product. We took a problem we have personally lived with for years and built a functioning app around it within a hackathon timeline.
- Solving the trust problem, not just the reporting problem. By making every case verified, trackable, and transparent, we addressed the deeper trust deficit that has caused past civic apps to fail.
- A genuinely scalable design. The city-agnostic architecture means SnapCity is not a one-city demo. The same system can grow to any city facing the same broken reporting loop.
- Handling the messy real world. Getting the system to deal gracefully with blurry images, non-civic photos, duplicates, and weak GPS made it feel like something built for actual streets, not a clean demo.
What we learned
The biggest lesson was that the real problem was never that people do not report. It is that reporting goes nowhere. Once we understood that the core issue was a trust deficit rather than a lack of complaint channels, the whole design changed. We stopped thinking of SnapCity as a complaint app and started building it as a layer that converts scattered citizen signals into coordinated, verified action.
On the technical side, we learned how to design a multi-agent workflow where different AI agents collaborate reliably, and how to handle the messy reality of real-world input: blurry images, weak GPS signals, duplicate reports, and photos that are not civic issues at all. We also learned to keep a human in the loop, so the AI does the heavy lifting while people supervise and approve, which keeps the system trustworthy.
What's next for SnapCity
Our roadmap starts with a focused Karachi pilot using real users and real data, then moves toward stronger AI, a proper city authority database, an NGO and responder portal, a reward marketplace, and a public civic dashboard where any resident can see what is happening in their area.
Sustainability comes from a multi-stakeholder model rather than charity, where local businesses can sponsor issues as smart local marketing, CSR sponsors can fund cleanup drives with measurable impact, and municipal bodies and NGOs can pay for premium dashboards and verified profiles with impact analytics.
Because the architecture is city-agnostic, the same system that starts in Karachi can grow to Lahore, Islamabad, and any busy city facing the same broken reporting loop.
One photo, real change.
Built With
- dart
- fastapi
- flutter
- gemini-2.5-flash
- gemini-3.1-flash-lite
- gmail
- google-ai-studio
- google-antigravity
- google-cloud-run
- google-gemini
- google-maps
- mermaid
- node.js
- postgresql
- python
- rest-api
- supabase
- supabase-storage

Log in or sign up for Devpost to join the conversation.