工程文件
工程企劃書
本工程企劃書定義正式後端系統的模組分層、技術選型、資料流、測試策略與階段導入順序。
技術決策
| 項目 | C# .NET 5.0 |
|---|---|
| 測試框架 | xUnit |
| 第一階段 Host | Web API + Console Worker,或先以 ConsoleHost 驗證排程與通知流程。 |
| 文件網站 | 靜態 HTML,可部署至 GitHub Pages 或 Cloudflare Pages。 |
| 登入權限 | 最後階段導入 Microsoft 365 / Outlook / Entra ID。 |
建議 Solution 結構
HS.ProjectFlow.sln
src/
HS.ProjectFlow.Core/
HS.ProjectFlow.Workflow/
HS.ProjectFlow.Importing/
HS.ProjectFlow.Adapters/
HS.ProjectFlow.Notification/
HS.ProjectFlow.Reporting/
HS.ProjectFlow.Api/
HS.ProjectFlow.Worker/
tests/
HS.ProjectFlow.Core.Tests/
HS.ProjectFlow.Workflow.Tests/
HS.ProjectFlow.Notification.Tests/
HS.ProjectFlow.Integration.Tests/
模組職責
| 模組 | 職責 |
|---|---|
| Core | 專案、節點、品項、狀態、部門、日期、通知事件等核心模型。 |
| Workflow | 節點轉移、狀態機、流程檢查、逾期判斷。 |
| Importing | 報價單、採購單、BOM、Excel 報表匯入與欄位標準化。 |
| Adapters | Google Sheet、Outlook / SMTP、檔案儲存、Excel 匯出。 |
| Notification | 提醒規則、通知合併、寄送結果、通知紀錄。 |
| Reporting | 查詢、彙總、日報表與 Excel 匯出。 |
| Api | 前端與外部系統使用的 HTTP API。 |
| Worker | 每日排程檢查、通知寄送、背景同步。 |
開發階段
- 整理現有 Python / Streamlit 原型的資料欄位與行為規格。
- 建立 C# .NET 5.0 Solution 與 Core Model。
- 建立 Workflow Engine 與節點狀態轉移測試。
- 建立 Import Adapter,先支援現有報價單 / 採購單 JSON。
- 建立 Google Sheet Adapter 與專案比對服務。
- 建立 Notification Rule Engine 與 dry run 通知紀錄。
- 建立 Web API 與背景 Worker。
- 補上權限欄位與審計紀錄,最後階段導入 Microsoft 登入。
測試計畫
- Core Model 單元測試。
- Workflow 狀態轉移測試。
- 報價單匯入與欄位映射測試。
- 專案比對測試。
- 通知規則與通知合併測試。
- Excel 匯出格式測試。
- 背景排程 dry run 測試。