# abuzaraq3/atmasyn architecture

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

- Interactive diagram: https://gitdiagram.com/abuzaraq3/atmasyn
- Repository: https://github.com/abuzaraq3/atmasyn

## Overview

ATMASYN is currently a deterministic React demonstration of regional multi-model forecast blending, not a live forecasting service. Users select a region and forecast context, inspect illustrative model weights and blended forecast/confidence, and explore verification, alerts, sources, and workflow views. The frontend routes pages through a shared shell and scenario context into blending logic backed by mock data. README describes backend processing, ingestion, storage, and human review as intended capabilities, but the sampled Django app is only a minimal users scaffold; those future stages are not represented as implemented components.

Main entry points: [`frontend/src/App.tsx`](https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/App.tsx) (App routing), [`frontend/src/lib/blending.ts`](https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/lib/blending.ts) (Deterministic blend), [`frontend/src/lib/scenario-context.tsx`](https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/lib/scenario-context.tsx) (Scenario state), [`frontend/src/pages/Overview.tsx`](https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/pages/Overview.tsx) (Regional overview)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Application shell"]
  node_entry["React entry<br/>[main.tsx]"]
  node_app_routes["App routing<br/>[App.tsx]"]
  node_shell["Dashboard shell<br/>[AppShell.tsx]"]
  node_scenario_state["Scenario state"]
  node_controls["Scenario controls<br/>[ScenarioBar.tsx]"]
  node_page_frame["Page framing<br/>[PageFrame.tsx]"]
end

subgraph group_forecast["Forecast synthesis"]
  node_forecast_page["Forecast comparison<br/>[Forecast.tsx]"]
  node_weights_page["Weight inspection<br/>[Weights.tsx]"]
  node_blend_logic["Deterministic blend<br/>[blending.ts]"]
  node_mock_data["Demo model data<br/>[mock.ts]"]
  node_domain_types["Forecast types<br/>[types.ts]"]
end

subgraph group_insight["Operational insights"]
  node_overview["Regional overview<br/>[Overview.tsx]"]
  node_map["Regional map<br/>[IndiaMap.tsx]"]
  node_charts["Charts and metrics<br/>[Charts.tsx]"]
  node_verification["Verification view<br/>[Verification.tsx]"]
  node_alerts["Alert presentation<br/>[Alerts.tsx]"]
  node_workflow["Workflow view<br/>[Workflow.tsx]"]
  node_sources["Source view<br/>[Sources.tsx]"]
end

subgraph group_backend["Backend scaffold"]
  node_django_users["User app scaffold<br/>[views.py]"]
  node_django_config["Django configuration<br/>[settings.py]"]
end

node_operator(("Forecast user"))

node_operator -->|"opens dashboard"| node_entry
node_entry -->|"renders app"| node_app_routes
node_app_routes -->|"wraps routes"| node_shell
node_app_routes -->|"provides state"| node_scenario_state
node_app_routes -->|"routes to"| node_overview
node_app_routes -->|"routes to"| node_forecast_page
node_app_routes -->|"routes to"| node_weights_page
node_app_routes -->|"routes to"| node_verification
node_app_routes -->|"routes to"| node_alerts
node_app_routes -->|"routes to"| node_workflow
node_app_routes -->|"routes to"| node_sources
node_shell -.->|"hosts pages"| node_page_frame
node_page_frame -->|"renders controls"| node_controls
node_controls -.->|"updates context"| node_scenario_state
node_overview -->|"reads scenario"| node_scenario_state
node_overview -.->|"builds result"| node_blend_logic
node_overview -->|"renders map"| node_map
node_forecast_page -->|"reads scenario"| node_scenario_state
node_forecast_page -->|"builds forecast"| node_blend_logic
node_weights_page -.->|"uses weights"| node_blend_logic
node_verification -->|"shows demo scores"| node_mock_data
node_verification -->|"renders metrics"| node_charts
node_workflow -->|"builds result"| node_blend_logic
node_workflow -->|"reads scenario"| node_scenario_state
node_sources -->|"uses frame"| node_page_frame
node_blend_logic -->|"reads priors"| node_mock_data
node_mock_data -->|"uses types"| node_domain_types
node_django_config -.->|"configures app"| node_django_users

