# roopal045-cloud/unified-scholarship-mobile-app architecture

> Architecture diagram of the GitHub repository roopal045-cloud/unified-scholarship-mobile-app, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/roopal045-cloud/unified-scholarship-mobile-app
- Repository: https://github.com/roopal045-cloud/unified-scholarship-mobile-app

## Overview

Unified-Scholarship is presented as a mobile app backed by an Express API for scholarship access across NSP, SFMP, and NOS. The documented workflow includes authentication, eligibility checks, a unified application dashboard, document verification, and disbursement updates; a separate coverage-gap workflow identifies enrolled students without applications. The sampled backend confirms dashboard aggregation, verification dispatch, and coverage-gap reads. Flutter application source and most route implementations are absent, so their internal wiring is not inferred.

Main entry points: [`backend/server.js`](https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/server.js) (Express API), [`backend/src/services/coverageGapService.js`](https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/services/coverageGapService.js) (Enrollment gap analysis), [`backend/src/services/aggregationService.js`](https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/services/aggregationService.js) (Dashboard aggregation), [`backend/src/adapters/nspAdapter.js`](https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/adapters/nspAdapter.js) (NSP adapter)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API and routes"]
  node_api_server["Express API<br/>[server.js]"]
  node_auth_route["Authentication<br/>[auth.js]"]
  node_applications_route["Applications API<br/>[applications.js]"]
  node_verification_route["Verification API<br/>[verification.js]"]
  node_disbursement_route["Disbursement API<br/>[disbursement.js]"]
  node_notifications_route["Notifications API<br/>[notifications.js]"]
  node_eligibility_route["Eligibility API<br/>[eligibility.js]"]
  node_coverage_route["Coverage-gap API<br/>[coverageGap.js]"]
end

subgraph group_domain["Scholarship workflows"]
  node_aggregation["Dashboard aggregation"]
  node_eligibility["Eligibility check"]
  node_verification["Document verification"]
  node_disbursement["DBT status and alerts"]
  node_coverage["Enrollment gap analysis"]
end

subgraph group_adapters["Source adapters"]
  node_enrollment[("Enrollment records")]
  node_nsp["NSP adapter<br/>[nspAdapter.js]"]
  node_sfmp["SFMP adapter<br/>[sfmpAdapter.js]"]
  node_nos["NOS adapter<br/>[nosAdapter.js]"]
end

node_mobile(("Mobile user"))
node_scholarship_systems["NSP, SFMP, NOS"]
node_enrollment_systems["UDISE+, APAAR, OTR"]

node_mobile -->|"sends requests"| node_api_server
node_api_server -->|"mounts routes"| node_auth_route
node_api_server -->|"mounts routes"| node_applications_route
node_api_server -->|"mounts routes"| node_verification_route
node_api_server -->|"mounts routes"| node_disbursement_route
node_api_server -->|"mounts routes"| node_notifications_route
node_api_server -->|"mounts routes"| node_eligibility_route
node_api_server -->|"mounts routes"| node_coverage_route
node_applications_route -->|"requests dashboard"| node_aggregation
node_eligibility -->|"checks applications"| node_aggregation
node_aggregation -->|"reads applications"| node_nsp
node_aggregation -->|"reads applications"| node_sfmp
node_aggregation -->|"reads applications"| node_nos
node_verification -->|"verifies documents"| node_nsp
node_verification -->|"verifies documents"| node_sfmp
node_verification -->|"verifies documents"| node_nos
node_coverage_route -->|"requests analysis"| node_coverage
node_coverage -->|"reads records"| node_enrollment
node_coverage -->|"checks applications"| node_nsp
node_coverage -->|"checks applications"| node_sfmp
node_coverage -->|"checks applications"| node_nos
node_enrollment_systems -.->|"provides mock data"| node_enrollment
node_nsp -.->|"adapts records"| node_scholarship_systems
node_sfmp -.->|"adapts records"| node_scholarship_systems
node_nos -.->|"adapts records"| node_scholarship_systems

