# tofanharits89/sintesanext_back architecture

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

- Interactive diagram: https://gitdiagram.com/tofanharits89/sintesanext_back
- Repository: https://github.com/tofanharits89/sintesanext_back

## Overview

SintesaNEx is an Express backend for Indonesian government finance monitoring and reporting. The main user workflow is an authenticated API request that reaches a domain endpoint and returns dashboard or finance data; separate paths support ad hoc SQL inquiry, saved queries, and operational collaboration. The tree and README establish the product capabilities, while sampled code confirms saved-query persistence and RAG request handling. Most finance-module internals were not sampled, so their specific data-source wiring is left unspecified.

Main entry points: [`src/server.ts`](https://github.com/tofanharits89/sintesanext_back/blob/main/src/server.ts) (HTTP server), [`src/modules/auth`](https://github.com/tofanharits89/sintesanext_back/tree/main/src/modules/auth) (Authentication), [`src/modules/saved-queries/routes/saved-query.routes.ts`](https://github.com/tofanharits89/sintesanext_back/blob/main/src/modules/saved-queries/routes/saved-query.routes.ts) (Saved-query routes), [`src/modules/saved-queries/controllers/saved-query.controller.ts`](https://github.com/tofanharits89/sintesanext_back/blob/main/src/modules/saved-queries/controllers/saved-query.controller.ts) (Saved-query API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["API and access"]
  node_server["HTTP server<br/>[server.ts]"]
  node_auth["Authentication"]
  node_savedroutes["Saved-query routes"]
  node_savedcontroller["Saved-query API"]
  node_ragroutes["RAG routes<br/>[rag.routes.ts]"]
end

subgraph group_finance["Finance data"]
  node_inquiry["Data inquiry"]
  node_queryguard["Query controls"]
  node_savedservice["Saved-query service"]
  node_dashboard["Finance dashboards"]
  node_transfer["Regional transfers"]
  node_monitoring["Finance monitoring"]
  node_reporting["Reports and analytics"]
end

subgraph group_collab["Collaboration"]
  node_ragcontroller["RAG controller<br/>[rag.controller.ts]"]
  node_ragservice["RAG client<br/>[rag.service.ts]"]
  node_messaging["Messaging and notifications"]
  node_nadine["Nadine tracking"]
end

subgraph group_platform["Runtime services"]
  node_savedmodel["Saved-query model<br/>[SavedQuery.ts]"]
  node_postgres[("PostgreSQL<br/>[sequelize.ts]")]
  node_cache["Cache and sessions"]
  node_whatsapp["WhatsApp service<br/>[whatsappService.ts]"]
end

node_client(("Frontend client"))
node_ragexternal{{"RAG service"}}

node_client -->|"HTTPS / WebSocket"| node_server
node_server -->|"routes requests"| node_auth
node_auth -->|"authorizes"| node_savedroutes
node_savedroutes -->|"dispatches"| node_savedcontroller
node_savedcontroller -->|"calls"| node_savedservice
node_savedservice -->|"reads / writes"| node_savedmodel
node_savedmodel -->|"persists"| node_postgres
node_server -->|"routes requests"| node_inquiry
node_inquiry -->|"validates queries"| node_queryguard
node_server -->|"serves finance APIs"| node_dashboard
node_server -->|"serves transfer APIs"| node_transfer
node_server -->|"serves monitoring APIs"| node_monitoring
node_server -->|"serves analytics APIs"| node_reporting
node_server -->|"routes requests"| node_ragroutes
node_ragroutes -->|"dispatches"| node_ragcontroller
node_ragcontroller -->|"calls"| node_ragservice
node_ragservice -->|"HTTP request"| node_ragexternal
node_server -->|"serves messaging APIs"| node_messaging
node_server -->|"serves tracking APIs"| node_nadine
node_server -->|"uses"| node_cache
node_messaging -.->|"optional integration"| node_whatsapp

click node_server "https://github.com/tofanharits89/sintesanext_back/blob/main/src/server.ts"
click node_auth "https://github.com/tofanharits89/sintesanext_back/tree/main/src/modules/auth"
click node_inquiry "https://github.com/tofanharits89/sintesanext_back/tree/main/src/modules/inquiry-data"
click node_queryguard "https://github.com/tofanharits89/sintesanext_back/tree/main/src/modules/inquiry-data/services"
click node_savedroutes "https://github.com/tofanharits89/sintesanext_back/blob/main/src/modules/saved-queries/routes/saved-query.routes.ts"
click node_savedcontroller "https://github.com/tofanharits89/sintesanext_back/blob/main/src/modules/saved-queries/controllers/saved-query.controller.ts"
click node_savedservice "https://github.com/tofanharits89/sintesanext_back/blob/main/src/modules/saved-queries/services/saved-query.service.ts"
click node_savedmodel "https://github.com/tofanharits89/sintesanext_back/blob/main/src/models/SavedQuery.ts"
click node_dashboard "https://github.com/tofanharits89/sintesanext_back/tree/main/src/modules/dashboard"
click node_transfer "https://github.com/tofanharits89/sintesanext_back/tree/main/src/modules/transfer-daerah"
click node_monitoring "https://github.com/tofanharits89/sintesanext_back/tree/main/src/modules/monev-kkp"
click node_reporting "https://github.com/tofanharits89/sintesanext_back/tree/main/src/modules/analytics"
click node_ragroutes "https://github.com/tofanharits89/sintesanext_back/blob/main/src/modules/rag/routes/rag.routes.ts"
click node_ragcontroller "https://github.com/tofanharits89/sintesanext_back/blob/main/src/modules/rag/controllers/rag.controller.ts"
click node_ragservice "https://github.com/tofanharits89/sintesanext_back/blob/main/src/modules/rag/services/rag.service.ts"
click node_messaging "https://github.com/tofanharits89/sintesanext_back/tree/main/src/modules/messaging"
click node_nadine "https://github.com/tofanharits89/sintesanext_back/tree/main/src/modules/track-nadine"
click node_postgres "https://github.com/tofanharits89/sintesanext_back/blob/main/src/config/sequelize.ts"
click node_cache "https://github.com/tofanharits89/sintesanext_back/tree/main/src/services/infrastructure/cache"
click node_whatsapp "https://github.com/tofanharits89/sintesanext_back/blob/main/src/services/business/external/whatsappService.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_server,node_auth,node_savedroutes,node_savedcontroller,node_ragroutes,node_client toneBlue
class node_inquiry,node_queryguard,node_savedservice,node_dashboard,node_transfer,node_monitoring,node_reporting toneAmber
class node_ragcontroller,node_ragservice,node_messaging,node_nadine toneMint
class node_savedmodel,node_postgres,node_cache,node_whatsapp toneRose
class node_ragexternal toneIndigo
```

## Components

### API and access

- [HTTP server](https://github.com/tofanharits89/sintesanext_back/blob/main/src/server.ts): `src/server.ts`
- [Authentication](https://github.com/tofanharits89/sintesanext_back/tree/main/src/modules/auth): `src/modules/auth`
- [Saved-query routes](https://github.com/tofanharits89/sintesanext_back/blob/main/src/modules/saved-queries/routes/saved-query.routes.ts): `src/modules/saved-queries/routes/saved-query.routes.ts`
- [Saved-query API](https://github.com/tofanharits89/sintesanext_back/blob/main/src/modules/saved-queries/controllers/saved-query.controller.ts): `src/modules/saved-queries/controllers/saved-query.controller.ts`
- [RAG routes](https://github.com/tofanharits89/sintesanext_back/blob/main/src/modules/rag/routes/rag.routes.ts): `src/modules/rag/routes/rag.routes.ts`

### Finance data

- [Data inquiry](https://github.com/tofanharits89/sintesanext_back/tree/main/src/modules/inquiry-data): `src/modules/inquiry-data`
- [Query controls](https://github.com/tofanharits89/sintesanext_back/tree/main/src/modules/inquiry-data/services): `src/modules/inquiry-data/services`
- [Saved-query service](https://github.com/tofanharits89/sintesanext_back/blob/main/src/modules/saved-queries/services/saved-query.service.ts): `src/modules/saved-queries/services/saved-query.service.ts`
- [Finance dashboards](https://github.com/tofanharits89/sintesanext_back/tree/main/src/modules/dashboard): `src/modules/dashboard`
- [Regional transfers](https://github.com/tofanharits89/sintesanext_back/tree/main/src/modules/transfer-daerah): `src/modules/transfer-daerah`
- [Finance monitoring](https://github.com/tofanharits89/sintesanext_back/tree/main/src/modules/monev-kkp): `src/modules/monev-kkp`
- [Reports and analytics](https://github.com/tofanharits89/sintesanext_back/tree/main/src/modules/analytics): `src/modules/analytics`

### Collaboration

- [RAG controller](https://github.com/tofanharits89/sintesanext_back/blob/main/src/modules/rag/controllers/rag.controller.ts): `src/modules/rag/controllers/rag.controller.ts`
- [RAG client](https://github.com/tofanharits89/sintesanext_back/blob/main/src/modules/rag/services/rag.service.ts): `src/modules/rag/services/rag.service.ts`
- [Messaging and notifications](https://github.com/tofanharits89/sintesanext_back/tree/main/src/modules/messaging): `src/modules/messaging`
- [Nadine tracking](https://github.com/tofanharits89/sintesanext_back/tree/main/src/modules/track-nadine): `src/modules/track-nadine`

### Runtime services

- [Saved-query model](https://github.com/tofanharits89/sintesanext_back/blob/main/src/models/SavedQuery.ts): `src/models/SavedQuery.ts`
- [PostgreSQL](https://github.com/tofanharits89/sintesanext_back/blob/main/src/config/sequelize.ts): `src/config/sequelize.ts`
- [Cache and sessions](https://github.com/tofanharits89/sintesanext_back/tree/main/src/services/infrastructure/cache): `src/services/infrastructure/cache`
- [WhatsApp service](https://github.com/tofanharits89/sintesanext_back/blob/main/src/services/business/external/whatsappService.ts): `src/services/business/external/whatsappService.ts`

### Other components

- **Frontend client**
- **RAG service**

## Connections

- Frontend client → HTTP server: HTTPS / WebSocket
- HTTP server → Authentication: routes requests
- Authentication → Saved-query routes: authorizes
- Saved-query routes → Saved-query API: dispatches
- Saved-query API → Saved-query service: calls
- Saved-query service → Saved-query model: reads / writes
- Saved-query model → PostgreSQL: persists
- HTTP server → Data inquiry: routes requests
- Data inquiry → Query controls: validates queries
- HTTP server → Finance dashboards: serves finance APIs
- HTTP server → Regional transfers: serves transfer APIs
- HTTP server → Finance monitoring: serves monitoring APIs
- HTTP server → Reports and analytics: serves analytics APIs
- HTTP server → RAG routes: routes requests
- RAG routes → RAG controller: dispatches
- RAG controller → RAG client: calls
- RAG client → RAG service: HTTP request
- HTTP server → Messaging and notifications: serves messaging APIs
- HTTP server → Nadine tracking: serves tracking APIs
- HTTP server → Cache and sessions: uses
- Messaging and notifications → WhatsApp service: optional integration
