一個功能完整的企業級 FaceMatch 承攬商管理系統,具備完整的 TypeScript 後端、OpenAPI 文檔、多層級簽核工作流程、AD 驗證整合等企業功能。
🚀 API 遷移專案完成! 所有 42 個 API 端點已成功從 JavaScript 遷移到 TypeScript,實現 100% 類型安全!
# 1. 安裝依賴
npm run setup
# 2. 建置專案
npm run build
# 3. 啟動服務 (推薦 PM2)
npm run start:pm2
# 查看服務狀態
pm2 status
# 同時啟動前後端開發模式
npm run dev:all
# 或分別啟動
npm run dev # 後端開發模式
npm run dev:frontend # 前端開發模式
# Rocky Linux/CentOS/RHEL 自動部署
./deploy-rocky.sh
# 手動 PM2 管理
npm run start:pm2 # 啟動服務
npm run stop:pm2 # 停止服務
npm run restart:pm2 # 重啟服務
npm run demo
→ http://localhost:8000💡 說明: 雲端版本為前端展示用途,完整功能需本地部署後端 API
admin
/ admin123
safety
/ safety123
manager
/ manager123
user001
/ user123
⚠️ 安全提醒: 生產環境請務必修改預設密碼!參考 SECURITY.md
技術棧:
├── TypeScript 5.8+ # 類型安全
├── Express.js 4.21+ # Web 框架
├── OpenAPI 3.0 # API 規範
├── Swagger UI # API 文檔
├── SQLite + Sequelize # 資料庫
├── bcrypt # 密碼加密
├── LDAP 整合 # AD 驗證
├── Winston # 日誌管理
└── PM2 # 進程管理
技術棧:
├── 響應式 HTML/CSS/JS # 輕量化前端
├── 智能 API 路由 # 自動後端檢測
├── 模組化設計 # 易於維護
├── React 版本 (client/) # 現代化備選
└── 深色模式支援 # 使用者體驗
核心特性:
├── 多層級簽核工作流程 # 業務流程自動化
├── 角色基礎存取控制 # RBAC 權限系統
├── Active Directory 整合 # 企業帳號統一
├── 完整操作日誌追蹤 # 稽核與合規
├── 資料完整性保護 # 商業邏輯驗證
└── API 文檔與測試 # 開發者友善
FaceMatch/
├── 🚀 主要服務
│ ├── ecosystem.config.js # PM2 生產環境配置
│ ├── package.json # 專案依賴與腳本
│ └── deploy-rocky.sh # 自動部署腳本
├── 📂 TypeScript 後端 (src/)
│ ├── app.ts # 主應用程式入口
│ ├── routes/ # API 路由層
│ │ ├── api.ts # 主路由配置
│ │ ├── auth.ts # 認證管理
│ │ ├── contractors.ts # 承攬商管理
│ │ ├── work-orders.ts # 施工單管理
│ │ ├── approvals.ts # 簽核管理
│ │ ├── qualifications.ts # 年度資格管理
│ │ ├── facematch.ts # 人臉辨識管理 ⭐ NEW
│ │ ├── users.ts # 使用者管理
│ │ ├── config.ts # 系統配置
│ │ └── logs.ts # 日誌管理
│ ├── models/ # 資料模型
│ ├── middleware/ # 中間件
│ ├── types/ # TypeScript 類型
│ ├── utils/ # 工具函數
│ ├── config/ # 配置檔案
│ └── docs/ # OpenAPI 規範
│ └── openapi.yml # API 文檔定義
├── 📂 前端
│ ├── static/index.html # 主要前端應用
│ └── client/ # React 版本 (開發中)
├── 📂 編譯輸出
│ └── dist/ # TypeScript 編譯結果
├── 📂 文檔
│ ├── README.md # 主要說明文件
│ ├── API-MIGRATION-STATUS.md # API 遷移狀態 ⭐
│ ├── SECURITY.md # 安全配置指南
│ └── DEPLOY.md # 部署指南
└── 📂 資料與日誌
├── facematch.sqlite # SQLite 資料庫
└── logs/ # 系統日誌
POST /api/login # 使用者登入 (AD/本地)
POST /api/logout # 使用者登出
GET /api/verify-session # 會話驗證
GET /api/contractors # 取得承攬商列表
POST /api/contractors # 建立承攬商
GET /api/contractors/:id # 取得單一承攬商
PUT /api/contractors/:id # 更新承攬商
DELETE /api/contractors/:id # 刪除承攬商
# 施工單基本操作
GET /api/work-orders # 取得施工單列表
POST /api/work-orders # 建立施工單
GET /api/work-orders/:id # 取得單一施工單
PUT /api/work-orders/:id # 更新施工單
DELETE /api/work-orders/:id # 刪除施工單
# 簽核流程
GET /api/work-orders/pending-approval # 待簽核清單
POST /api/work-orders/:id/approve # 快速簽核
GET /api/work-orders/:id/history # 簽核歷史
# 進階簽核操作
POST /api/approvals/:id/submit # 提交申請
POST /api/approvals/:id/ehs # 職環安簽核
POST /api/approvals/:id/manager # 經理簽核
POST /api/approvals/:id/admin-reject # 管理員駁回
POST /api/approvals/:id/resubmit # 重新提交
GET /api/approvals/:id/history # 詳細簽核歷史
GET /api/approvals/pending # 個人待簽核清單
GET /api/qualifications # 取得資格列表
POST /api/qualifications # 建立資格
GET /api/qualifications/:id # 取得單一資格
PUT /api/qualifications/:id # 更新資格
DELETE /api/qualifications/:id # 刪除資格
POST /api/qualifications/:id/quick-renew # 快速續約 ⚡
POST /api/qualifications/:id/quick-suspend # 快速停用 ⚡
POST /api/qualifications/:id/reactivate # 重新啟用 ⚡
GET /api/facematch # 取得辨識記錄列表
POST /api/facematch # 建立辨識記錄
GET /api/facematch/:id # 取得單一記錄
PUT /api/facematch/:id # 更新記錄
DELETE /api/facematch/:id # 刪除記錄
POST /api/facematch/verify # 人臉驗證 🔍
POST /api/facematch/sync # 數據同步 🔄
GET /api/users # 取得使用者列表
POST /api/users # 建立使用者
GET /api/users/:id # 取得單一使用者
PUT /api/users/:id # 更新使用者
DELETE /api/users/:id # 刪除使用者
POST /api/users/:id/reset-password # 重設密碼
POST /api/users/:id/toggle-status # 切換狀態
POST /api/users/sync-ad # AD 同步
GET /api/ad-config # AD 配置狀態
GET /api/approvers # 簽核者清單
GET /api/logs/stats # 日誌統計
DELETE /api/logs/cleanup # 日誌清理
總計: 42 個 API 端點 - 100% TypeScript 實現 ✅
🎯 核心指標:
├── API 端點總數: 42 個
├── TypeScript 覆蓋率: 100%
├── 功能模組數: 8 個主要模組
├── 簽核層級: 2 層企業流程
├── 使用者角色: 4 種權限等級
├── 認證方式: 2 種 (AD + 本地)
└── 資料庫: SQLite (輕量企業級)
🚀 技術成就:
├── ✅ 完整 API 遷移 (JS → TS)
├── ✅ OpenAPI 3.0 文檔化
├── ✅ 智能前端路由系統
├── ✅ 企業級安全實作
├── ✅ 多層級簽核工作流程
├── ✅ 完整稽核日誌系統
└── ✅ 生產環境自動部署
npm run dev # 後端開發模式 (nodemon)
npm run dev:frontend # 前端開發模式
npm run dev:all # 同時啟動前後端
npm run build # 建置整個專案
npm run lint # ESLint 代碼檢查
npm run format # Prettier 代碼格式化
npm run clean # 清理建置檔案與日誌
# API 測試 (透過 Swagger UI)
curl http://localhost:5001/api-docs
# 健康檢查
curl http://localhost:5001/health
# 功能驗證
curl http://localhost:5001/api/contractors
# 1. 克隆專案
git clone <repository-url>
cd FaceMatch
# 2. 安裝與建置
npm run setup
# 3. 啟動服務
npm run start:pm2
# 4. 打開瀏覽器
open http://localhost:3000
/api-docs
這是一個功能完整的企業級管理系統,具備:
✅ 100% TypeScript 後端 - 完整類型安全
✅ 企業級簽核工作流程 - 多層級業務流程自動化
✅ Active Directory 整合 - 企業帳號統一管理
✅ OpenAPI 3.0 標準 - 完整 API 文檔與測試
✅ 生產環境就緒 - PM2 + 自動部署腳本
適用場景: 承攬商管理、施工安全簽核、年度資格追蹤、企業使用者管理、人臉辨識整合
立即體驗: npm run setup && npm run start:pm2
🚀