{"id":48607439,"url":"https://github.com/dootask/kpi","last_synced_at":"2026-04-09T00:11:56.180Z","repository":{"id":304305485,"uuid":"1018374708","full_name":"dootask/kpi","owner":"dootask","description":"🎯 现代化 KPI 绩效考核管理系统 - 基于 Next.js 和 Go 构建，支持多角色协作、数据统计分析和 Excel 导出，可作为 DooTask 插件使用。","archived":false,"fork":false,"pushed_at":"2026-01-12T08:30:49.000Z","size":14663,"stargazers_count":17,"open_issues_count":1,"forks_count":5,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-12T16:33:18.766Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dootask.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-12T06:02:46.000Z","updated_at":"2026-01-12T08:30:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"65e7becf-d4db-4087-98ee-716c9261576c","html_url":"https://github.com/dootask/kpi","commit_stats":null,"previous_names":["dootask/kpi"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/dootask/kpi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dootask%2Fkpi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dootask%2Fkpi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dootask%2Fkpi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dootask%2Fkpi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dootask","download_url":"https://codeload.github.com/dootask/kpi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dootask%2Fkpi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31579130,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-09T00:11:55.456Z","updated_at":"2026-04-09T00:11:56.179Z","avatar_url":"https://github.com/dootask.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DooTask KPI 绩效考核系统\n\n一个基于 Next.js 和 Go 的现代化 KPI 绩效考核管理系统，支持多角色协作，让绩效管理变得更加高效和透明。\n\n![](./public/screenshot.png)\n\n## 🚀 技术栈\n\n### 前端\n- **Next.js 15.3.5** - React 全栈框架\n- **React 19** - 用户界面库\n- **TypeScript** - 类型安全的 JavaScript\n- **Tailwind CSS** - 实用优先的 CSS 框架\n- **Radix UI** - 高质量的 UI 组件库\n- **Recharts** - 数据可视化图表库\n- **Axios** - HTTP 请求库\n- **React Hook Form** - 表单处理库\n- **Zod** - 数据验证库\n\n### 后端\n- **Go 1.23** - 高性能编程语言\n- **Gin** - 轻量级 HTTP Web 框架\n- **GORM** - Go 语言 ORM 库\n- **SQLite** - 嵌入式数据库\n- **JWT** - 用户认证和授权\n- **bcrypt** - 密码加密\n- **Excelize** - Excel 文件处理\n\n## 📋 系统功能\n\n### 🎯 核心功能\n- **考核管理** - 创建、填写和管理绩效考核\n- **邀请评分** - 邀请同事参与评分，获得多角度评价\n- **异议处理** - 员工可对考核结果提出异议，HR 审核并调整得分\n- **统计分析** - 考核数据的图表和报表分析\n- **仪表板** - 系统概览和关键指标展示\n\n### 👥 管理功能\n- **部门管理** - 组织架构和部门信息管理\n- **员工管理** - 员工信息和权限管理\n- **KPI 模板** - 考核模板的创建和维护\n- **绩效规则** - 配置不同场景下自评、上级及邀请评分的权重比例\n\n### ⚙️ 系统功能\n- **用户认证** - 登录、注册和权限管理\n- **系统设置** - 个性化配置和系统管理\n- **数据导出** - Excel 格式数据导出\n- **帮助中心** - 系统使用指南\n\n## 🏗️ 系统架构\n\n```\ndootask-kpi/\n├── app/                    # Next.js 应用目录\n│   ├── auth/              # 认证页面\n│   ├── departments/       # 部门管理\n│   ├── employees/         # 员工管理\n│   ├── evaluations/       # 考核管理\n│   ├── performance-rules/ # 绩效规则配置\n│   ├── statistics/        # 统计分析\n│   ├── templates/         # 模板管理\n│   └── settings/          # 系统设置\n├── components/            # React 组件\n│   └── ui/               # UI 组件库\n├── lib/                  # 工具库和上下文\n├── server/               # Go 后端服务\n│   ├── handlers/         # HTTP 处理器\n│   ├── models/           # 数据模型\n│   ├── routes/           # 路由配置\n│   └── utils/            # 工具函数\n└── scripts/              # 脚本文件\n```\n\n## 🔐 用户角色\n\n系统支持三种用户角色：\n\n### 👤 普通员工 (employee)\n- 查看和填写自己的绩效考核\n- 对考核结果提交异议申请\n- 接收并处理邀请评分任务\n- 对其他员工进行客观评分\n- 查看系统设置\n- 访问帮助中心\n\n### 👔 部门主管 (manager)\n- 员工的所有功能\n- 管理部门员工\n- 评估下属的绩效考核\n- 导出考核数据\n\n### 👨‍💼 HR 管理员 (hr)\n- 所有系统功能的完全访问权限\n- 管理部门和员工\n- 创建和管理 KPI 模板\n- 配置绩效规则和权重比例\n- 发起和管理邀请评分\n- 处理员工异议申请\n- 系统设置配置\n- 数据统计分析\n\n## 📊 考核流程\n\n1. **创建考核** - HR 或主管创建考核任务，选择模板和被考核人员\n2. **员工自评** - 员工填写自我评价，对各项指标进行评分\n3. **主管评估** - 主管对员工进行评估，给出评分和反馈\n4. **邀请评分**（可选）- HR 可邀请其他人员对员工进行评分，获取多方面评价\n5. **HR 审核** - HR 审核评估结果，根据绩效规则计算最终评分\n6. **员工确认** - 员工确认最终得分，考核流程完成\n7. **异议处理**（可选）- 员工如对评分有异议，可提交异议申请，HR 处理并调整得分\n\n## 🤝 邀请评分功能\n\n### 📋 功能特点\n- **多角度评价**：通过邀请不同人员参与评分，获得更全面的员工评价\n- **灵活邀请**：HR 可以选择合适的人员进行邀请，支持多人同时评分\n- **状态管理**：实时跟踪邀请状态（待接受、进行中、已完成、已拒绝）\n- **客观评分**：被邀请人员基于对员工的了解进行客观评分\n\n### 🔄 邀请流程\n1. **发起邀请** - HR 在主管评估完成后发起邀请评分\n2. **选择评分人** - 选择了解被评估员工的人员进行邀请\n3. **接受邀请** - 被邀请人员可以选择接受或拒绝邀请\n4. **进行评分** - 接受邀请后对员工各项指标进行评分\n5. **提交结果** - 完成评分并提交评价结果\n6. **HR 参考** - HR 将邀请评分作为审核的重要参考\n\n### 👥 参与角色\n- **HR 管理员**：发起邀请、管理邀请进展、查看评分结果\n- **被邀请人员**：接收邀请、进行评分、提供客观评价\n- **被评估员工**：邀请评分的对象，无需参与邀请评分过程\n\n### 📊 评分原则\n- **客观公正**：基于对员工的实际了解进行评分\n- **具体详实**：提供具体的评分依据和改进建议\n- **保密性**：评分结果仅 HR 可查看完整详情\n- **可选性**：如对员工不够了解，可选择拒绝邀请\n\n## ⚙️ 绩效规则配置\n\n### 📋 功能说明\n绩效规则用于配置不同场景下各项评分的权重比例，系统会根据配置自动计算最终得分。\n\n### 🎯 配置场景\n\n#### 无邀请评分场景\n- **自评权重**：员工自评的权重百分比\n- **上级评分权重**：主管评分的权重百分比\n- **合计必须为 100%**\n\n#### 有邀请评分场景（员工）\n- **自评权重**：员工自评的权重百分比\n- **邀请评分权重**：被邀请人员评分的权重百分比\n- **上级评分权重**：主管评分的权重百分比\n- **合计必须为 100%**\n\n### 🔧 使用方式\n1. **启用规则**：打开绩效规则开关，规则生效\n2. **配置权重**：根据公司制度设置各场景下的权重百分比\n3. **保存生效**：保存后立即生效，影响后续的考核评分计算\n4. **禁用规则**：关闭开关后，系统使用默认评分方式\n\n### 👥 权限说明\n- 仅 **HR 管理员** 可以访问和配置绩效规则\n- 配置修改后立即生效，影响所有后续考核\n\n## 🔔 异议处理功能\n\n### 📋 功能说明\n异议处理功能允许员工对考核结果提出异议，HR 可以审核并调整最终得分，确保考核过程的公平性和透明度。\n\n### 🔄 异议流程\n\n1. **员工提交异议**\n   - 在\"待确认\"状态时，员工可以提交异议申请\n   - 填写详细的异议原因和说明\n   - 提交后系统自动通知上级和 HR\n   - 考核状态变为\"异议处理中\"\n\n2. **HR 处理异议**\n   - HR 查看员工提交的异议原因\n   - 审核考核过程和评分依据\n   - 可以调整最终得分（如有必要）\n   - 填写处理原因和说明\n   - 处理完成后系统通知员工\n\n3. **员工确认结果**\n   - 员工查看 HR 的处理结果和调整后的得分\n   - 确认后考核流程完成\n   - 如仍有异议，可再次提交（需 HR 重新处理）\n\n### 🎯 功能特点\n\n- **公平透明**：员工可以对考核结果提出异议，保障员工权益\n- **流程规范**：异议处理流程清晰，状态可追踪\n- **及时通知**：异议提交和处理都会及时通知相关人员\n- **可追溯性**：异议原因和处理结果完整记录，便于追溯\n\n### 👥 参与角色\n\n- **员工**：在待确认状态可以提交异议，查看处理结果\n- **HR 管理员**：查看和处理所有异议，调整最终得分\n- **上级主管**：收到异议通知，了解员工反馈\n\n### ⚠️ 注意事项\n\n- 只有在\"待确认\"状态才能提交异议\n- 每个考核只能提交一次异议\n- HR 处理异议后，员工需要重新确认最终得分\n- 异议处理记录会永久保存，作为考核历史的一部分\n\n## 🛠️ 安装和使用\n\n### 环境要求\n- Node.js 18+\n- Go 1.23+\n\n### 快速启动\n\n1. **克隆项目**\n```bash\ngit clone https://github.com/dootask/kpi\ncd kpi\n```\n\n2. **安装前端依赖**\n```bash\nnpm install\n```\n\n3. **安装后端依赖**\n```bash\ncd server\ngo mod tidy\ncd ..\n```\n\n4. **启动开发环境**\n```bash\n# 同时启动前后端（推荐）\nnpm run dev:all\n\n# 或者分别启动\nnpm run dev          # 仅启动前端\ncd server \u0026\u0026 CGO_ENABLED=1 go run main.go  # 仅启动后端\n```\n\n5. **访问系统**\n- 前端：http://localhost:3000\n- 后端：http://localhost:8080\n\n### 生产环境部署\n\n1. **构建前端**\n```bash\nnpm run build\nnpm run start\n```\n\n2. **构建后端**\n```bash\ncd server\nCGO_ENABLED=1 go build -o kpi-server main.go\n./kpi-server\n```\n\n## 🗄️ 数据库\n\n系统使用 SQLite 作为数据库，数据文件位于 `server/db/kpi.db`。\n\n### 数据表结构\n- `departments` - 部门信息\n- `employees` - 员工信息\n- `kpi_templates` - KPI 模板\n- `kpi_items` - KPI 考核项目\n- `kpi_evaluations` - 考核记录\n- `kpi_scores` - 考核得分\n- `evaluation_comments` - 评估评论\n- `evaluation_invitations` - 邀请评分记录\n- `invited_scores` - 邀请评分得分\n- `performance_rules` - 绩效规则配置\n- `system_settings` - 系统设置\n\n## 📱 响应式设计\n\n系统采用响应式设计，完美适配：\n- 桌面端（1200px+）\n- 平板端（768px - 1199px）\n- 移动端（\u003c 768px）\n\n## 🌓 主题支持\n\n系统支持明暗主题切换，用户可以根据个人喜好选择合适的主题。\n\n## 📈 功能特性\n\n- ✅ 完整的用户认证和授权系统\n- ✅ 多角色权限管理\n- ✅ 邀请评分功能，支持360度评估\n- ✅ 异议处理功能，保障考核公平性\n- ✅ 绩效规则配置，灵活设置评分权重\n- ✅ 响应式设计，支持移动端\n- ✅ 实时数据统计和图表展示\n- ✅ Excel 数据导出功能\n- ✅ 完整的考核流程管理\n- ✅ 系统设置和配置管理\n- ✅ 暗黑模式支持\n- ✅ 组件化设计，易于扩展\n\n## 🤝 默认测试账户\n\n系统启动后会自动创建测试数据，包括以下默认账户（默认密码均为：`123456`）：\n\n### HR 管理员账户\n- **账户**：sunba@company.com\n- **姓名**：孙八\n- **职位**：HR经理\n- **权限**：系统全部功能\n\n### 部门主管账户\n- **技术总监**：zhangsan@company.com (张三)\n- **市场总监**：zhaoliu@company.com (赵六)\n- **财务经理**：zhoujiu@company.com (周九)\n- **权限**：部门管理、员工考核、数据导出\n\n### 普通员工账户\n- **技术员工**：lisi@company.com (李四)、wangwu@company.com (王五)\n- **市场员工**：qianqi@company.com (钱七)\n- **权限**：查看和填写个人考核\n\n## 📄 许可证\n\n本项目仅供学习和参考使用。\n\n## 👨‍💻 作者\n\n基于 Next.js 和 Go 开发的现代化 KPI 管理系统。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdootask%2Fkpi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdootask%2Fkpi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdootask%2Fkpi/lists"}