系統架構

模組依賴關係、技術平台需求、部署設計與版本規範

模組依賴關係圖

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-datatms-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/