763cc7cfdd0d069dc6745c6c04e1685a725904b0
- Create app.py with Flask server on port 5002 - Add requirements.txt with Python dependencies - Add run_flask.bat for Windows users - Add run_flask.sh for Linux/Mac users - Complete Flask setup documentation - Database integration with PyMySQL - Full LLM API support (Gemini, DeepSeek, OpenAI, Claude) - CORS configuration - Error handling middleware Features: ✅ Runs on http://127.0.0.1:5002 ✅ All LLM APIs supported ✅ Database connection ✅ API proxy for CORS fix ✅ Auto setup scripts 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
HR 績效評核系統
基於「四卡循環」的完整績效管理系統,整合 AI 智能輔助功能。
系統概述
本系統以「四卡循環」為核心架構,建立完整的績效管理生命週期:
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ 角色卡 │ ───▶ │ 能力卡 │ ───▶ │ 績效卡 │ ───▶ │ 成長卡 │
│Role Card │ │Competency│ │Performance│ │Growth Card│
└──────────┘ └──────────┘ └──────────┘ └──────────┘
│ │
└─────────────── 回饋循環 ◀──────────────────────────┘
主要功能
四卡系統
- 角色卡 (Role Card): 職位定義、KRA/KPI 設定
- 能力卡 (Competency Card): 能力基準、技能要求
- 績效卡 (Performance Card): 週期評核、目標達成評估
- 成長卡 (Growth Card): IDP 個人發展計畫
AI 輔助功能
- Help Me AI: 智能填寫功能,自動產生建議內容
- LLM 整合: 支援 Gemini, DeepSeek, OpenAI 三種 LLM
- 連線測試: 即時測試 API 連線狀態
錯誤處理
- 統一錯誤處理機制
- 友善的錯誤提示視窗
- 完整的錯誤日誌記錄
技術架構
後端技術
- Node.js + Express
- MySQL 資料庫
- RESTful API
- JWT 認證
前端技術
- React
- CSS3 (響應式設計)
- Axios (HTTP 請求)
AI 整合
- Google Gemini API
- DeepSeek API
- OpenAI API
環境設定
1. 安裝依賴
npm install
2. 環境變數設定
複製 .env 檔案並填入實際的設定值:
# Database Configuration
DB_HOST=mysql.theaken.com
DB_PORT=33306
DB_NAME=db_A102
DB_USER=A102
DB_PASSWORD=Bb123456
# LLM API Keys
GEMINI_API_KEY=your_gemini_api_key_here
DEEPSEEK_API_KEY=your_deepseek_api_key_here
OPENAI_API_KEY=your_openai_api_key_here
3. 資料庫初始化
# 建立資料表結構
mysql -h mysql.theaken.com -P 33306 -u A102 -p db_A102 < database/schema.sql
# 匯入初始資料
mysql -h mysql.theaken.com -P 33306 -u A102 -p db_A102 < database/seed_data.sql
開發指南
啟動開發伺服器
npm run dev
資料庫管理
詳細的資料庫文件請參考 database/README.md
API 文件
錯誤處理
所有 API 錯誤都會以統一格式回傳:
{
"success": false,
"error": {
"statusCode": 400,
"message": "錯誤訊息",
"details": {},
"timestamp": "2025-12-03T10:00:00.000Z",
"path": "/api/endpoint"
}
}
LLM API 端點
測試連線
POST /api/llm/test/gemini # 測試 Gemini
POST /api/llm/test/deepseek # 測試 DeepSeek
POST /api/llm/test/openai # 測試 OpenAI
POST /api/llm/test/all # 測試所有
生成內容
POST /api/llm/generate
Content-Type: application/json
{
"prompt": "你的提示內容",
"provider": "gemini",
"options": {
"temperature": 0.7,
"maxTokens": 2000
}
}
智能填寫
POST /api/llm/help-me-fill
Content-Type: application/json
{
"cardType": "performance",
"filledFields": {...},
"emptyFields": [...],
"context": {...}
}
專案結構
hr-performance-system/
├── components/ # React 元件
│ ├── ErrorModal.jsx # 錯誤彈窗
│ └── LLMConnectionTest.jsx # LLM 連線測試
├── config/ # 配置檔案
│ └── llm.config.js # LLM 設定
├── database/ # 資料庫檔案
│ ├── schema.sql # 資料表結構
│ ├── seed_data.sql # 初始資料
│ └── README.md # 資料庫說明
├── routes/ # API 路由
│ └── llm.routes.js # LLM 路由
├── services/ # 業務邏輯
│ └── llm.service.js # LLM 服務
├── utils/ # 工具函數
│ └── errorHandler.js # 錯誤處理
├── .env # 環境變數
├── .gitignore # Git 忽略檔案
└── README.md # 專案說明
資料庫結構
系統包含 31 張資料表,分為以下模組:
- 基礎資料: 5 張表 (部門、職級、員工、角色、權限)
- 職能字典: 3 張表 (分類、字典、行為指標)
- 角色卡: 6 張表
- 能力卡: 3 張表
- 績效卡: 4 張表
- 成長卡: 5 張表
- 系統支援: 5 張表 (審批、設定、版本、日誌)
詳細資料表結構請參考 database/README.md
系統特色
1. 完整的四卡循環
- 角色 → 能力 → 績效 → 成長的完整循環
- 資料自動連動,減少重複輸入
2. AI 智能輔助
- 自動填寫空白欄位
- 支援多種 LLM 服務
- 智能內容生成
3. 多語系支援
- 繁體中文
- 英文
- 介面與資料庫皆支援多語系
4. 響應式設計
- 支援桌面、平板、手機
- 自適應排版
- 觸控友善
5. 完善的錯誤處理
- 統一錯誤格式
- 友善的錯誤提示
- 完整的日誌記錄
開發規劃
Phase 1 - MVP (已完成)
- ✅ 資料庫設計與建立
- ✅ LLM API 整合
- ✅ 錯誤處理機制
- ✅ 連線測試功能
Phase 2 - 核心功能 (進行中)
- 🔄 角色卡 CRUD
- 🔄 能力卡管理
- 🔄 績效卡評核
- 🔄 成長卡 IDP
Phase 3 - 進階功能 (規劃中)
- ⏳ 360 度評估
- ⏳ 儀表板報表
- ⏳ 審批流程
- ⏳ 行動版 APP
版本管理
本專案使用 Git 進行版本控制,託管於 Gitea。
Repository: https://gitea.theaken.com/donald/hr-performance-system
授權
Copyright © 2025 HR Performance System. All rights reserved.
聯絡資訊
如有任何問題或建議,請聯繫系統管理員。
最後更新: 2025-12-03 版本: 1.0.0
Description
Languages
HTML
64.6%
JavaScript
19.3%
Python
8.9%
CSS
5.3%
Batchfile
1.3%
Other
0.6%