2025-10-28 21:38:53 +08:00
2025-10-28 17:13:26 +08:00
2025-10-28 21:38:53 +08:00
2025-10-28 15:50:53 +08:00
2025-10-28 18:14:51 +08:00
2025-10-28 21:38:53 +08:00
2025-10-28 15:50:53 +08:00
2025-10-28 15:50:53 +08:00
2025-10-28 21:38:53 +08:00
2025-10-28 21:38:53 +08:00
2025-10-28 18:14:51 +08:00
2025-10-28 21:38:53 +08:00
2025-10-28 15:50:53 +08:00
2025-10-28 15:50:53 +08:00
2025-10-28 15:50:53 +08:00
2025-10-28 15:50:53 +08:00
2025-10-28 15:50:53 +08:00
2025-10-28 15:50:53 +08:00
2025-10-28 15:50:53 +08:00
2025-10-28 15:50:53 +08:00
2025-10-28 21:38:53 +08:00
2025-10-28 15:50:53 +08:00
2025-10-28 15:50:53 +08:00
2025-10-28 15:50:53 +08:00
2025-10-28 21:38:53 +08:00
2025-10-28 18:14:51 +08:00

夥伴對齊系統 (Partner Alignment System)

一個基於 Flask 的現代化夥伴對齊管理系統提供能力評估、STAR 回饋、排名系統和全面的用戶管理功能。

🌟 主要功能

🔐 認證與授權

  • JWT 認證: 安全的令牌基礎認證系統
  • 角色權限管理: 靈活的角色和權限控制
  • 用戶註冊/登入: 完整的用戶生命週期管理
  • 會話管理: 安全的會話和令牌刷新機制

📊 個人儀表板

  • 積分追蹤: 實時顯示總積分和月度積分
  • 排名顯示: 部門排名和總排名
  • 通知中心: 系統通知和成就提醒
  • 活動記錄: 個人活動和成就歷史

📝 能力評估系統

  • 拖拽式評估: 直觀的能力等級評估界面
  • 多維度評估: 支持多種能力項目的評估
  • 評估歷史: 完整的評估記錄和追蹤
  • 數據導出: Excel/CSV 格式的評估數據導出

STAR 回饋系統

  • 結構化回饋: 基於 STAR 方法的回饋收集
  • 積分獎勵: 自動積分計算和分配
  • 回饋追蹤: 完整的回饋歷史記錄
  • 績效分析: 基於回饋的績效分析

🏆 排名系統

  • 實時排名: 總排名和月度排名
  • 百分位計算: 精確的排名百分位顯示
  • 部門篩選: 按部門查看排名
  • 排名歷史: 排名變化和趨勢分析

👥 管理功能

  • 用戶管理: 完整的用戶 CRUD 操作
  • 角色管理: 角色創建、分配和權限管理
  • 審計日誌: 完整的系統操作記錄
  • 數據管理: 評估和回饋數據管理

🏗️ 技術架構

後端技術棧

  • Flask 2.3.3: Web 框架
  • SQLAlchemy: ORM 數據庫操作
  • MySQL 5.7+: 主數據庫
  • JWT: 認證令牌
  • Flask-Login: 會話管理
  • Flask-Bcrypt: 密碼加密
  • APScheduler: 定時任務

前端技術棧

  • HTML5: 語義化標記
  • Bootstrap 5: 響應式 UI 框架
  • JavaScript ES6+: 現代 JavaScript
  • Fetch API: 異步數據請求
  • CSS3: 現代樣式和動畫

開發工具

  • pytest: 測試框架
  • Docker: 容器化部署
  • GitHub Actions: CI/CD 流水線
  • Nginx: 反向代理和負載均衡

📁 項目結構

partner-alignment-system/
├── app.py                 # 主應用程式文件
├── config.py             # 配置文件
├── models.py             # 數據模型
├── auth.py               # 認證邏輯
├── auth_routes.py        # 認證路由
├── dashboard_routes.py   # 儀表板路由
├── admin_routes.py       # 管理路由
├── init_system.py        # 系統初始化
├── requirements.txt      # Python 依賴
├── pytest.ini           # 測試配置
├── conftest.py          # 測試配置
├── run_tests.py         # 測試運行器
├── Dockerfile           # Docker 配置
├── docker-compose.yml   # Docker Compose 配置
├── nginx.conf           # Nginx 配置
├── templates/           # HTML 模板
│   └── index.html       # 主頁面
├── static/              # 靜態文件
│   ├── css/
│   │   └── style.css    # 樣式文件
│   └── js/
│       └── app.js       # 前端邏輯
├── tests/               # 測試文件
│   ├── unit/            # 單元測試
│   ├── integration/     # 集成測試
│   ├── api/             # API 測試
│   └── e2e/             # 端到端測試
├── .github/             # GitHub 配置
│   └── workflows/
│       └── ci.yml       # CI/CD 流水線
├── SETUP.md             # 設置指南
├── DEPLOYMENT.md        # 部署指南
└── README.md            # 項目說明

🚀 快速開始

1. 環境要求

  • Python 3.8+
  • MySQL 5.7+
  • Node.js (可選,用於前端開發)

2. 安裝依賴

# 克隆項目
git clone <repository-url>
cd partner-alignment-system

# 創建虛擬環境
python -m venv venv
source venv/bin/activate  # Linux/Mac
# 或
venv\Scripts\activate     # Windows

