# dashinnnn/dieta-matahari architecture

> Architecture diagram of the GitHub repository dashinnnn/dieta-matahari, 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/dashinnnn/dieta-matahari
- Repository: https://github.com/dashinnnn/dieta-matahari

## Overview

DIETA MATAHARI is a municipal household and community-data application. Its visible workflow is staff using the React app to inspect and manage household records, resident members, political profiles, welfare enrollments, and vulnerability assessments; the backend exposes corresponding API feature routes. The sampled code confirms the household route-to-controller-to-service flow and political-profile frontend fetches, but not most feature implementations or their persistence wiring. Dashboard and mapping are documented as user-facing areas; their detailed data flows are not established by the excerpts.

Main entry points: [`backend/src/routes/index.routes.ts`](https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/routes/index.routes.ts) (API route mount), [`frontend/src/App.tsx`](https://github.com/dashinnnn/dieta-matahari/blob/main/frontend/src/App.tsx) (React app), [`backend/src/routes/household.routes.ts`](https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/routes/household.routes.ts) (Household routes), [`backend/src/routes/superadmin.routes.ts`](https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/routes/superadmin.routes.ts) (Superadmin routes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Staff application"]
  node_app["React app<br/>[App.tsx]"]
  node_dashboard["Dashboard<br/>[Dashboard.tsx]"]
  node_repository_page["Data repository<br/>[DataRepository.tsx]"]
  node_mapping["Political mapping"]
  node_household_hook["Household loader<br/>[useHouseholds.ts]"]
  node_household_client["Household API client"]
  node_political_client["Political profile client"]
  node_welfare_client["Welfare API client"]
  node_vulnerability_client["Vulnerability API client"]
end

subgraph group_api["Backend API"]
  node_server["HTTP server<br/>[server.ts]"]
  node_route_index["API route mount<br/>[index.routes.ts]"]
  node_household_routes["Household routes"]
  node_political_routes["Political profile routes"]
  node_welfare_routes["Welfare routes"]
  node_resident_routes["Resident routes<br/>[resident.routes.ts]"]
  node_workspace_routes["Workspace routes"]
  node_backend_api["Backend API"]
end

subgraph group_domain["Household data domains"]
  node_household_controller["Household handlers"]
  node_household_service["Household operations"]
  node_political_service["Political profile API"]
end

subgraph group_identity["Access and administration"]
  node_auth_routes["Authentication routes<br/>[auth.routes.ts]"]
  node_auth_service["Login service<br/>[auth.service.ts]"]
  node_superadmin_routes["Superadmin routes"]
  node_superadmin_controller["Account administration"]
end

subgraph group_persistence["Data access"]
  node_auth_repository["User lookup<br/>[auth.repository.ts]"]
  node_database[("PostgreSQL")]
end

node_staff(("Staff user"))

node_staff -->|"uses"| node_app
node_app -->|"renders"| node_dashboard
node_app -->|"renders"| node_repository_page
node_app -->|"renders"| node_mapping
node_repository_page -->|"loads households"| node_household_hook
node_household_hook -->|"fetches"| node_household_client
node_political_client -->|"requests profiles"| node_backend_api
node_household_client -->|"requests households"| node_backend_api
node_welfare_client -->|"requests welfare"| node_backend_api
node_vulnerability_client -->|"requests assessments"| node_backend_api
node_server -->|"mounts"| node_route_index
node_route_index -->|"mounts"| node_household_routes
node_route_index -->|"mounts"| node_political_routes
node_route_index -->|"mounts"| node_welfare_routes
node_route_index -->|"mounts"| node_resident_routes
node_route_index -->|"mounts"| node_workspace_routes
node_route_index -->|"mounts"| node_auth_routes
node_route_index -->|"mounts"| node_superadmin_routes
node_household_routes -->|"dispatches"| node_household_controller
node_household_controller -->|"calls"| node_household_service
node_backend_api -->|"serves"| node_household_routes
node_backend_api -->|"serves"| node_political_routes
node_backend_api -->|"serves"| node_welfare_routes
node_backend_api -->|"serves"| node_resident_routes
node_backend_api -->|"serves"| node_workspace_routes
node_backend_api -->|"serves"| node_auth_routes
node_backend_api -->|"serves"| node_superadmin_routes
node_auth_service -->|"looks up user"| node_auth_repository
node_auth_repository -->|"queries"| node_database
node_superadmin_routes -->|"dispatches"| node_superadmin_controller

click node_app "https://github.com/dashinnnn/dieta-matahari/blob/main/frontend/src/App.tsx"
click node_dashboard "https://github.com/dashinnnn/dieta-matahari/blob/main/frontend/src/pages/Dashboard.tsx"
click node_repository_page "https://github.com/dashinnnn/dieta-matahari/blob/main/frontend/src/pages/DataRepository.tsx"
click node_mapping "https://github.com/dashinnnn/dieta-matahari/blob/main/frontend/src/pages/PoliticalMapping.tsx"
click node_household_hook "https://github.com/dashinnnn/dieta-matahari/blob/main/frontend/src/hooks/useHouseholds.ts"
click node_household_client "https://github.com/dashinnnn/dieta-matahari/blob/main/frontend/src/services/householdService.ts"
click node_political_client "https://github.com/dashinnnn/dieta-matahari/blob/main/frontend/src/services/politicalProfileService.ts"
click node_welfare_client "https://github.com/dashinnnn/dieta-matahari/blob/main/frontend/src/services/socialWelfareService.ts"
click node_vulnerability_client "https://github.com/dashinnnn/dieta-matahari/blob/main/frontend/src/services/householdVulnerabilityService.ts"
click node_server "https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/server.ts"
click node_route_index "https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/routes/index.routes.ts"
click node_household_routes "https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/routes/household.routes.ts"
click node_household_controller "https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/controllers/household.controller.ts"
click node_household_service "https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/services/household.service.ts"
click node_political_routes "https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/routes/politicalProfile.routes.ts"
click node_welfare_routes "https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/routes/socialWelfare.routes.ts"
click node_resident_routes "https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/routes/resident.routes.ts"
click node_workspace_routes "https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/routes/workspace.routes.ts"
click node_auth_routes "https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/routes/auth.routes.ts"
click node_auth_service "https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/services/auth.service.ts"
click node_auth_repository "https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/repository/auth.repository.ts"
click node_superadmin_routes "https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/routes/superadmin.routes.ts"
click node_superadmin_controller "https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/controllers/superadmin.controller.ts"

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_app,node_dashboard,node_repository_page,node_mapping,node_household_hook,node_household_client,node_political_client,node_welfare_client,node_vulnerability_client,node_staff toneBlue
class node_server,node_route_index,node_household_routes,node_political_routes,node_welfare_routes,node_resident_routes,node_workspace_routes,node_backend_api toneAmber
class node_household_controller,node_household_service,node_political_service toneMint
class node_auth_routes,node_auth_service,node_superadmin_routes,node_superadmin_controller toneRose
class node_auth_repository,node_database toneIndigo
```

## Components

### Staff application

- [React app](https://github.com/dashinnnn/dieta-matahari/blob/main/frontend/src/App.tsx): `frontend/src/App.tsx`
- [Dashboard](https://github.com/dashinnnn/dieta-matahari/blob/main/frontend/src/pages/Dashboard.tsx): `frontend/src/pages/Dashboard.tsx`
- [Data repository](https://github.com/dashinnnn/dieta-matahari/blob/main/frontend/src/pages/DataRepository.tsx): `frontend/src/pages/DataRepository.tsx`
- [Political mapping](https://github.com/dashinnnn/dieta-matahari/blob/main/frontend/src/pages/PoliticalMapping.tsx): `frontend/src/pages/PoliticalMapping.tsx`
- [Household loader](https://github.com/dashinnnn/dieta-matahari/blob/main/frontend/src/hooks/useHouseholds.ts): `frontend/src/hooks/useHouseholds.ts`
- [Household API client](https://github.com/dashinnnn/dieta-matahari/blob/main/frontend/src/services/householdService.ts): `frontend/src/services/householdService.ts`
- [Political profile client](https://github.com/dashinnnn/dieta-matahari/blob/main/frontend/src/services/politicalProfileService.ts): `frontend/src/services/politicalProfileService.ts`
- [Welfare API client](https://github.com/dashinnnn/dieta-matahari/blob/main/frontend/src/services/socialWelfareService.ts): `frontend/src/services/socialWelfareService.ts`
- [Vulnerability API client](https://github.com/dashinnnn/dieta-matahari/blob/main/frontend/src/services/householdVulnerabilityService.ts): `frontend/src/services/householdVulnerabilityService.ts`

### Backend API

- [HTTP server](https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/server.ts): `backend/src/server.ts`
- [API route mount](https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/routes/index.routes.ts): `backend/src/routes/index.routes.ts`
- [Household routes](https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/routes/household.routes.ts): `backend/src/routes/household.routes.ts`
- [Political profile routes](https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/routes/politicalProfile.routes.ts): `backend/src/routes/politicalProfile.routes.ts`
- [Welfare routes](https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/routes/socialWelfare.routes.ts): `backend/src/routes/socialWelfare.routes.ts`
- [Resident routes](https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/routes/resident.routes.ts): `backend/src/routes/resident.routes.ts`
- [Workspace routes](https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/routes/workspace.routes.ts): `backend/src/routes/workspace.routes.ts`
- **Backend API**

### Household data domains

- [Household handlers](https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/controllers/household.controller.ts): `backend/src/controllers/household.controller.ts`
- [Household operations](https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/services/household.service.ts): `backend/src/services/household.service.ts`
- **Political profile API**

### Access and administration

- [Authentication routes](https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/routes/auth.routes.ts): `backend/src/routes/auth.routes.ts`
- [Login service](https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/services/auth.service.ts): `backend/src/services/auth.service.ts`
- [Superadmin routes](https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/routes/superadmin.routes.ts): `backend/src/routes/superadmin.routes.ts`
- [Account administration](https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/controllers/superadmin.controller.ts): `backend/src/controllers/superadmin.controller.ts`

### Data access

- [User lookup](https://github.com/dashinnnn/dieta-matahari/blob/main/backend/src/repository/auth.repository.ts): `backend/src/repository/auth.repository.ts`
- **PostgreSQL**

### Other components

- **Staff user**

## Connections

- Staff user → React app: uses
- React app → Dashboard: renders
- React app → Data repository: renders
- React app → Political mapping: renders
- Data repository → Household loader: loads households
- Household loader → Household API client: fetches
- Political profile client → Backend API: requests profiles
- Household API client → Backend API: requests households
- Welfare API client → Backend API: requests welfare
- Vulnerability API client → Backend API: requests assessments
- HTTP server → API route mount: mounts
- API route mount → Household routes: mounts
- API route mount → Political profile routes: mounts
- API route mount → Welfare routes: mounts
- API route mount → Resident routes: mounts
- API route mount → Workspace routes: mounts
- API route mount → Authentication routes: mounts
- API route mount → Superadmin routes: mounts
- Household routes → Household handlers: dispatches
- Household handlers → Household operations: calls
- Backend API → Household routes: serves
- Backend API → Political profile routes: serves
- Backend API → Welfare routes: serves
- Backend API → Resident routes: serves
- Backend API → Workspace routes: serves
- Backend API → Authentication routes: serves
- Backend API → Superadmin routes: serves
- Login service → User lookup: looks up user
- User lookup → PostgreSQL: queries
- Superadmin routes → Account administration: dispatches
