← All Work
BDA Grievance Portal
Government & Civic TechTech Extension

BDA Grievance Portal

Citizen grievance app with an RBAC staff portal, status-driven workflow, and automated email/SMS updates.

The Challenge

The Bangalore Development Authority needed an easy way for citizens to register and track grievances, and a structured way for staff to manage them — rather than grievances getting lost across phone calls, in-person visits and paper files, with no consistent way to see where a complaint stood or who owned it.

Our Approach

We built it as two frontends over one backend: a Flutter app so citizens can register and track grievances from their phone, and an Angular RBAC web portal so BDA staff can view, manage and resolve grievances according to their role. A Node.js/Fastify API ties both together, driving each grievance through a defined set of status transitions and triggering automated email and SMS updates to the citizen as their grievance moves forward.

Tech Stack

FlutterAngularNode.js / FastifyEmail / SMS Notifications

System Architecture

Citizen app

Flutter app for citizens to register a grievance and track its status.

Flutter

Staff portal

Angular RBAC web portal for BDA staff to manage and resolve grievances by role.

Angular

API

Node.js/Fastify backend serving both the citizen app and staff portal, driving grievances through status transitions and triggering notifications.

Node.jsFastify

Outcomes

Citizen self-service grievance app

Citizens register and track grievances directly from their phone instead of calls or paper filings.

RBAC staff portal

BDA staff manage, route and resolve grievances through a web portal scoped to their role.

Automated status updates

Citizens get email and SMS notifications automatically as their grievance moves through each status.

One backend, two frontends

A single Node.js/Fastify API keeps the citizen app and staff portal consistent with each other.

Building something similar?

Let's Talk