click node_entry "https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/main.tsx"
click node_app_routes "https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/App.tsx"
click node_shell "https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/components/AppShell.tsx"
click node_scenario_state "https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/lib/scenario-context.tsx"
click node_controls "https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/components/ScenarioBar.tsx"
click node_page_frame "https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/pages/PageFrame.tsx"
click node_overview "https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/pages/Overview.tsx"
click node_forecast_page "https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/pages/Forecast.tsx"
click node_weights_page "https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/pages/Weights.tsx"
click node_blend_logic "https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/lib/blending.ts"
click node_mock_data "https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/data/mock.ts"
click node_domain_types "https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/data/types.ts"
click node_map "https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/components/IndiaMap.tsx"
click node_charts "https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/components/Charts.tsx"
click node_verification "https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/pages/Verification.tsx"
click node_alerts "https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/pages/Alerts.tsx"
click node_workflow "https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/pages/Workflow.tsx"
click node_sources "https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/pages/Sources.tsx"
click node_django_users "https://github.com/abuzaraq3/atmasyn/blob/prod/backend/users/views.py"
click node_django_config "https://github.com/abuzaraq3/atmasyn/blob/prod/backend/backend/settings.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_entry,node_app_routes,node_shell,node_scenario_state,node_controls,node_page_frame,node_operator toneBlue
class node_forecast_page,node_weights_page,node_blend_logic,node_mock_data,node_domain_types toneAmber
class node_overview,node_map,node_charts,node_verification,node_alerts,node_workflow,node_sources toneMint
class node_django_users,node_django_config toneRose
```

## Components

### Application shell

- [React entry](https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/main.tsx): `frontend/src/main.tsx`
- [App routing](https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/App.tsx): `frontend/src/App.tsx`
- [Dashboard shell](https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/components/AppShell.tsx): `frontend/src/components/AppShell.tsx`
- [Scenario state](https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/lib/scenario-context.tsx): `frontend/src/lib/scenario-context.tsx`
- [Scenario controls](https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/components/ScenarioBar.tsx): `frontend/src/components/ScenarioBar.tsx`
- [Page framing](https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/pages/PageFrame.tsx): `frontend/src/pages/PageFrame.tsx`

### Forecast synthesis

- [Forecast comparison](https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/pages/Forecast.tsx): `frontend/src/pages/Forecast.tsx`
- [Weight inspection](https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/pages/Weights.tsx): `frontend/src/pages/Weights.tsx`
- [Deterministic blend](https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/lib/blending.ts): `frontend/src/lib/blending.ts`
- [Demo model data](https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/data/mock.ts): `frontend/src/data/mock.ts`
- [Forecast types](https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/data/types.ts): `frontend/src/data/types.ts`

### Operational insights

- [Regional overview](https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/pages/Overview.tsx): `frontend/src/pages/Overview.tsx`
- [Regional map](https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/components/IndiaMap.tsx): `frontend/src/components/IndiaMap.tsx`
- [Charts and metrics](https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/components/Charts.tsx): `frontend/src/components/Charts.tsx`
- [Verification view](https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/pages/Verification.tsx): `frontend/src/pages/Verification.tsx`
- [Alert presentation](https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/pages/Alerts.tsx): `frontend/src/pages/Alerts.tsx`
- [Workflow view](https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/pages/Workflow.tsx): `frontend/src/pages/Workflow.tsx`
- [Source view](https://github.com/abuzaraq3/atmasyn/blob/prod/frontend/src/pages/Sources.tsx): `frontend/src/pages/Sources.tsx`

### Backend scaffold

- [User app scaffold](https://github.com/abuzaraq3/atmasyn/blob/prod/backend/users/views.py): `backend/users/views.py`
- [Django configuration](https://github.com/abuzaraq3/atmasyn/blob/prod/backend/backend/settings.py): `backend/backend/settings.py`

### Other components

- **Forecast user**

## Connections

- Forecast user → React entry: opens dashboard (evidence: `frontend/src/main.tsx`)
- React entry → App routing: renders app (evidence: `frontend/src/main.tsx`)
- App routing → Dashboard shell: wraps routes (evidence: `frontend/src/App.tsx`)
- App routing → Scenario state: provides state (evidence: `frontend/src/App.tsx`)
- App routing → Regional overview: routes to (evidence: `frontend/src/App.tsx`)
- App routing → Forecast comparison: routes to (evidence: `frontend/src/App.tsx`)
- App routing → Weight inspection: routes to (evidence: `frontend/src/App.tsx`)
- App routing → Verification view: routes to (evidence: `frontend/src/App.tsx`)
- App routing → Alert presentation: routes to (evidence: `frontend/src/App.tsx`)
- App routing → Workflow view: routes to (evidence: `frontend/src/App.tsx`)
- App routing → Source view: routes to (evidence: `frontend/src/App.tsx`)
- Dashboard shell → Page framing: hosts pages
- Page framing → Scenario controls: renders controls (evidence: `frontend/src/pages/PageFrame.tsx`)
- Scenario controls → Scenario state: updates context
- Regional overview → Scenario state: reads scenario (evidence: `frontend/src/pages/Overview.tsx`)
- Regional overview → Deterministic blend: builds result
- Regional overview → Regional map: renders map (evidence: `frontend/src/pages/Overview.tsx`)
- Forecast comparison → Scenario state: reads scenario (evidence: `frontend/src/pages/Forecast.tsx`)
- Forecast comparison → Deterministic blend: builds forecast (evidence: `frontend/src/pages/Forecast.tsx`)
- Weight inspection → Deterministic blend: uses weights
- Verification view → Demo model data: shows demo scores (evidence: `frontend/src/pages/Verification.tsx`)
- Verification view → Charts and metrics: renders metrics (evidence: `frontend/src/pages/Verification.tsx`)
- Workflow view → Deterministic blend: builds result (evidence: `frontend/src/pages/Workflow.tsx`)
- Workflow view → Scenario state: reads scenario (evidence: `frontend/src/pages/Workflow.tsx`)
- Source view → Page framing: uses frame (evidence: `frontend/src/pages/Sources.tsx`)
- Deterministic blend → Demo model data: reads priors (evidence: `frontend/src/lib/blending.ts`)
- Demo model data → Forecast types: uses types (evidence: `frontend/src/data/mock.ts`)
- Django configuration → User app scaffold: configures app
