f690604c4a6a43efd1b1b38909009e3078b7068c
Some checks failed
CI/CD Pipeline / test (3.10) (push) Has been cancelled
CI/CD Pipeline / test (3.11) (push) Has been cancelled
CI/CD Pipeline / test (3.8) (push) Has been cancelled
CI/CD Pipeline / test (3.9) (push) Has been cancelled
CI/CD Pipeline / security (push) Has been cancelled
CI/CD Pipeline / build (push) Has been cancelled
CI/CD Pipeline / deploy-staging (push) Has been cancelled
CI/CD Pipeline / deploy-production (push) Has been cancelled
夥伴對齊系統 (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- 標記通知為已讀
🤝 貢獻指南
開發流程
- Fork 項目
- 創建功能分支
- 提交更改
- 創建 Pull Request
代碼規範
- 遵循 PEP 8 規範
- 使用類型提示
- 編寫單元測試
- 更新文檔
提交規範
feat: 新功能
fix: 修復問題
docs: 文檔更新
style: 代碼格式
refactor: 重構
test: 測試
chore: 構建過程
📄 許可證
本項目採用 MIT 許可證 - 查看 LICENSE 文件了解詳情。
📞 支持與聯繫
問題報告
- GitHub Issues: 創建問題
- 郵箱支持: support@company.com
文檔
- 在線文檔: https://docs.company.com
- API 文檔: https://api-docs.company.com
社區
- 討論區: GitHub Discussions
- 技術博客: https://blog.company.com
🙏 致謝
感謝所有為這個項目做出貢獻的開發者和用戶。
版本: 2.0.0
最後更新: 2024年10月
維護者: 開發團隊
Description
Languages
JavaScript
46.7%
HTML
27.9%
Python
19%
CSS
5.3%
Batchfile
1.1%