# bit-coder91/sanjeevani-rural_health architecture

> Architecture diagram of the GitHub repository bit-coder91/sanjeevani-rural_health, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-10-01). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/bit-coder91/sanjeevani-rural_health
- Repository: https://github.com/bit-coder91/sanjeevani-rural_health

## Overview

Sanjeevani is presented as a rural-health web application for symptom screening, facility discovery, and patient access. The documented user flow is a patient using the web interface to reach Spring API operations; facility search uses patient coordinates and hospital-directory data, while account operations read and update user history. The sampled code confirms these API and CSV behaviors, but not most of the README’s AI, cloud, or IoT claims; those are shown only as documented capabilities, not verified integrations.

Main entry points: [`src/main/java/com/ruralhealth/server/controller/ApiController.java`](https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/src/main/java/com/ruralhealth/server/controller/ApiController.java) (API controller), [`src/main/resources/static/index.html`](https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/src/main/resources/static/index.html) (Web interface), [`src/main/java/com/ruralhealth/server/RuralHealthApplication.java`](https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/src/main/java/com/ruralhealth/server/RuralHealthApplication.java) (Spring application), [`users.csv`](https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/users.csv) (User records)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Patient interface"]
  node_web["Web interface<br/>[index.html]"]
end

subgraph group_api["Spring API"]
  node_application["Spring application"]
  node_controller["API controller<br/>[ApiController.java]"]
  node_symptoms["Symptom screening<br/>[ApiController.java]"]
  node_followup["Follow-up<br/>[ApiController.java]"]
  node_images["Image analysis<br/>[ApiController.java]"]
end

subgraph group_facilities["Facility discovery"]
  node_facility_search["Proximity search<br/>[ApiController.java]"]
  node_hospital_data[("Hospital directory")]
  node_resource_status["Resource status<br/>[ApiController.java]"]
end

subgraph group_accounts["Patient accounts"]
  node_authentication["Account access<br/>[ApiController.java]"]
  node_history["Medical history<br/>[ApiController.java]"]
  node_user_data[("User records<br/>[users.csv]")]
end

node_patient(("Patient"))
node_iot["IoT health data"]

node_patient -->|"uses"| node_web
node_web -->|"served by"| node_application
node_application -->|"starts"| node_controller
node_web -->|"calls API"| node_controller
node_controller -->|"routes screening"| node_symptoms
node_controller -->|"routes follow-up"| node_followup
node_controller -->|"routes analysis"| node_images
node_controller -->|"routes search"| node_facility_search
node_facility_search -->|"reads CSV"| node_hospital_data
node_facility_search -->|"computes estimates"| node_resource_status
node_controller -->|"routes access"| node_authentication
node_controller -->|"routes history"| node_history
node_authentication -->|"reads and writes"| node_user_data
node_history -->|"reads and writes"| node_user_data
node_iot -.->|"sends readings"| node_controller

