Nagrik | Make Authorities Accountable.

GITHUB

PRESENTATION

Inspiration

We built Nagrik because civic complaint systems are usually fragmented, hard to use, and difficult to track once a report is submitted. Citizens often do not know where to file an issue, and even when they do, the complaint can get lost between departments. We wanted to create a single platform that makes civic reporting easier, more visible, and more accountable. The goal was to turn complaint reporting into a clear civic workflow instead of a dead-end form.

What it does

Nagrik lets citizens report civic issues with a location, description, and optional photo. The platform shows nearby complaints on a map, uses AI to classify and route issues, and gives NGOs and government bodies role-based dashboards to review, update, and resolve complaints. Citizens can also track the status of their own reports from submission to resolution. That means one platform handles intake, routing, review, and follow-up instead of scattering the process across multiple tools.

How we built it

We built Nagrik as a multi-layer web application. The frontend is a React + Vite app with map-based complaint filing, complaint tracking, and role-specific dashboards. The backend is an Express + MongoDB API that handles authentication, complaint storage, workflow updates, and routing logic. The AI layer is a Python service that supports complaint review, classification, and metadata generation. We connected the system end to end so complaints can move from user submission to AI review to workflow management without manual data transfer.

On the frontend, we focused on making the reporting experience fast and visible: users can place complaints on a map, upload images, and follow complaint detail pages. On the backend, complaints are persisted in MongoDB, authenticated with JWT, and routed through role-aware workflows. The AI layer enriches complaints with classification and summary data so responders can triage issues more quickly.

Tech Stack

Frontend

  • React 19
  • Vite
  • React Router
  • Leaflet and React-Leaflet for maps
  • Tailwind CSS for styling

Backend

  • Node.js
  • Express 5
  • MongoDB and Mongoose
  • JSON Web Token for auth
  • bcryptjs for password hashing
  • cors, dotenv, and nodemon

AI Layer

  • Python
  • FastAPI and Uvicorn
  • Google Generative AI SDK for Gemini-based review
  • Pandas, Pydantic, Pillow, pytest
  • httpx, aiohttp, tenacity, python-dotenv

Supporting Tools

  • Routing matrices and government body data in the data/ directory
  • Demo data and seed scripts in demo_data/
  • AI validation and training helpers in ai_layer/

Challenges we ran into

One challenge was designing a flow that works for both citizens and workflow managers without making the UI feel inconsistent. Another was handling complaint routing in a way that felt practical rather than purely decorative, especially around map interaction and location-based lookup. We also had to make the AI review pipeline useful without letting it slow down the complaint submission experience. Balancing speed, clarity, and workflow depth took more iteration than we expected.

Accomplishments that we're proud of

We are proud that the platform is not just a prototype screen set, but a working civic workflow with authentication, maps, complaint detail pages, AI-assisted review, and role-based dashboards. We also built a cleaner, more intentional visual design across the app so the product feels cohesive from the landing page through the workflow screens. The ability to file a complaint, see it on a map, and follow it through status changes is a major milestone. Another accomplishment is that the AI output is actually tied into the live complaint workflow instead of being a disconnected demo feature.

What we learned

We learned how important transparency is in civic software. Small interface details like status labels, location context, and complaint history make the system feel trustworthy. We also learned that AI is most useful when it supports human workflow instead of replacing it entirely. In this project, AI helps classify and route complaints, but people still control review and resolution. We also learned how much the user experience improves when the product, data model, and workflow design are aligned from the start.

What's next for Untitled

Next, we want to expand notifications, add stronger analytics, and improve escalation for older unresolved complaints. We would also like to add multilingual support, richer mobile reporting, and better tools for NGOs and government teams to coordinate on high-priority issues. Long term, we want Nagrik to become a scalable civic operations platform that helps communities surface and resolve public problems faster. The next version should also include better reporting analytics, faster triage queues, and stronger accessibility for mobile-first users.

Built With

Share this project:

Updates