# mahakkatahara/sih-26238 architecture

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

- Interactive diagram: https://gitdiagram.com/mahakkatahara/sih-26238
- Repository: https://github.com/mahakkatahara/sih-26238

## Overview

TribalSetu is a scholarship application API: users and students can check scheme eligibility, create and manage applications, submit documents for verification, resolve mismatches through manual review, and access payment-related endpoints. The backend exposes these capabilities through FastAPI routers and separates domain services from repositories and SQLAlchemy models. Verification has sampled adapter dispatch and mismatch handling; several other service connections are inferred only from module names, so their wiring is not asserted. The tree contains Flutter platform runners but no Dart application sources, so frontend workflow is not shown.

Main entry points: [`backend/app/main.py`](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/main.py) (FastAPI app), [`backend/app/services/verification_service.py`](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/services/verification_service.py) (Verification service), [`backend/app/core/database.py`](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/core/database.py) (SQL database), [`backend/app/repositories/manual_review_repository.py`](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/repositories/manual_review_repository.py) (Review repository)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["API entry"]
  node_app["FastAPI app<br/>[main.py]"]
  node_application_api["Application routes<br/>[application.py]"]
  node_eligibility_api["Eligibility routes<br/>[eligibility.py]"]
  node_document_api["Document routes<br/>[document.py]"]
  node_verification_api["Verification routes<br/>[verification.py]"]
  node_review_api["Review routes<br/>[manual_review.py]"]
  node_digilocker_api["DigiLocker routes<br/>[digilocker.py]"]
  node_payment_api["Payment routes<br/>[payment.py]"]
end

subgraph group_domain["Scholarship workflow"]
  node_application_service["Application service"]
  node_eligibility_service["Eligibility rules"]
  node_scholarship_service["Scholarship service"]
  node_student_service["Student service<br/>[student_service.py]"]
  node_document_service["Document service"]
  node_application_document_service["Application documents"]
  node_payment_service["Payment service<br/>[payment_service.py]"]
  node_digilocker_service["DigiLocker service"]
end

subgraph group_verification["Verification and review"]
  node_verification_service["Verification service"]
  node_manual_review_service["Manual review service"]
  node_verification_adapters["Verification adapters<br/>[mock_adapter.py]"]
  node_signed_pdf_adapter["Signed PDF adapter"]
end

subgraph group_persistence["Persistence"]
  node_db[("SQL database<br/>[database.py]")]
  node_application_repo["Application repository"]
  node_verification_repo["Verification repository"]
  node_review_repo["Review repository"]
  node_student_repo["Student repository"]
  node_scholarship_repo["Scholarship repository"]
  node_document_repo["Document repository"]
  node_application_document_repo["Application document repository"]
  node_review_queue["Manual review records<br/>[manual_review.py]"]
end

node_user(("API client"))
node_external_digilocker(("DigiLocker service"))

node_user -->|"sends requests"| node_app
node_app -->|"dispatches"| node_application_api
node_app -->|"dispatches"| node_eligibility_api
node_app -->|"dispatches"| node_document_api
node_app -->|"dispatches"| node_verification_api
node_app -->|"dispatches"| node_review_api
node_app -->|"dispatches"| node_digilocker_api
node_app -->|"dispatches"| node_payment_api
node_application_api -->|"calls"| node_application_service
node_application_api -->|"calls"| node_application_document_service
node_review_api -->|"calls"| node_manual_review_service
node_verification_service -->|"dispatches"| node_verification_adapters
node_verification_service -->|"dispatches"| node_signed_pdf_adapter
node_manual_review_service -->|"reads and updates"| node_verification_repo
node_manual_review_service -->|"reads and creates"| node_review_repo
node_eligibility_service -->|"reads"| node_student_repo
node_eligibility_service -->|"reads"| node_scholarship_repo
node_verification_service -->|"reads"| node_application_repo
node_verification_service -->|"reads"| node_document_repo
node_verification_service -->|"reads"| node_application_document_repo
node_verification_service -->|"reads and updates"| node_verification_repo
node_verification_service -->|"checks and creates"| node_review_repo
node_review_repo -->|"persists"| node_review_queue
node_application_repo -->|"queries and writes"| node_db
node_verification_repo -->|"queries and writes"| node_db
node_review_repo -->|"queries and writes"| node_db
node_student_repo -->|"queries"| node_db
node_scholarship_repo -->|"queries"| node_db
node_document_repo -->|"queries"| node_db
node_application_document_repo -->|"queries"| node_db
node_digilocker_service -.->|"integrates"| node_external_digilocker

