# 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. 環境設定 ```bash composer install npm install cp .env.example .env php artisan key:generate ``` ### 2. 資料庫設定 ```bash touch database/database.sqlite php artisan migrate ``` ### 3. 初始化系統 ```bash # 基本角色 php artisan db:seed --class=RoleSeeder # 財務工作流程 ./setup-financial-workflow.sh ``` ### 4. 產生測試資料(可選) ```bash # 基礎測試資料 php artisan db:seed --class=TestDataSeeder # 財務測試資料 php artisan db:seed --class=FinancialWorkflowTestDataSeeder ``` ### 5. 啟動服務 ```bash 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) --- ## 📞 支援與維護 ### 測試指令 ```bash # 執行所有測試 php artisan test # 執行特定測試套件 php artisan test --testsuite=Feature php artisan test --testsuite=Unit # 產生覆蓋率報告 php artisan test --coverage ``` ### 維護指令 ```bash # 清除快取 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)