Why I built this

There's a garbage pile near my place that I've walked past almost every day. Everyone in the building complains about it. Nobody reports it. I asked around once — the answers were all the same: "report where? nothing happens anyway." And honestly... they're right. If you do report, your complaint becomes one of forty duplicates, lands in the wrong department, waits in a first-come-first-serve queue behind a faded signboard, and one day gets marked "resolved" while the garbage is still sitting there.

That's the part that got to me. Not the garbage — the giving up. A city full of people who stopped believing one photo could matter.

So I decided to build the thing I wished existed: an app where one photo is genuinely enough.

What CivicSense actually does

You see something broken — garbage, a pothole, an open manhole, even someone spitting paan out of a car — you snap ONE photo. That's your whole job. From there:

  • AI classifies what's in the photo and attaches your GPS — no forms, no dropdowns, no guessing which department
  • If 40 people report the same pile, it doesn't become 40 weak complaints — it becomes one complaint with 40 signatures that an officer can't ignore
  • Every issue gets a priority score (how severe × how many people × how long it's been open), so the manhole near a school doesn't wait behind a signboard
  • Nearby issues get bundled into one crew visit instead of three separate trips
  • And here's my favourite part — "resolved" only counts when a citizen's after-photo confirms the fix. Trust, rebuilt into the system itself.

It also predicts: live weather crossed with the city's open reports flags waterlogging and tree-fall risk 72 hours early. And vehicle reports are evidence-only — AI reads the plate from your photo, an officer decides, nothing is ever public. I didn't want to build a shaming app. I wanted to build a fixing app.

How I built it (and what fought back)

I'm going to be honest — I'm a student, this is the most ambitious thing I've ever shipped, and it fought me the whole way. The web app is React + Leaflet, deployed on Vercel so it runs on any phone in India with one link. The mobile app is React Native (Expo) — and Expo networking on Windows nearly broke me. Tunnels failing, firewalls eating connections, SDK version mismatches at 2am. There was a night I genuinely considered giving up on the native build. Instead I shipped the web version so nothing could stop the app from reaching a phone, and kept the native build in the repo.

The AI classification and plate-OCR currently run as demo models — and I labelled them as demo inside the app, because I'd rather be honest with judges and users than pretend. The dedup clustering, priority engine, bundling logic, and the weather-based risk forecast are fully real and running on live data (Open-Meteo, OpenStreetMap, device GPS). Everything free and open — no paid API anywhere, because a civic app should cost a city nothing to try.

What I learned

Git, GitHub, Vercel, Expo, live APIs — sure. But the real lesson: shipping something real beats polishing something imaginary. The first time I opened my own URL on my own phone and watched it detect my city... I just sat there for a second. That feeling is why I'll keep building.

What's next

A fine-tuned vision model trained on Indian street imagery, integration with Swachhata / municipal APIs so reports land in real queues, official ward maps, e-challan hookup, and voice reporting in Hindi, Marathi and Tamil — because the aunty who complains the loudest shouldn't need to type in English to be heard.

Snap it — and the city has to listen.

Share this project:

Updates

Submission history