Index of workJob 004 of 030
004Final-year project, FUUAST — development collaborator2025 — 26

Sahulat

AI-powered civic complaint management, in English and Urdu

A bilingual complaint-management platform where citizens report civic problems on the web and Android, with 28 AI capabilities, SLA tracking, offline reporting and a tamper-evident audit trail.

  • React
  • TypeScript
  • Node.js
  • Express
  • MongoDB
  • Vite
  • Mongoose
  • Zustand
  • Tailwind CSS
  • Capacitor 8
  • JWT
  • RBAC
  • DeepSeek
  • Gemini
  • OpenAI
  • Mistral
  • Ollama
  • RAG
  • Vector embeddings
  • AI vision
  • IndexedDB
  • WebSockets
  • HMAC
  • Redis
  • BullMQ
  • Google Maps
  • i18next
  • Vitest
  • Jest
  • GitHub Actions
Job ticketNo.004
Built at
Final-year project, FUUAST — development collaborator
Sector
Government · Civic tech
Region
PK
Period
2025 — 26
Role
Key development collaborator — full stack, architecture and AI
Team
Another team’s final-year project; I carried out most of the development
Operations
  • Web platform
  • Back end
  • AI
  • Mobile
Checked
Live
ABrief

Sahulat lets citizens report civic problems (road damage, water outages, sanitation, broken streetlights, illegal construction, public safety) and follow them until they are fixed, in English or Urdu, on the web or on Android.

It began as another team’s university final-year project. I was not an official member of that team, but I carried out most of the development, across the front end, the back end, the architecture and the integrations.

Every complaint is routed by category, department and city, and five kinds of user work on it: citizens, field officers, department administrators, super administrators and independent auditors. AI helps at every step but stays advisory: assignment, resolution, overrides and appeals always need a person’s decision.

Accountability is built in. A tamper-evident audit log chains every record with HMAC hashes, so any change to the history can be detected.

BWhat I did
  1. Op 01

    Built the platform full stack in React, TypeScript, Node.js, Express and MongoDB, with REST APIs, JWT authentication and role-based access for five user types.

  2. Op 02

    Built 28 AI capabilities (classification suggestions, priority and sentiment analysis, evidence and image verification, translation, resolution forecasting, report drafting, operational insights) on a fallback across DeepSeek, Gemini, OpenAI, Mistral and Ollama, with RAG, embeddings and heuristic fallbacks.

  3. Op 03

    Built complaint tracking, SLA monitoring, real-time updates over WebSockets, geolocation-based field verification with Google Maps, analytics, transparency reports and appeals.

  4. Op 04

    Made complaints and progress updates work offline: saved in IndexedDB and synchronised when the connection returns.

  5. Op 05

    Implemented the tamper-evident audit trail with HMAC hash chaining, plus integrity monitoring.

  6. Op 06

    Made the whole platform bilingual, English and Urdu, with i18next.

  7. Op 07

    Shipped the Android app with Capacitor 8 from the same React codebase, using the native camera, GPS, connectivity and sharing.

  8. Op 08

    Backed the codebase with automated tests and CI on GitHub Actions: 1,886 back-end tests and 531 front-end tests.

COutcome
  • A live civic platform on the web and Android, in English and Urdu.
  • 28 AI capabilities that advise, while every critical decision stays with a person.
  • 1,886 back-end and 531 front-end automated tests, run in CI.
  1. 28AI capabilitiesadvisory, on a five-provider fallback with RAG
  2. 1,886back-end testsJest, run on GitHub Actions
  3. 531front-end testsVitest
  4. 5user rolescitizens, officers, admins, super admins, auditors
DSchematicHow it fits together

Under the hood

Web appReact · English / UrduAndroidCapacitor 8 · offlineREST APINode.js · ExpressRoutingcategory · department · cityAI layer28 capabilities · RAGMongoDBcomplaints, SLAsOfficers & admins5 rolesAudit chainHMAC hashesAI providersDeepSeek, Gemini, OpenAI…
  1. Web app (React · English / Urdu)REST API (Node.js · Express)
  2. Android (Capacitor 8 · offline)REST API (Node.js · Express)
  3. REST API (Node.js · Express)Routing (category · department · city)
  4. REST API (Node.js · Express)MongoDB (complaints, SLAs)
  5. REST API (Node.js · Express)AI layer (28 capabilities · RAG)
  6. Routing (category · department · city)Officers & admins (5 roles)
  7. MongoDB (complaints, SLAs)Audit chain (HMAC hashes)
  8. AI layer (28 capabilities · RAG)AI providers (DeepSeek, Gemini, OpenAI…)
Complaints arrive from the web and Android (even offline), are routed by department and city, advised by AI and sealed in an HMAC audit chain.
EPrintsLive screens

From the live site

Sahulat home page: “Your complaint, on the record”, with buttons to file or track a complaint
Print 01Sahulat home page: “Your complaint, on the record”, with buttons to file or track a complaint
Sahulat community feed of complaints in the city, with a water-tanker request
Print 02Sahulat community feed of complaints in the city, with a water-tanker request
Sahulat on a phone: file or track a complaint
Print 03Sahulat on a phone: file or track a complaint
Next job005Saudi Smart City WebsiteReact, .NET and Umbraco for a major urban development