eGovernance · Submitted to Government

CGRP: Citizen Grievance Redressal Portal

Register · Track · Resolve — one window between citizens and their departments.


8Departments onboarded
6Workflow statuses
2Languages (EN / हिंदी)
9REST API endpoints

One Window for Every Civic Complaint

Citizens with a problem in water supply, roads, electricity, sanitation, public health, municipal administration, land records or transport usually have to find the right office, file on paper, and chase for updates. The Citizen Grievance Redressal Portal gives them one place to file, a grievance ID to quote, and a dashboard that shows every status change.

For departments, the portal turns scattered complaints into a single, searchable queue with clear actions. The draft has been submitted to the government department, and integration with the department’s own systems through the portal’s API is in progress.

Citizen Grievance Redressal Portal home page Fig 1: Public home page with notice ticker, accessibility bar and language toggle.

How a Grievance Moves Through the Portal

Every step is visible to the citizen and recorded against the grievance.

1. Register

The citizen signs up with a name and mobile number or email, then signs in.

2. Submit

Department, category, location, description and an optional attachment.

3. Get an ID

A structured ID such as CGRP-WTR-SND-20260901-0007 is issued instantly.

4. Officer acts

Accept, request information, transfer, resolve or reject from one queue.

5. Citizen notified

Bell notifications and toasts surface every status change on the next visit.


Grievance submission form Citizen dashboard Fig 2: Submission form and the citizen dashboard.

Built for Citizens

  • Bilingual interface: one click switches navigation, forms, headings and statuses between English and Hindi; the choice is remembered
  • Accessibility bar: skip-to-content link and a real text-size control (100% / 118% / 136%) that scales the whole page
  • Personal dashboard: totals, a status chart computed live, and a table of every grievance with a timeline view
  • Notifications: a bell with an unread badge and short-lived toasts for new updates since the last visit
  • DPDP Act explainer: an original page on grievance redressal under Section 13 of the Digital Personal Data Protection Act, 2023

Built for Departments

Single Queue

Search by ID, department, location or date; sort any column; filter by status.

Clubbed Actions

Accept, Request Info, Transfer, Resolve and Reject sit under one Actions menu per row.

Readable IDs

Organisation, department, category, filing date and sequence, all visible before opening the record.

Case Detail

Full record, citizen contact, description, documents panel and action buttons on one page.

Administrator queue Administrator grievance detail Fig 3: Officer queue with status analytics, and the single-grievance case view.

Anatomy of a Grievance ID

SegmentExampleMeaning
CGRPCGRPOrganisation code (configurable per ministry)
WTRWater SupplyDepartment the grievance was routed to
SNDService Not DeliveredCategory selected at submission
202609011 Sept 2026Filing date (UTC)
00077Sequence number that guarantees uniqueness

Integration API for Department Systems

Method & pathPurpose
GET /api/v1/healthUptime check (no authentication)
GET /api/v1/reference-dataValid departments, categories and statuses
POST /api/v1/grievancesSubmit a grievance; idempotent retries are safe
GET /api/v1/grievances · /:idList / sync with filters, or fetch one grievance
PATCH /api/v1/grievances/:id/statusPush a status change from the department
POST / GET / DELETE /api/v1/webhooksManage webhooks; every delivery is signed with HMAC-SHA256 (X-CGRP-Signature)

Project Status

StageDraft 4 submitted to the government department. The department is working on its side of the API integration.
Front endStatic HTML, CSS and vanilla JavaScript; no build step. The public demo stores data only in the visitor’s own browser.
Back endReference REST API with JSON-file store, API-key authentication, idempotent submission and signed webhooks; designed to become the production backend.
Next stepsWire the portal to the API, move accounts and files to a server-side store, add OTP sign-in and production hardening for live citizen use.

Try It & Run It Locally

1. Explore the Live Demo

  1. Open the live demo and choose Sign up (stored only in your browser).
  2. Submit a grievance and note the structured grievance ID.
  3. Use Department Login to act on it; sign back in as the citizen to see the notification.

2. Run the Integration API

cd api
npm install
cp .env.example .env
npm start
curl http://localhost:4000/api/v1/health

Try It Yourself

Run the project live in your browser, or install the open-source build on your own machine.

Live demo

Run it in your browser

Sign up as a citizen, file a grievance, then use Department Login to act on it. Everything is stored only in your browser.

RUN DEMO
Open source

Install it on your machine

Run the portal and its integration API locally with Node.js, then connect your department systems through the REST API and signed webhooks.

INSTALL THE PROJECT (OPEN SOURCE) Source code on GitHub

See It Working

Open the live demo of the citizen and department journeys, or explore the source with its OpenAPI specification.

Open Live Demo Visit Repository