工程文件

工程企劃書

本工程企劃書定義正式後端系統的模組分層、技術選型、資料流、測試策略與階段導入順序。

技術決策

項目C# .NET 5.0
測試框架xUnit
第一階段 HostWeb 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 報表匯入與欄位標準化。
AdaptersGoogle Sheet、Outlook / SMTP、檔案儲存、Excel 匯出。
Notification提醒規則、通知合併、寄送結果、通知紀錄。
Reporting查詢、彙總、日報表與 Excel 匯出。
Api前端與外部系統使用的 HTTP API。
Worker每日排程檢查、通知寄送、背景同步。

開發階段

  1. 整理現有 Python / Streamlit 原型的資料欄位與行為規格。
  2. 建立 C# .NET 5.0 Solution 與 Core Model。
  3. 建立 Workflow Engine 與節點狀態轉移測試。
  4. 建立 Import Adapter,先支援現有報價單 / 採購單 JSON。
  5. 建立 Google Sheet Adapter 與專案比對服務。
  6. 建立 Notification Rule Engine 與 dry run 通知紀錄。
  7. 建立 Web API 與背景 Worker。
  8. 補上權限欄位與審計紀錄,最後階段導入 Microsoft 登入。

測試計畫

  • Core Model 單元測試。
  • Workflow 狀態轉移測試。
  • 報價單匯入與欄位映射測試。
  • 專案比對測試。
  • 通知規則與通知合併測試。
  • Excel 匯出格式測試。
  • 背景排程 dry run 測試。