Architecture Overview¶
graph TB
subgraph Clients
WEB[Web Browser]
AND[Android App]
IOS[iOS App]
EXT[External Systems]
end
subgraph Nginx[Nginx Reverse Proxy]
RP[Reverse Proxy]
end
subgraph Server[Rust / Actix-Web Server]
FE[Frontend - Askama Templates + SWC JS]
API[Internal API - /api/v1/]
OPEN[Open API - /open/v1/]
AUTH[JWT Auth - Access + Refresh Tokens]
subgraph Clean Architecture
PRES[Presentation Layer]
APP[Application Layer]
DOM[Domain Layer]
INFRA[Infrastructure Layer]
end
end
subgraph Data
PG[(PostgreSQL)]
end
WEB --> RP
AND --> RP
IOS --> RP
EXT --> RP
RP --> FE
RP --> API
RP --> OPEN
FE --> PRES
API --> PRES
OPEN --> PRES
PRES --> APP
APP --> DOM
INFRA --> DOM
INFRA --> APP
INFRA --> PG
Modules¶
The platform is split into three core business domains:
graph LR
subgraph ERP[ERP Module]
INV[Inventory]
PROC[Procurement]
ACCT[Accounting]
INVC[Invoicing]
end
subgraph HRIS[HRIS Module]
EMP[Employee Records]
PAY[Payroll]
LV[Leave Management]
REC[Recruitment]
end
subgraph CRM[CRM Module]
LEAD[Leads]
CONT[Contacts]
PIPE[Pipelines]
COMM[Communications]
end
ERP --- HRIS
HRIS --- CRM
CRM --- ERP
Each module follows the same clean architecture layers within the Rust server.