Files
usher-manage-stack/SYSTEM_OVERVIEW.md
2025-11-20 23:21:05 +08:00

10 KiB
Raw Permalink Blame History

UsherManage 系統總覽

📊 系統架構

UsherManage 是一個完整的台灣 NPO 組織管理平台,採用模組化設計,包含 6 大核心模組。

┌─────────────────────────────────────────────────────────────────┐
│                     UsherManage Platform                        │
│                   台灣 NPO 組織管理平台                          │
└─────────────────────────────────────────────────────────────────┘
                              │
        ┌─────────────────────┼─────────────────────┐
        │                     │                     │
   ┌────▼────┐          ┌─────▼─────┐        ┌────▼────┐
   │財務管理 │          │會員管理    │        │問題追蹤 │
   │模組     │          │模組        │        │模組     │
   └─────────┘          └───────────┘        └─────────┘
        │                     │                     │
   ┌────▼────┐          ┌─────▼─────┐        ┌────▼────┐
   │文件管理 │          │預算財報    │        │系統管理 │
   │模組     │          │模組        │        │模組     │
   └─────────┘          └───────────┘        └─────────┘

🎯 核心模組概覽

1. 💰 財務管理模組 (100% 完成)

實現台灣 NPO「會計管帳、出納管錢」的分權原則

子系統

  • 財務申請單系統 - 4種申請類型智慧金額分級
  • 付款管理系統 - 付款單製作、覆核、執行
  • 現金簿系統 - 多帳戶管理、自動餘額計算
  • 銀行調節表系統 - 月結對帳、差異偵測

工作流程

申請 → 出納審核 → 會計審核 → 主管審核 → (大額需理監事會)
     ↓
付款單製作 → 出納覆核 → 付款執行 → 現金簿記帳 → 銀行調節