# 安裝依賴
pip install -r requirements.txt

3. 配置環境

# 複製環境變量模板
cp .env.example .env

# 編輯環境變量
nano .env

4. 初始化數據庫

# 創建數據庫表
python init_db.py

# 初始化系統數據
python init_system.py

5. 運行應用程式

# 開發模式
python app.py

# 或使用 Flask 命令
flask run

# 生產模式
gunicorn -c gunicorn.conf.py app:app

6. 訪問系統

打開瀏覽器訪問 http://localhost:5000

默認管理員帳號:

  • 用戶名: admin
  • 密碼: admin123

🧪 測試

運行所有測試

python run_tests.py --type all

運行特定測試

# 單元測試
python run_tests.py --type unit

# API 測試
python run_tests.py --type api

# 認證測試
python run_tests.py --type auth

生成覆蓋率報告

python run_tests.py --coverage

🐳 Docker 部署

使用 Docker Compose

# 啟動所有服務
docker-compose up -d

# 查看日誌
docker-compose logs -f app

# 停止服務
docker-compose down

單獨使用 Docker

# 構建鏡像
docker build -t partner-alignment .

# 運行容器
docker run -d -p 5000:5000 partner-alignment

📊 數據庫設計

主要表結構

  • users: 用戶信息
  • roles: 角色定義
  • permissions: 權限定義
  • assessments: 能力評估
  • capabilities: 能力項目
  • star_feedbacks: STAR 回饋
  • employee_points: 員工積分
  • monthly_rankings: 月度排名
  • audit_logs: 審計日誌
  • notifications: 通知消息

關係設計

  • 用戶與角色:多對多關係
  • 角色與權限:多對多關係
  • 用戶與評估:一對多關係
  • 用戶與回饋:一對多關係(評估者和被評估者)

🔒 安全特性

認證安全

  • JWT 令牌認證
  • 密碼哈希加密
  • 會話超時管理
  • 令牌刷新機制

授權控制

  • 基於角色的訪問控制 (RBAC)
  • 細粒度權限管理
  • API 端點保護
  • 前端路由守衛

數據安全

  • SQL 注入防護
  • XSS 攻擊防護
  • CSRF 保護
  • 安全標頭配置

審計追蹤

  • 完整的操作日誌
  • 用戶行為追蹤
  • 系統事件記錄
  • 安全事件監控

📈 性能優化

數據庫優化

  • 索引優化
  • 查詢優化
  • 連接池配置
  • 緩存策略

應用程式優化

  • 異步處理
  • 緩存機制
  • 靜態文件優化
  • 壓縮配置

前端優化

  • 資源壓縮
  • 懶加載
  • 緩存策略
  • CDN 配置

🔧 配置選項

環境變量

# 應用程式配置
SECRET_KEY=your-secret-key
JWT_SECRET_KEY=your-jwt-secret
FLASK_ENV=production

# 數據庫配置
DB_HOST=localhost
DB_PORT=3306
DB_USER=username
DB_PASSWORD=password
DB_NAME=database_name

# 認證配置
ENABLE_REGISTRATION=True
DEFAULT_ROLE=user
SESSION_TIMEOUT=3600

# 郵件配置
MAIL_SERVER=smtp.gmail.com
MAIL_PORT=587
MAIL_USE_TLS=True
MAIL_USERNAME=your-email
MAIL_PASSWORD=your-password

📚 API 文檔

認證端點

  • POST /api/auth/register - 用戶註冊
  • POST /api/auth/login - 用戶登入
  • POST /api/auth/refresh - 刷新令牌
  • GET /api/auth/protected - 受保護端點測試

評估端點

  • GET /api/capabilities - 獲取能力項目
  • POST /api/assessments - 創建評估
  • GET /api/assessments - 獲取評估列表

回饋端點

  • POST /api/star-feedbacks - 創建 STAR 回饋
  • GET /api/star-feedbacks - 獲取回饋列表

排名端點

  • GET /api/rankings/total - 獲取總排名
  • GET /api/rankings/monthly - 獲取月度排名

管理端點

  • GET /api/admin/users - 獲取用戶列表
  • POST /api/admin/users - 創建用戶
  • PUT /api/admin/users/{id} - 更新用戶
  • DELETE /api/admin/users/{id} - 刪除用戶

儀表板端點

  • GET /api/dashboard/me - 獲取個人儀表板數據
  • POST /api/dashboard/notifications/{id}/read - 標記通知為已讀

🤝 貢獻指南

開發流程

  1. Fork 項目
  2. 創建功能分支
  3. 提交更改
  4. 創建 Pull Request

代碼規範

  • 遵循 PEP 8 規範
  • 使用類型提示
  • 編寫單元測試
  • 更新文檔

提交規範

feat: 新功能
fix: 修復問題
docs: 文檔更新
style: 代碼格式
refactor: 重構
test: 測試
chore: 構建過程

📄 許可證

本項目採用 MIT 許可證 - 查看 LICENSE 文件了解詳情。

📞 支持與聯繫

問題報告

文檔

社區

🙏 致謝

感謝所有為這個項目做出貢獻的開發者和用戶。


版本: 2.0.0
最後更新: 2024年10月
維護者: 開發團隊

Description
No description provided
Readme 331 KiB
Languages
JavaScript 46.7%
HTML 27.9%
Python 19%
CSS 5.3%
Batchfile 1.1%