# ambreshkalashtty44-crypto/karnataka-welfare-insights architecture

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

- Interactive diagram: https://gitdiagram.com/ambreshkalashtty44-crypto/karnataka-welfare-insights
- Repository: https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights
- Video tour (about a minute): https://gitdiagram.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/video

## Overview

Karnataka Welfare Insight is a dashboard for exploring generated welfare-scheme coverage across Karnataka districts. Users enter through the shared application layout and choose a dashboard, map, scheme comparison, association-rule analysis, cluster analysis, or coverage report; the report also supports PDF export. The layout preloads cached data through the client data store, which calls server functions backed by dataset generation and analysis logic. README capabilities are represented even where their route implementations were not sampled; their detailed wiring is therefore not inferred. The optional Flask backend is documented as an equivalent alternative.

Main entry points: [`src/components/app/AppLayout.tsx`](https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/components/app/AppLayout.tsx) (App layout), [`src/lib/dataStore.ts`](https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/lib/dataStore.ts) (Data store), [`src/routes/report.tsx`](https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/routes/report.tsx) (Coverage report), [`src/server/api.functions.ts`](https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/server/api.functions.ts) (Server functions)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["User experience"]
  node_layout["App layout<br/>[AppLayout.tsx]"]
  node_dashboard["Overview dashboard<br/>[index.tsx]"]
  node_map["District map<br/>[map.tsx]"]
  node_schemes["Scheme comparison<br/>[schemes.tsx]"]
  node_report["Coverage report<br/>[report.tsx]"]
  node_pdf["PDF export<br/>[report.tsx]"]
end

subgraph group_analysis["Analytics"]
  node_rules["Association rules<br/>[rules.tsx]"]
  node_clusters["District clusters<br/>[clusters.tsx]"]
  node_logic["Dataset and analysis<br/>[analyzer.logic.ts]"]
end

subgraph group_data["Data and API"]
  node_store["Data store<br/>[dataStore.ts]"]
  node_api["Server functions<br/>[api.functions.ts]"]
  node_types["Analysis types<br/>[analyzer.types.ts]"]
  node_districts["District and scheme metadata<br/>[karnataka.ts]"]
end

subgraph group_optional["Optional backend"]
  node_flask["Flask API<br/>[app.py]"]
end

node_user(("Dashboard user"))

node_user -->|"opens app"| node_layout
node_layout -->|"routes to"| node_dashboard
node_layout -->|"routes to"| node_map
node_layout -->|"routes to"| node_schemes
node_layout -->|"routes to"| node_rules
node_layout -->|"routes to"| node_clusters
node_layout -->|"routes to"| node_report
node_layout -->|"preloads"| node_store
node_dashboard -->|"reads data"| node_store
node_map -->|"reads data"| node_store
node_schemes -->|"reads data"| node_store
node_rules -->|"reads rules"| node_store
node_clusters -->|"reads clusters"| node_store
node_report -->|"reads data"| node_store
node_report -->|"exports PDF"| node_pdf
node_store -->|"requests data"| node_api
node_api -->|"dispatches analysis"| node_logic
node_logic -->|"reads metadata"| node_districts
node_api -->|"returns results"| node_store
node_user -.->|"optional API client"| node_flask

click node_layout "https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/components/app/AppLayout.tsx"
click node_dashboard "https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/routes/index.tsx"
click node_map "https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/routes/map.tsx"
click node_schemes "https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/routes/schemes.tsx"
click node_rules "https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/routes/rules.tsx"
click node_clusters "https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/routes/clusters.tsx"
click node_report "https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/routes/report.tsx"
click node_store "https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/lib/dataStore.ts"
click node_api "https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/server/api.functions.ts"
click node_logic "https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/server/analyzer.logic.ts"
click node_types "https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/server/analyzer.types.ts"
click node_districts "https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/data/karnataka.ts"
click node_pdf "https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/routes/report.tsx"
click node_flask "https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/backend-flask/app.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_layout,node_dashboard,node_map,node_schemes,node_report,node_pdf,node_user toneBlue
class node_rules,node_clusters,node_logic toneAmber
class node_store,node_api,node_types,node_districts toneMint
class node_flask toneRose
```

## Components

### User experience

- [App layout](https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/components/app/AppLayout.tsx): `src/components/app/AppLayout.tsx`
- [Overview dashboard](https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/routes/index.tsx): `src/routes/index.tsx`
- [District map](https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/routes/map.tsx): `src/routes/map.tsx`
- [Scheme comparison](https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/routes/schemes.tsx): `src/routes/schemes.tsx`
- [Coverage report](https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/routes/report.tsx): `src/routes/report.tsx`
- [PDF export](https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/routes/report.tsx): `src/routes/report.tsx`

### Analytics

- [Association rules](https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/routes/rules.tsx): `src/routes/rules.tsx`
- [District clusters](https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/routes/clusters.tsx): `src/routes/clusters.tsx`
- [Dataset and analysis](https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/server/analyzer.logic.ts): `src/server/analyzer.logic.ts`

### Data and API

- [Data store](https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/lib/dataStore.ts): `src/lib/dataStore.ts`
- [Server functions](https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/server/api.functions.ts): `src/server/api.functions.ts`
- [Analysis types](https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/server/analyzer.types.ts): `src/server/analyzer.types.ts`
- [District and scheme metadata](https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/src/data/karnataka.ts): `src/data/karnataka.ts`

### Optional backend

- [Flask API](https://github.com/ambreshkalashtty44-crypto/karnataka-welfare-insights/blob/main/backend-flask/app.py): `backend-flask/app.py`

### Other components

- **Dashboard user**

## Connections

- Dashboard user → App layout: opens app
- App layout → Overview dashboard: routes to
- App layout → District map: routes to
- App layout → Scheme comparison: routes to
- App layout → Association rules: routes to
- App layout → District clusters: routes to
- App layout → Coverage report: routes to
- App layout → Data store: preloads
- Overview dashboard → Data store: reads data
- District map → Data store: reads data
- Scheme comparison → Data store: reads data
- Association rules → Data store: reads rules
- District clusters → Data store: reads clusters
- Coverage report → Data store: reads data
- Coverage report → PDF export: exports PDF
- Data store → Server functions: requests data
- Server functions → Dataset and analysis: dispatches analysis
- Dataset and analysis → District and scheme metadata: reads metadata
- Server functions → Data store: returns results
- Dashboard user → Flask API: optional API client