click node_web "https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/src/main/resources/static/index.html"
click node_application "https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/src/main/java/com/ruralhealth/server/RuralHealthApplication.java"
click node_controller "https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/src/main/java/com/ruralhealth/server/controller/ApiController.java"
click node_symptoms "https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/src/main/java/com/ruralhealth/server/controller/ApiController.java"
click node_followup "https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/src/main/java/com/ruralhealth/server/controller/ApiController.java"
click node_images "https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/src/main/java/com/ruralhealth/server/controller/ApiController.java"
click node_facility_search "https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/src/main/java/com/ruralhealth/server/controller/ApiController.java"
click node_hospital_data "https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/src/main/resources/hospital_directory.csv"
click node_resource_status "https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/src/main/java/com/ruralhealth/server/controller/ApiController.java"
click node_authentication "https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/src/main/java/com/ruralhealth/server/controller/ApiController.java"
click node_history "https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/src/main/java/com/ruralhealth/server/controller/ApiController.java"
click node_user_data "https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/users.csv"

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_web toneBlue
class node_application,node_controller,node_symptoms,node_followup,node_images toneAmber
class node_facility_search,node_hospital_data,node_resource_status toneMint
class node_authentication,node_history,node_user_data toneRose
class node_patient,node_iot toneIndigo
```

## Components

### Patient interface

- [Web interface](https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/src/main/resources/static/index.html): `src/main/resources/static/index.html`

### Spring API

- [Spring application](https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/src/main/java/com/ruralhealth/server/RuralHealthApplication.java): `src/main/java/com/ruralhealth/server/RuralHealthApplication.java`
- [API controller](https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/src/main/java/com/ruralhealth/server/controller/ApiController.java): `src/main/java/com/ruralhealth/server/controller/ApiController.java`
- [Symptom screening](https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/src/main/java/com/ruralhealth/server/controller/ApiController.java): `src/main/java/com/ruralhealth/server/controller/ApiController.java`
- [Follow-up](https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/src/main/java/com/ruralhealth/server/controller/ApiController.java): `src/main/java/com/ruralhealth/server/controller/ApiController.java`
- [Image analysis](https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/src/main/java/com/ruralhealth/server/controller/ApiController.java): `src/main/java/com/ruralhealth/server/controller/ApiController.java`

### Facility discovery

- [Proximity search](https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/src/main/java/com/ruralhealth/server/controller/ApiController.java): `src/main/java/com/ruralhealth/server/controller/ApiController.java`
- [Hospital directory](https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/src/main/resources/hospital_directory.csv): `src/main/resources/hospital_directory.csv`
- [Resource status](https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/src/main/java/com/ruralhealth/server/controller/ApiController.java): `src/main/java/com/ruralhealth/server/controller/ApiController.java`

### Patient accounts

- [Account access](https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/src/main/java/com/ruralhealth/server/controller/ApiController.java): `src/main/java/com/ruralhealth/server/controller/ApiController.java`
- [Medical history](https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/src/main/java/com/ruralhealth/server/controller/ApiController.java): `src/main/java/com/ruralhealth/server/controller/ApiController.java`
- [User records](https://github.com/bit-coder91/sanjeevani-rural_health/blob/main/users.csv): `users.csv`

### Other components

- **Patient**
- **IoT health data**

## Connections

- Patient → Web interface: uses (evidence: `README.md`)
- Web interface → Spring application: served by (evidence: `README.md`)
- Spring application → API controller: starts (evidence: `src/main/java/com/ruralhealth/server/RuralHealthApplication.java`)
- Web interface → API controller: calls API (evidence: `README.md`)
- API controller → Symptom screening: routes screening (evidence: `src/main/java/com/ruralhealth/server/controller/ApiController.java`)
- API controller → Follow-up: routes follow-up (evidence: `src/main/java/com/ruralhealth/server/controller/ApiController.java`)
- API controller → Image analysis: routes analysis (evidence: `src/main/java/com/ruralhealth/server/controller/ApiController.java`)
- API controller → Proximity search: routes search (evidence: `src/main/java/com/ruralhealth/server/controller/ApiController.java`)
- Proximity search → Hospital directory: reads CSV (evidence: `src/main/java/com/ruralhealth/server/controller/ApiController.java`)
- Proximity search → Resource status: computes estimates (evidence: `src/main/java/com/ruralhealth/server/controller/ApiController.java`)
- API controller → Account access: routes access (evidence: `src/main/java/com/ruralhealth/server/controller/ApiController.java`)
- API controller → Medical history: routes history (evidence: `src/main/java/com/ruralhealth/server/controller/ApiController.java`)
- Account access → User records: reads and writes (evidence: `src/main/java/com/ruralhealth/server/controller/ApiController.java`)
- Medical history → User records: reads and writes (evidence: `src/main/java/com/ruralhealth/server/controller/ApiController.java`)
- IoT health data → API controller: sends readings (evidence: `README.md`)