click node_app "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/main.py"
click node_application_api "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/api/application.py"
click node_eligibility_api "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/api/eligibility.py"
click node_document_api "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/api/document.py"
click node_verification_api "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/api/verification.py"
click node_review_api "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/api/manual_review.py"
click node_digilocker_api "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/api/digilocker.py"
click node_payment_api "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/api/payment.py"
click node_application_service "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/services/application_service.py"
click node_eligibility_service "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/services/eligibility_service.py"
click node_scholarship_service "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/services/scholarship_service.py"
click node_student_service "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/services/student_service.py"
click node_document_service "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/services/document_service.py"
click node_application_document_service "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/services/application_document_service.py"
click node_payment_service "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/services/payment_service.py"
click node_digilocker_service "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/services/digilocker_service.py"
click node_verification_service "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/services/verification_service.py"
click node_manual_review_service "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/services/manual_review_service.py"
click node_verification_adapters "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/integrations/verification/mock_adapter.py"
click node_signed_pdf_adapter "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/integrations/verification/signed_pdf_adapter.py"
click node_db "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/core/database.py"
click node_application_repo "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/repositories/application_repository.py"
click node_verification_repo "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/repositories/verification_repository.py"
click node_review_repo "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/repositories/manual_review_repository.py"
click node_student_repo "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/repositories/student_repository.py"
click node_scholarship_repo "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/repositories/scholarship_repository.py"
click node_document_repo "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/repositories/document_repository.py"
click node_application_document_repo "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/repositories/application_document_repository.py"
click node_review_queue "https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/models/manual_review.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_app,node_application_api,node_eligibility_api,node_document_api,node_verification_api,node_review_api,node_digilocker_api,node_payment_api,node_user toneBlue
class node_application_service,node_eligibility_service,node_scholarship_service,node_student_service,node_document_service,node_application_document_service,node_payment_service,node_digilocker_service toneAmber
class node_verification_service,node_manual_review_service,node_verification_adapters,node_signed_pdf_adapter toneMint
class node_db,node_application_repo,node_verification_repo,node_review_repo,node_student_repo,node_scholarship_repo,node_document_repo,node_application_document_repo,node_review_queue toneRose
class node_external_digilocker toneIndigo
```

## Components

### API entry

- [FastAPI app](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/main.py): `backend/app/main.py`
- [Application routes](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/api/application.py): `backend/app/api/application.py`
- [Eligibility routes](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/api/eligibility.py): `backend/app/api/eligibility.py`
- [Document routes](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/api/document.py): `backend/app/api/document.py`
- [Verification routes](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/api/verification.py): `backend/app/api/verification.py`
- [Review routes](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/api/manual_review.py): `backend/app/api/manual_review.py`
- [DigiLocker routes](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/api/digilocker.py): `backend/app/api/digilocker.py`
- [Payment routes](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/api/payment.py): `backend/app/api/payment.py`

### Scholarship workflow

- [Application service](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/services/application_service.py): `backend/app/services/application_service.py`
- [Eligibility rules](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/services/eligibility_service.py): `backend/app/services/eligibility_service.py`
- [Scholarship service](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/services/scholarship_service.py): `backend/app/services/scholarship_service.py`
- [Student service](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/services/student_service.py): `backend/app/services/student_service.py`
- [Document service](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/services/document_service.py): `backend/app/services/document_service.py`
- [Application documents](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/services/application_document_service.py): `backend/app/services/application_document_service.py`
- [Payment service](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/services/payment_service.py): `backend/app/services/payment_service.py`
- [DigiLocker service](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/services/digilocker_service.py): `backend/app/services/digilocker_service.py`

### Verification and review

- [Verification service](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/services/verification_service.py): `backend/app/services/verification_service.py`
- [Manual review service](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/services/manual_review_service.py): `backend/app/services/manual_review_service.py`
- [Verification adapters](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/integrations/verification/mock_adapter.py): `backend/app/integrations/verification/mock_adapter.py`
- [Signed PDF adapter](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/integrations/verification/signed_pdf_adapter.py): `backend/app/integrations/verification/signed_pdf_adapter.py`

### Persistence

- [SQL database](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/core/database.py): `backend/app/core/database.py`
- [Application repository](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/repositories/application_repository.py): `backend/app/repositories/application_repository.py`
- [Verification repository](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/repositories/verification_repository.py): `backend/app/repositories/verification_repository.py`
- [Review repository](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/repositories/manual_review_repository.py): `backend/app/repositories/manual_review_repository.py`
- [Student repository](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/repositories/student_repository.py): `backend/app/repositories/student_repository.py`
- [Scholarship repository](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/repositories/scholarship_repository.py): `backend/app/repositories/scholarship_repository.py`
- [Document repository](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/repositories/document_repository.py): `backend/app/repositories/document_repository.py`
- [Application document repository](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/repositories/application_document_repository.py): `backend/app/repositories/application_document_repository.py`
- [Manual review records](https://github.com/mahakkatahara/sih-26238/blob/feature/frontend-setup/backend/app/models/manual_review.py): `backend/app/models/manual_review.py`

### Other components

- **API client**
- **DigiLocker service**

## Connections

- API client → FastAPI app: sends requests
- FastAPI app → Application routes: dispatches
- FastAPI app → Eligibility routes: dispatches
- FastAPI app → Document routes: dispatches
- FastAPI app → Verification routes: dispatches
- FastAPI app → Review routes: dispatches
- FastAPI app → DigiLocker routes: dispatches
- FastAPI app → Payment routes: dispatches
- Application routes → Application service: calls
- Application routes → Application documents: calls
- Review routes → Manual review service: calls
- Verification service → Verification adapters: dispatches
- Verification service → Signed PDF adapter: dispatches
- Manual review service → Verification repository: reads and updates
- Manual review service → Review repository: reads and creates
- Eligibility rules → Student repository: reads
- Eligibility rules → Scholarship repository: reads
- Verification service → Application repository: reads
- Verification service → Document repository: reads
- Verification service → Application document repository: reads
- Verification service → Verification repository: reads and updates
- Verification service → Review repository: checks and creates
- Review repository → Manual review records: persists
- Application repository → SQL database: queries and writes
- Verification repository → SQL database: queries and writes
- Review repository → SQL database: queries and writes
- Student repository → SQL database: queries
- Scholarship repository → SQL database: queries
- Document repository → SQL database: queries
- Application document repository → SQL database: queries
- DigiLocker service → DigiLocker service: integrates
