Ágil Cidadão
proprietary softwareAsking for a public service usually costs a trip to the counter, a queue and a phone call later to find out where the request stands. Ágil Cidadão puts that whole path on screen.
For the citizen
The citizen logs in, picks the service from the catalogue and sees, before starting, what to bring, which fields to fill in and how many days the answer usually takes.
They upload the documents from the phone, book the in person appointment when the service requires it and follow the request by its protocol number. Every change of stage shows up on their screen, so nobody has to call to ask how it is going.


At the counter
The attendant starts the day with two screens: the request queue and the calendar. They open the case, read the full history of the request and answer right there.
When a citizen arrives without an account, the attendant opens the request for them. Every move is recorded with author, date, message and attachment, and the history ends up telling on its own what happened to the request.

In management
Each service is built by the team itself: the fields the form asks for, the required documents, the estimated deadline and whether it is open to the public. Creating a new service does not depend on us.
Management sets by role who sees each service, follows the activity trail and reads the rating the citizen gave at the end of the service, by service and by attendant.

Product screens with demonstration data.
What we delivered
- Service catalog with the rules, required documents and fields specific to each service
- Online requests with a protocol number, status tracking and a history of every update
- Appointment booking, with a schedule per staff member
- Staff dashboard with the request queue, the day's schedule and the detail of each case
- Management area for services, users, permission roles and the activity trail
- Sign-up with email account verification and password recovery
- Satisfaction survey at the end of each service, with indicators for management
- Document upload by the citizen, kept in cloud storage
Back end: NestJS and TypeScript, PostgreSQL with TypeORM, hexagonal architecture, JWT authentication with access roles, API documented in Swagger and delivery on Docker.
Front end: React with Vite and TypeScript, Tailwind CSS, accessible Radix UI components, forms with React Hook Form and Zod, indicators in Recharts.