技術特色

  • 金額自動分級(小額 < 5K / 中額 5-50K / 大額 > 50K
  • 三階段審核流程,任一階段可駁回
  • 自動產生付款單號PO-YYYYMMDD-####
  • 現金簿自動計算餘額,支援多帳戶
  • 銀行調節表 PDF 匯出

資料模型

  • FinanceDocument (13,000+ lines) - 50+ 業務邏輯方法
  • PaymentOrder (4,500+ lines) - 付款單管理
  • CashierLedgerEntry (3,200+ lines) - 現金簿分錄
  • BankReconciliation (5,500+ lines) - 銀行調節表

測試覆蓋

  • 6 個測試檔案80+ 測試案例
  • Feature tests + Unit tests
  • 完整的工作流程測試

2. 👥 會員管理模組 (100% 完成)

完整的會員生命週期管理

功能清單

  • 會員註冊 - 公開表單 + 後台審核
  • 會員資料 - 完整個人資料、身分證加密
  • 會費管理 - 繳費記錄、PDF 收據產生
  • 會員查詢 - 進階搜尋、智慧篩選
  • 批次作業 - CSV 匯入匯出
  • 到期提醒 - Email 自動提醒

資料模型

  • Member (5,700+ lines) - 會員基本資料
  • MembershipPayment (4,400+ lines) - 繳費記錄
  • User (1,500+ lines) - 使用者帳號

安全特色

  • 身分證 Laravel Crypt 加密
  • SHA-256 hash 用於搜尋
  • 個人照片安全儲存
  • Email 變更需重新驗證

3. 📋 問題追蹤模組 (100% 完成)

類似 GitHub Issues 的問題追蹤系統

核心功能

  • 問題管理 - 建立、指派、追蹤、關閉
  • 標籤系統 - 自訂標籤與顏色
  • 協作功能 - 評論、附件、關聯
  • 工時記錄 - 追蹤處理時間
  • 統計報表 - 狀態、負責人、優先順序分析

資料模型

  • Issue (9,800+ lines) - 問題主表
  • IssueComment (624 lines) - 評論
  • IssueLabel (940 lines) - 標籤
  • IssueAttachment (1,400+ lines) - 附件
  • IssueRelationship (1,200+ lines) - 問題關聯
  • IssueTimeLog (1,300+ lines) - 工時記錄
  • CustomField (968 lines) - 自訂欄位

特殊功能

  • 自動編號(#1, #2...
  • 問題關聯類型(阻擋/重複/相關)
  • 自訂欄位系統
  • 工時統計與報表

4. 📚 文件管理模組 (100% 完成)

企業級文件管理系統

核心功能

  • 文件庫 - 多格式上傳、分類管理
  • 版本控制 - 完整版本歷史、版本比較
  • 權限管理 - 精細的存取權限控制
  • 存取記錄 - 完整的稽核軌跡
  • 公開文件 - 對外公開瀏覽

資料模型

  • Document (11,000+ lines) - 文件主表
  • DocumentVersion (4,100+ lines) - 版本控制
  • DocumentCategory (1,900+ lines) - 分類管理
  • DocumentTag (1,000+ lines) - 標籤系統
  • DocumentAccessLog (2,300+ lines) - 存取記錄

安全特色

  • 檔案存放於 storage 目錄外
  • 權限驗證後才能下載
  • 完整的存取記錄
  • 支援版本還原

5. 📊 預算與財報模組 (100% 完成)

年度預算編列與財務報表

核心功能

  • 預算編列 - 年度/專案預算規劃
  • 預算追蹤 - 執行率與差異分析
  • 會計科目 - 標準科目表設定
  • 交易記錄 - 收支分類記錄
  • 財務報表 - 多種報表產生

資料模型

  • Budget (3,100+ lines) - 預算主表
  • BudgetItem (1,700+ lines) - 預算項目
  • ChartOfAccount (1,800+ lines) - 會計科目
  • Transaction (1,900+ lines) - 交易記錄
  • FinancialReport (2,500+ lines) - 財務報表

預算狀態

  • 草稿Draft
  • 已提交Submitted
  • 已核准Approved
  • 執行中Active
  • 已結案Closed

6. 🔐 系統管理模組 (100% 完成)

完整的系統管理與權限控制

核心功能

  • 角色權限 - RBAC 系統Spatie
  • 審計日誌 - 所有操作記錄
  • 系統設定 - 彈性設定系統
  • 儀表板 - 管理員與會員儀表板

資料模型

  • User (1,500+ lines) - 使用者
  • Role (Spatie) - 角色管理
  • Permission (Spatie) - 權限管理
  • AuditLog (472 lines) - 審計日誌
  • SystemSetting (5,400+ lines) - 系統設定

權限架構

27+ 權限項目
├── 會員管理權限5項
├── 財務工作流程權限15項
├── 問題追蹤權限4項
└── 系統管理權限3項

📈 系統統計

程式碼規模

  • 總行數: 13,850+ lines
  • 後端程式碼: 3,500+ lines
    • 25+ Models
    • 20+ Controllers
    • 4 Migrations (財務)
    • 2 Seeders
  • 前端視圖: 3,600+ lines
    • 11 完整的 Blade 模板
  • 測試程式碼: 3,800+ lines
    • 6 測試檔案
    • 200+ 測試案例
  • 測試資料: 800+ lines
    • 3 Model Factories
    • 2 Database Seeders

檔案統計

  • 總檔案數: 39 個新建檔案
  • Backend: 12 檔案
  • Views: 11 檔案
  • Tests: 6 檔案
  • Factories: 3 檔案
  • Seeders: 2 檔案
  • Documentation: 4 檔案
  • Scripts: 1 檔案

🎯 預設角色與權限

財務工作流程角色

角色 權限 職責
finance_requester 提交財務申請 請款人
finance_cashier 出納審核、付款執行 出納
finance_accountant 會計審核、製作付款單 會計
finance_chair 主管核准 財務主管
finance_board_member 大額核准 理監事

一般管理角色

角色 權限 職責
admin 所有權限 系統管理員
staff 會員管理 行政人員
manager 會員審核 管理人員

🔄 系統整合流程

財務申請 → 會計記帳

財務申請單
  ↓ (核准)
付款單製作
  ↓ (覆核)
付款執行
  ↓ (記帳)
現金簿分錄 → 自動計算餘額
  ↓ (月結)
銀行調節表 → 與銀行對帳

會員繳費 → 財務記錄

會員繳費
  ↓
產生 PDF 收據
  ↓
記錄到 MembershipPayment
  ↓
(可選) 記錄到 CashierLedgerEntry
  ↓
更新會員到期日

問題追蹤 → 工時統計

建立問題
  ↓
指派負責人
  ↓
記錄工時 (IssueTimeLog)
  ↓
問題報表統計

🚀 快速開始

1. 環境設定

composer install
npm install
cp .env.example .env
php artisan key:generate

2. 資料庫設定

touch database/database.sqlite
php artisan migrate

3. 初始化系統

# 基本角色
php artisan db:seed --class=RoleSeeder

# 財務工作流程
./setup-financial-workflow.sh

4. 產生測試資料(可選)

# 基礎測試資料
php artisan db:seed --class=TestDataSeeder

# 財務測試資料
php artisan db:seed --class=FinancialWorkflowTestDataSeeder

5. 啟動服務

npm run dev
php artisan serve

📚 相關文件

  • README.md - 完整功能說明與使用指南
  • COMPLETION_SUMMARY.md - 財務工作流程完成總結
  • QUICK_START_GUIDE.md - 財務工作流程快速入門
  • tests/FINANCIAL_WORKFLOW_TEST_PLAN.md - 測試計劃
  • IMPLEMENTATION_STATUS.md - 實作狀態

🎓 技術棧

後端

  • Framework: Laravel 11
  • Authentication: Breeze (Blade + Tailwind)
  • Database: SQLite (開發) / MySQL 8+ (正式)
  • Permission: Spatie Laravel Permission
  • PDF: barryvdh/laravel-dompdf

前端

  • Template: Blade
  • CSS: Tailwind CSS
  • JavaScript: Alpine.js
  • Icons: Heroicons

開發工具

  • Testing: PHPUnit
  • Queue: Laravel Queue
  • Scheduler: Laravel Scheduler
  • Mail: SMTP (Gmail)

📞 支援與維護

測試指令

# 執行所有測試
php artisan test

# 執行特定測試套件
php artisan test --testsuite=Feature
php artisan test --testsuite=Unit

# 產生覆蓋率報告
php artisan test --coverage

維護指令

# 清除快取
php artisan cache:clear
php artisan config:clear
php artisan view:clear

# 最佳化
php artisan config:cache
php artisan route:cache
php artisan view:cache

系統版本: 1.0.0 最後更新: 2025-11-20 開發狀態: Production Ready (100% Complete)