# munawar-1/sih-early-detection-of-landslides architecture

> Architecture diagram of the GitHub repository munawar-1/sih-early-detection-of-landslides, 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/munawar-1/sih-early-detection-of-landslides
- Repository: https://github.com/munawar-1/sih-early-detection-of-landslides

## Overview

This is a landslide early-warning product for the Dima Hasao/NER region, combining a public dashboard, a mobile app, backend risk assessment, ML prediction, and emergency alerts. The main workflow is a user or dashboard requesting risk information; the backend obtains grid and weather inputs, calls the ML service when applicable, and returns results. Mobile also has a local offline risk evaluator. The tree and excerpts support these main paths, but the README is empty and many controller/service relationships are unsampled, so uncertain wiring is omitted.

Main entry points: [`sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/controller/PredictionController.java`](https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/controller/PredictionController.java) (Backend API), [`sih-landslide-ner/mobile-app/App.tsx`](https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/mobile-app/App.tsx) (Mobile App), [`sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/service/OrchestrationService.java`](https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/service/OrchestrationService.java) (Risk Orchestration), [`sih-landslide-ner/frontend-dashboard/src/services/apiService.ts`](https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/frontend-dashboard/src/services/apiService.ts) (Dashboard API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_clients["User Clients"]
  node_dashboard["Risk Dashboard<br/>[App.tsx]"]
  node_dashboard_api["Dashboard API<br/>[apiService.ts]"]
  node_mobile["Mobile App<br/>[App.tsx]"]
  node_mobile_api["Mobile API<br/>[apiService.ts]"]
  node_offline_risk["Offline Risk Engine"]
  node_grid_cache["Grid Cache"]
  node_local_store[("Mobile Storage<br/>[storageService.ts]")]
  node_web_offline[("Dashboard Offline Cache")]
end

subgraph group_backend["Backend Services"]
  node_backend_api["Backend API"]
  node_orchestration["Risk Orchestration"]
  node_weather["Weather Inputs"]
  node_grid_repo[("Grid Repository")]
  node_auth["OTP Authentication<br/>[AuthService.java]"]
  node_jwt["JWT Security<br/>[JwtService.java]"]
  node_reports["Public Reports"]
end

subgraph group_ml["Risk Modeling"]
  node_ml_service["Prediction Service<br/>[main.py]"]
  node_training["Model Training<br/>[train.py]"]
  node_data_pipeline["Geospatial Data Pipeline"]
end

subgraph group_alerts["Alert Delivery"]
  node_alert_dispatch["Alert Dispatch"]
  node_notification["Notification Providers"]
  node_alert_logs[("Alert Logs")]
end

node_public(("Resident / Analyst"))
node_notification_network(("Push / SMS Networks"))

node_public -->|"uses"| node_dashboard
node_public -->|"uses"| node_mobile
node_dashboard -->|"requests data"| node_dashboard_api
node_dashboard_api -->|"calls backend"| node_backend_api
node_mobile -->|"requests data"| node_mobile_api
node_mobile_api -->|"calls backend"| node_backend_api
node_mobile -->|"evaluates offline"| node_offline_risk
node_offline_risk -->|"reads cached grid"| node_grid_cache
node_mobile -->|"stores credentials"| node_local_store
node_dashboard_api -.->|"caches grid"| node_web_offline
node_backend_api -->|"runs assessment"| node_orchestration
node_orchestration -->|"loads and updates grid"| node_grid_repo
node_orchestration -->|"fetches rainfall"| node_weather
node_orchestration -->|"sends batch predictions"| node_ml_service
node_backend_api -->|"requests coordinate risk"| node_ml_service
node_backend_api -->|"queries nearest point"| node_grid_repo
node_auth -->|"generates token"| node_jwt
node_alert_dispatch -->|"dispatches alerts"| node_notification
node_alert_dispatch -->|"records delivery"| node_alert_logs
node_notification -->|"sends push and SMS"| node_notification_network
node_training -.->|"produces model"| node_ml_service
node_data_pipeline -.->|"prepares data"| node_training

click node_dashboard "https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/frontend-dashboard/src/App.tsx"
click node_dashboard_api "https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/frontend-dashboard/src/services/apiService.ts"
click node_mobile "https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/mobile-app/App.tsx"
click node_mobile_api "https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/mobile-app/src/services/apiService.ts"
click node_offline_risk "https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/mobile-app/src/services/offlineRiskEngine.ts"
click node_grid_cache "https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/mobile-app/src/services/gridCacheService.ts"
click node_local_store "https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/mobile-app/src/services/storageService.ts"
click node_web_offline "https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/frontend-dashboard/src/services/offlineStorageService.ts"
click node_backend_api "https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/controller/PredictionController.java"
click node_orchestration "https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/service/OrchestrationService.java"
click node_weather "https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/service/WeatherService.java"
click node_grid_repo "https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/repository/GridPointRepository.java"
click node_auth "https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/service/AuthService.java"
click node_jwt "https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/security/JwtService.java"
click node_reports "https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/service/PublicReportService.java"
click node_alert_dispatch "https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/service/AlertDispatchService.java"
click node_notification "https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/notification/NotificationProvider.java"
click node_alert_logs "https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/repository/AlertLogRepository.java"
click node_ml_service "https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/ml-service/src/main.py"
click node_training "https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/ml-service/src/train.py"
click node_data_pipeline "https://github.com/munawar-1/sih-early-detection-of-landslides/tree/main/sih-landslide-ner/data-pipeline/scripts"

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_dashboard,node_dashboard_api,node_mobile,node_mobile_api,node_offline_risk,node_grid_cache,node_local_store,node_web_offline toneBlue
class node_backend_api,node_orchestration,node_weather,node_grid_repo,node_auth,node_jwt,node_reports toneAmber
class node_ml_service,node_training,node_data_pipeline toneMint
class node_alert_dispatch,node_notification,node_alert_logs toneRose
class node_public,node_notification_network toneIndigo
```

## Components

### User Clients

- [Risk Dashboard](https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/frontend-dashboard/src/App.tsx): `sih-landslide-ner/frontend-dashboard/src/App.tsx`
- [Dashboard API](https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/frontend-dashboard/src/services/apiService.ts): `sih-landslide-ner/frontend-dashboard/src/services/apiService.ts`
- [Mobile App](https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/mobile-app/App.tsx): `sih-landslide-ner/mobile-app/App.tsx`
- [Mobile API](https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/mobile-app/src/services/apiService.ts): `sih-landslide-ner/mobile-app/src/services/apiService.ts`
- [Offline Risk Engine](https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/mobile-app/src/services/offlineRiskEngine.ts): `sih-landslide-ner/mobile-app/src/services/offlineRiskEngine.ts`
- [Grid Cache](https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/mobile-app/src/services/gridCacheService.ts): `sih-landslide-ner/mobile-app/src/services/gridCacheService.ts`
- [Mobile Storage](https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/mobile-app/src/services/storageService.ts): `sih-landslide-ner/mobile-app/src/services/storageService.ts`
- [Dashboard Offline Cache](https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/frontend-dashboard/src/services/offlineStorageService.ts): `sih-landslide-ner/frontend-dashboard/src/services/offlineStorageService.ts`

### Backend Services

- [Backend API](https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/controller/PredictionController.java): `sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/controller/PredictionController.java`
- [Risk Orchestration](https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/service/OrchestrationService.java): `sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/service/OrchestrationService.java`
- [Weather Inputs](https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/service/WeatherService.java): `sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/service/WeatherService.java`
- [Grid Repository](https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/repository/GridPointRepository.java): `sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/repository/GridPointRepository.java`
- [OTP Authentication](https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/service/AuthService.java): `sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/service/AuthService.java`
- [JWT Security](https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/security/JwtService.java): `sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/security/JwtService.java`
- [Public Reports](https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/service/PublicReportService.java): `sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/service/PublicReportService.java`

### Risk Modeling

- [Prediction Service](https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/ml-service/src/main.py): `sih-landslide-ner/ml-service/src/main.py`
- [Model Training](https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/ml-service/src/train.py): `sih-landslide-ner/ml-service/src/train.py`
- [Geospatial Data Pipeline](https://github.com/munawar-1/sih-early-detection-of-landslides/tree/main/sih-landslide-ner/data-pipeline/scripts): `sih-landslide-ner/data-pipeline/scripts`

### Alert Delivery

- [Alert Dispatch](https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/service/AlertDispatchService.java): `sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/service/AlertDispatchService.java`
- [Notification Providers](https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/notification/NotificationProvider.java): `sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/notification/NotificationProvider.java`
- [Alert Logs](https://github.com/munawar-1/sih-early-detection-of-landslides/blob/main/sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/repository/AlertLogRepository.java): `sih-landslide-ner/backend-server/src/main/java/com/sih/landslide/repository/AlertLogRepository.java`

### Other components

- **Resident / Analyst**
- **Push / SMS Networks**

## Connections

- Resident / Analyst → Risk Dashboard: uses
- Resident / Analyst → Mobile App: uses
- Risk Dashboard → Dashboard API: requests data
- Dashboard API → Backend API: calls backend
- Mobile App → Mobile API: requests data
- Mobile API → Backend API: calls backend
- Mobile App → Offline Risk Engine: evaluates offline
- Offline Risk Engine → Grid Cache: reads cached grid
- Mobile App → Mobile Storage: stores credentials
- Dashboard API → Dashboard Offline Cache: caches grid
- Backend API → Risk Orchestration: runs assessment
- Risk Orchestration → Grid Repository: loads and updates grid
- Risk Orchestration → Weather Inputs: fetches rainfall
- Risk Orchestration → Prediction Service: sends batch predictions
- Backend API → Prediction Service: requests coordinate risk
- Backend API → Grid Repository: queries nearest point
- OTP Authentication → JWT Security: generates token
- Alert Dispatch → Notification Providers: dispatches alerts
- Alert Dispatch → Alert Logs: records delivery
- Notification Providers → Push / SMS Networks: sends push and SMS
- Model Training → Prediction Service: produces model
- Geospatial Data Pipeline → Model Training: prepares data
