系統架構
模組依賴關係、技術平台需求、部署設計與版本規範
模組依賴關係圖
graph TD
subgraph L1["第一層:核心交易層"]
D["模組 D
CRM"]
B["模組 B
報名與候補"]
A["模組 A
課程與開班"]
C["模組 C
財務管理"]
end
subgraph L2["第二層:支援營運層"]
G["模組 G
資源管理"]
E["模組 E
教務管理"]
F["模組 F
通知管理"]
H["模組 H
業務與經銷商"]
J["模組 J
系統管理"]
end
subgraph L3["第三層:對外介面層"]
I["模組 I
學員自助入口"]
K["模組 K
外部整合"]
end
B --> D
B --> A
B --> C
A --> G
E --> A
E --> B
H --> D
H --> A
H --> B
I --> A
I --> B
I --> E
I --> C
K --> A
K --> G
K --> J
A --> F
B --> F
C --> F
E --> F
G --> F
H --> F
style D fill:#DBEAFE,stroke:#2563EB
style B fill:#DBEAFE,stroke:#2563EB
style A fill:#DBEAFE,stroke:#2563EB
style C fill:#DBEAFE,stroke:#2563EB
style G fill:#DCFCE7,stroke:#16A34A
style E fill:#DCFCE7,stroke:#16A34A
style F fill:#DCFCE7,stroke:#16A34A
style H fill:#DCFCE7,stroke:#16A34A
style J fill:#DCFCE7,stroke:#16A34A
style I fill:#FFF7ED,stroke:#EA580C
style K fill:#FFF7ED,stroke:#EA580C
技術平台需求摘要
| 項目 | 規格 | 說明 |
|---|---|---|
| 設計原則 | 平台無關(Platform-Agnostic) | 不綁定特定框架,技術選型由設計文件決定 |
| 容器化 | Docker / OCI 標準 | 每個模組獨立容器,Docker Compose 或 K8s 編排 |
| 資料庫 | PostgreSQL 17+(建議) | 關聯式資料庫,支援連線池、每日備份、獨立 Schema Migration |
| 水平擴展 | 支援多實例 | 透過外部資料庫與快取共享狀態 |
| 健康檢查 | Health Check Endpoint | 所有容器定義健康檢查,支援自動重啟與負載均衡 |
| 日誌 | stdout / stderr | 統一日誌收集 |
| 部署策略 | Rolling Update | 零停機部署 |
| 語言 | 繁體中文(zh_TW)優先 | 英文(en_US)為第二語言,原始碼以英文撰寫 |
| 日期格式 | YYYY/MM/DD 或 YYYY-MM-DD | 台灣慣用格式,貨幣預設 TWD / NT$ |
Docker 隔離部署設計
| 項目 | 規範 |
|---|---|
| Docker 網路 | 獨立網路 tms-native_default,不加入現有網路 |
| 容器命名 | tms-native- 前綴(如 tms-native-db、tms-native-app) |
| Port 映射 | DB: 5434、App: 8081(避開現有 5432/5433/80/443/8080) |
| Volume 命名 | tms-native-db-data、tms-native-cache-data 等獨立命名空間 |
| 對外服務 | 透過 shared-proxy 網路,以 subdomain 方式路由 |
| 網路隔離 | Docker Compose 中 external: false 確保獨立網路 |
版本號規範(CalVer)
系統採用 CalVer(Calendar Versioning) 格式:YY.MM.XX
| 片段 | 說明 | 範例 |
|---|---|---|
YY |
西元年後兩碼 | 26(2026 年) |
MM |
月份(兩碼) | 05(5 月) |
XX |
該月 Build/Release 次數(從 01 遞增) | 03(第 3 次發布) |
範例:
26.05.01 = 2026 年 5 月第 1 次發布 ·
26.05.03 = 2026 年 5 月第 3 次發布 ·
26.12.15 = 2026 年 12 月第 15 次發布
原始碼目錄結構
native/
├── proto/ # Prototype 環境(proto.tms.apps.ain.training)
│ ├── docker-compose.yml
│ ├── .env.example
│ ├── .env
│ └── bootstrap.sh
├── stage/ # Staging 環境(staging.tms.apps.ain.training)(未來)
├── production/ # Production 環境(tms.apps.ain.training)(未來)
├── api/ # 後端 API 服務原始碼
├── web/ # 前端 Admin UI 原始碼
├── portal/ # 學員自助入口前端(可獨立部署)
├── shared/ # 共用型別定義、常數、工具
└── docs/ # 開發文件、API 文件
環境與 URL 規劃
| 環境 | URL | 用途 | 程式碼目錄 |
|---|---|---|---|
| Prototype | https://proto.tms.apps.ain.training/ |
內部開發驗證(目前階段) | native/proto/ |
| Staging | https://staging.tms.apps.ain.training/ |
內部測試 / UAT | native/stage/ |
| Production | https://tms.apps.ain.training/ |
正式上線 | native/production/ |