click node_api_server "https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/server.js"
click node_auth_route "https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/routes/auth.js"
click node_applications_route "https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/routes/applications.js"
click node_verification_route "https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/routes/verification.js"
click node_disbursement_route "https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/routes/disbursement.js"
click node_notifications_route "https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/routes/notifications.js"
click node_eligibility_route "https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/routes/eligibility.js"
click node_coverage_route "https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/routes/coverageGap.js"
click node_aggregation "https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/services/aggregationService.js"
click node_eligibility "https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/services/eligibilityService.js"
click node_verification "https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/services/verificationService.js"
click node_disbursement "https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/services/disbursementService.js"
click node_coverage "https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/services/coverageGapService.js"
click node_enrollment "https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/adapters/enrollmentAdapter.js"
click node_nsp "https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/adapters/nspAdapter.js"
click node_sfmp "https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/adapters/sfmpAdapter.js"
click node_nos "https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/adapters/nosAdapter.js"

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_api_server,node_auth_route,node_applications_route,node_verification_route,node_disbursement_route,node_notifications_route,node_eligibility_route,node_coverage_route,node_mobile toneBlue
class node_aggregation,node_eligibility,node_verification,node_disbursement,node_coverage toneAmber
class node_enrollment,node_nsp,node_sfmp,node_nos toneMint
class node_scholarship_systems,node_enrollment_systems toneIndigo
```

## Components

### API and routes

- [Express API](https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/server.js): `backend/server.js`
- [Authentication](https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/routes/auth.js): `backend/src/routes/auth.js`
- [Applications API](https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/routes/applications.js): `backend/src/routes/applications.js`
- [Verification API](https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/routes/verification.js): `backend/src/routes/verification.js`
- [Disbursement API](https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/routes/disbursement.js): `backend/src/routes/disbursement.js`
- [Notifications API](https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/routes/notifications.js): `backend/src/routes/notifications.js`
- [Eligibility API](https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/routes/eligibility.js): `backend/src/routes/eligibility.js`
- [Coverage-gap API](https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/routes/coverageGap.js): `backend/src/routes/coverageGap.js`

### Scholarship workflows

- [Dashboard aggregation](https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/services/aggregationService.js): `backend/src/services/aggregationService.js`
- [Eligibility check](https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/services/eligibilityService.js): `backend/src/services/eligibilityService.js`
- [Document verification](https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/services/verificationService.js): `backend/src/services/verificationService.js`
- [DBT status and alerts](https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/services/disbursementService.js): `backend/src/services/disbursementService.js`
- [Enrollment gap analysis](https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/services/coverageGapService.js): `backend/src/services/coverageGapService.js`

### Source adapters

- [Enrollment records](https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/adapters/enrollmentAdapter.js): `backend/src/adapters/enrollmentAdapter.js`
- [NSP adapter](https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/adapters/nspAdapter.js): `backend/src/adapters/nspAdapter.js`
- [SFMP adapter](https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/adapters/sfmpAdapter.js): `backend/src/adapters/sfmpAdapter.js`
- [NOS adapter](https://github.com/roopal045-cloud/unified-scholarship-mobile-app/blob/main/backend/src/adapters/nosAdapter.js): `backend/src/adapters/nosAdapter.js`

### Other components

- **Mobile user**
- **NSP, SFMP, NOS**
- **UDISE+, APAAR, OTR**

## Connections

- Mobile user → Express API: sends requests
- Express API → Authentication: mounts routes
- Express API → Applications API: mounts routes
- Express API → Verification API: mounts routes
- Express API → Disbursement API: mounts routes
- Express API → Notifications API: mounts routes
- Express API → Eligibility API: mounts routes
- Express API → Coverage-gap API: mounts routes
- Applications API → Dashboard aggregation: requests dashboard
- Eligibility check → Dashboard aggregation: checks applications
- Dashboard aggregation → NSP adapter: reads applications
- Dashboard aggregation → SFMP adapter: reads applications
- Dashboard aggregation → NOS adapter: reads applications
- Document verification → NSP adapter: verifies documents
- Document verification → SFMP adapter: verifies documents
- Document verification → NOS adapter: verifies documents
- Coverage-gap API → Enrollment gap analysis: requests analysis
- Enrollment gap analysis → Enrollment records: reads records
- Enrollment gap analysis → NSP adapter: checks applications
- Enrollment gap analysis → SFMP adapter: checks applications
- Enrollment gap analysis → NOS adapter: checks applications
- UDISE+, APAAR, OTR → Enrollment records: provides mock data
- NSP adapter → NSP, SFMP, NOS: adapts records
- SFMP adapter → NSP, SFMP, NOS: adapts records
- NOS adapter → NSP, SFMP, NOS: adapts records
