# vinzz006/mahasetu-web architecture

> Architecture diagram of the GitHub repository vinzz006/mahasetu-web, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/vinzz006/mahasetu-web
- Repository: https://github.com/vinzz006/mahasetu-web

## Overview

MahaSetu is a federated government-services platform: a citizen applies once, grants consent, and tracks one application as it passes departmental verification, approval, audit, and benefit disbursement. Its frontend calls a versioned FastAPI backend; the backend coordinates workflow, canonical-data integration, consent, and audit capabilities. The README documents the broader passport, accessibility, and observability features. Several feature modules were not sampled, so their documented presence is shown without assuming internal call wiring.

Main entry points: [`backend/app/services/workflow.py`](https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/services/workflow.py) (Workflow engine), [`backend/app/api/applications.py`](https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/api/applications.py) (Application records), [`backend/app/api/sla_engine.py`](https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/api/sla_engine.py) (SLA monitoring), [`frontend/src/api/client.ts`](https://github.com/vinzz006/mahasetu-web/blob/main/frontend/src/api/client.ts) (API client)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Citizen and Staff Experience"]
  node_webapp["Web application<br/>[App.tsx]"]
  node_apply["Service application"]
  node_admin["Staff dashboards<br/>[SLAMonitorPage.tsx]"]
  node_api_client["API client<br/>[client.ts]"]
  node_notifications["Citizen notifications<br/>[handlers.py]"]
end

subgraph group_platform["API and Workflow Platform"]
  node_api["Versioned API<br/>[main.py]"]
  node_applications["Application records<br/>[applications.py]"]
  node_app_model[("Application state<br/>[application.py]")]
  node_workflow_api["Workflow endpoints<br/>[workflow.py]"]
  node_workflow_engine["Workflow engine<br/>[workflow.py]"]
  node_sla["SLA monitoring<br/>[sla_engine.py]"]
  node_events["Lifecycle events<br/>[publisher.py]"]
end

subgraph group_federation["Department Federation"]
  node_transformation["Canonical transformation<br/>[transformation.py]"]
  node_integrations["Department adapters"]
  node_departments[("Department systems")]
end

subgraph group_trust["Trust and Operations"]
  node_consent["Consent governance<br/>[consent.py]"]
  node_audit["Audit records<br/>[audit.py]"]
  node_audit_store[("Audit data<br/>[audit.py]")]
  node_passport["Service passport<br/>[export.py]"]
  node_pdf["PDF receipts<br/>[pdf_receipt.py]"]
  node_sms["SMS provider<br/>[sms.py]"]
  node_ops["Metrics and probes<br/>[main.py]"]
end

node_citizen(("Citizen or staff"))

node_citizen -->|"uses"| node_webapp
node_webapp -->|"routes to"| node_apply
node_webapp -->|"routes to"| node_admin
node_apply -->|"submits through"| node_api_client
node_admin -->|"requests data"| node_api_client
node_api_client -->|"HTTP requests"| node_api
node_api -->|"dispatches"| node_applications
node_applications -->|"reads and writes"| node_app_model
node_applications -->|"advances workflow"| node_workflow_engine
node_workflow_api -->|"invokes"| node_workflow_engine
node_workflow_engine -->|"updates state"| node_app_model
node_citizen -->|"authorizes data use"| node_consent
node_consent -->|"records application consent"| node_app_model
node_workflow_engine -->|"normalizes data"| node_transformation
node_transformation -->|"adapts data"| node_integrations
node_integrations -->|"connects to"| node_departments
node_applications -->|"records actions"| node_audit
node_audit -->|"persists audit"| node_audit_store
node_api_client -->|"requests passport"| node_passport
node_passport -->|"generates receipt"| node_pdf
node_admin -->|"views SLA status"| node_sla
node_sla -->|"reads applications"| node_app_model
node_sla -->|"expedites step"| node_workflow_engine
node_sla -->|"publishes event"| node_events
node_events -->|"dispatches event"| node_notifications
node_notifications -->|"sends SMS"| node_sms
node_api -->|"exposes probes and metrics"| node_ops

click node_webapp "https://github.com/vinzz006/mahasetu-web/blob/main/frontend/src/App.tsx"
click node_apply "https://github.com/vinzz006/mahasetu-web/blob/main/frontend/src/pages/citizen/ApplicationFormPage.tsx"
click node_admin "https://github.com/vinzz006/mahasetu-web/blob/main/frontend/src/pages/admin/SLAMonitorPage.tsx"
click node_api_client "https://github.com/vinzz006/mahasetu-web/blob/main/frontend/src/api/client.ts"
click node_api "https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/main.py"
click node_applications "https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/api/applications.py"
click node_app_model "https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/models/application.py"
click node_workflow_api "https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/api/workflow.py"
click node_workflow_engine "https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/services/workflow.py"
click node_consent "https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/api/consent.py"
click node_transformation "https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/services/transformation.py"
click node_integrations "https://github.com/vinzz006/mahasetu-web/tree/main/backend/app/integrations"
click node_audit "https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/services/audit.py"
click node_audit_store "https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/models/audit.py"
click node_passport "https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/api/export.py"
click node_pdf "https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/services/pdf_receipt.py"
click node_sla "https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/api/sla_engine.py"
click node_events "https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/events/publisher.py"
click node_notifications "https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/events/handlers.py"
click node_sms "https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/services/sms.py"
click node_ops "https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/main.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_webapp,node_apply,node_admin,node_api_client,node_notifications toneBlue
class node_api,node_applications,node_app_model,node_workflow_api,node_workflow_engine,node_sla,node_events toneAmber
class node_transformation,node_integrations,node_departments toneMint
class node_consent,node_audit,node_audit_store,node_passport,node_pdf,node_sms,node_ops toneRose
class node_citizen toneIndigo
```

## Components

### Citizen and Staff Experience

- [Web application](https://github.com/vinzz006/mahasetu-web/blob/main/frontend/src/App.tsx): `frontend/src/App.tsx`
- [Service application](https://github.com/vinzz006/mahasetu-web/blob/main/frontend/src/pages/citizen/ApplicationFormPage.tsx): `frontend/src/pages/citizen/ApplicationFormPage.tsx`
- [Staff dashboards](https://github.com/vinzz006/mahasetu-web/blob/main/frontend/src/pages/admin/SLAMonitorPage.tsx): `frontend/src/pages/admin/SLAMonitorPage.tsx`
- [API client](https://github.com/vinzz006/mahasetu-web/blob/main/frontend/src/api/client.ts): `frontend/src/api/client.ts`
- [Citizen notifications](https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/events/handlers.py): `backend/app/events/handlers.py`

### API and Workflow Platform

- [Versioned API](https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/main.py): `backend/app/main.py`
- [Application records](https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/api/applications.py): `backend/app/api/applications.py`
- [Application state](https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/models/application.py): `backend/app/models/application.py`
- [Workflow endpoints](https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/api/workflow.py): `backend/app/api/workflow.py`
- [Workflow engine](https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/services/workflow.py): `backend/app/services/workflow.py`
- [SLA monitoring](https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/api/sla_engine.py): `backend/app/api/sla_engine.py`
- [Lifecycle events](https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/events/publisher.py): `backend/app/events/publisher.py`

### Department Federation

- [Canonical transformation](https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/services/transformation.py): `backend/app/services/transformation.py`
- [Department adapters](https://github.com/vinzz006/mahasetu-web/tree/main/backend/app/integrations): `backend/app/integrations`
- **Department systems**

### Trust and Operations

- [Consent governance](https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/api/consent.py): `backend/app/api/consent.py`
- [Audit records](https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/services/audit.py): `backend/app/services/audit.py`
- [Audit data](https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/models/audit.py): `backend/app/models/audit.py`
- [Service passport](https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/api/export.py): `backend/app/api/export.py`
- [PDF receipts](https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/services/pdf_receipt.py): `backend/app/services/pdf_receipt.py`
- [SMS provider](https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/services/sms.py): `backend/app/services/sms.py`
- [Metrics and probes](https://github.com/vinzz006/mahasetu-web/blob/main/backend/app/main.py): `backend/app/main.py`

### Other components

- **Citizen or staff**

## Connections

- Citizen or staff → Web application: uses
- Web application → Service application: routes to
- Web application → Staff dashboards: routes to
- Service application → API client: submits through
- Staff dashboards → API client: requests data
- API client → Versioned API: HTTP requests
- Versioned API → Application records: dispatches
- Application records → Application state: reads and writes
- Application records → Workflow engine: advances workflow
- Workflow endpoints → Workflow engine: invokes
- Workflow engine → Application state: updates state
- Citizen or staff → Consent governance: authorizes data use
- Consent governance → Application state: records application consent
- Workflow engine → Canonical transformation: normalizes data
- Canonical transformation → Department adapters: adapts data
- Department adapters → Department systems: connects to
- Application records → Audit records: records actions
- Audit records → Audit data: persists audit
- API client → Service passport: requests passport
- Service passport → PDF receipts: generates receipt
- Staff dashboards → SLA monitoring: views SLA status
- SLA monitoring → Application state: reads applications
- SLA monitoring → Workflow engine: expedites step
- SLA monitoring → Lifecycle events: publishes event
- Lifecycle events → Citizen notifications: dispatches event
- Citizen notifications → SMS provider: sends SMS
- Versioned API → Metrics and probes: exposes probes and metrics
