# HRM 人力资源管理系统
**Repository Path**: MerlinRong/HRM
## Basic Information
- **Project Name**: HRM 人力资源管理系统
- **Description**: 本项目旨在打造一套覆盖员工“招聘-入职-在职-离职”全生命周期的人力资源管理平台。系统支持从 10 人初创团队到 10 万人规模企业的弹性扩展,重点解决组织架构管理、复杂考勤计算、薪酬核算及审批流转等核心业务痛点
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-10-06
- **Last Updated**: 2026-10-06
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 🧑💼 HRM 人力资源管理系统
**覆盖员工「招聘 — 入职 — 在职 — 离职」全生命周期的人力资源管理平台**
[](https://www.python.org/)
[](https://fastapi.tiangolo.com/)
[](https://vuejs.org/)
[](https://www.typescriptlang.org/)
[](https://www.postgresql.org/)
[](https://redis.io/)
[](./LICENSE)
[功能特性](#-功能特性) · [技术栈](#-技术栈) · [快速开始](#-快速开始) · [项目结构](#-项目结构) · [测试](#-测试) · [Roadmap](#-roadmap)
---
## ✨ 功能特性
| 模块 | 能力 |
| :--- | :--- |
| 🏢 **组织与人事** | 无限层级组织树(拖拽调整)、岗位职级体系、HC 编制管控、员工档案(自定义字段)、入转调离 |
| 🎯 **招聘 ATS** | 职位发布、简历库、候选人看板(Kanban)、面试安排与日历协同 |
| ⏰ **考勤假期** | 固定/排班/自由工时、GPS & WiFi 打卡、假期额度自动生成、日结/月结核算、异常申诉 |
| 💰 **薪酬福利** | 薪酬套账、社保公积金规则、一键算薪(个税累计预扣)、电子工资条 |
| ✅ **审批流引擎** | 动态条件分支、会签/或签、加签/转办/撤回 |
| 🔐 **权限与安全** | RBAC + 行级数据权限、敏感字段加密脱敏、全量审计日志(PIPL 合规) |
| 📊 **数据看板** | 组织人效、招聘漏斗、薪酬趋势(ECharts) |
| 📱 **员工自助 (ESS)** | 个人主页、工作台、请假申请、打卡、工资条查询(移动端 H5 适配) |
## 🛠 技术栈
| 层级 | 技术 |
| :--- | :--- |
| **前端** | Vue 3 (Composition API) · TypeScript · SCSS (7-1 架构) · Element Plus · ECharts · Pinia · Vite |
| **后端** | FastAPI · SQLAlchemy 2.0 (async) · Pydantic v2 · JWT · Celery |
| **数据** | PostgreSQL(JSONB 自定义字段)/ SQLite(开发)· Redis(缓存 / Celery Broker) |
| **部署** | Docker Compose · Nginx |
## 🚀 快速开始
### 环境要求
- Python 3.10+
- Node.js 18+
- (可选)Docker & Docker Compose
### 后端
```bash
# 1. 创建虚拟环境并安装依赖
cd backend
python -m venv .venv
.\.venv\Scripts\pip install -e ".[dev,pg]" # Windows
# source .venv/bin/activate && pip install -e ".[dev,pg]" # macOS/Linux
# 2. 启动开发服务器
.\.venv\Scripts\python -m uvicorn app.main:app --reload
```
> 📖 API 文档:
>
> 🔑 种子账号:`admin / admin123` · `hr / hr123456`
开发模式默认使用 **SQLite + 进程内 KV**,零外部依赖开箱即跑。生产环境通过环境变量切换:
| 变量 | 说明 |
| :--- | :--- |
| `HRM_DATABASE_URL` | PostgreSQL 连接串(`postgresql+asyncpg://...`) |
| `HRM_REDIS_URL` | Redis 地址(缓存 / JWT 黑名单) |
| `HRM_CELERY_BROKER` / `HRM_CELERY_BACKEND` | Celery 队列 |
| `HRM_JWT_SECRET` | JWT 签名密钥 |
| `HRM_FIELD_SECRET` | 敏感字段 AES 加密密钥 |
### 前端
```bash
cd frontend
npm install
npm run dev # http://localhost:5173,/api 自动代理到 8000
```
### Docker Compose 一键部署
```bash
cd frontend && npm run build # 先产出 dist
cd ../deploy && docker compose up -d --build
# nginx :80 → 前端静态资源 + API 反向代理
```
## 📂 项目结构
```text
HRM/
├── backend/ # FastAPI 后端(app/ 业务模块 · tasks/ Celery 任务 · tests/)
├── frontend/ # Vue3 + TS + SCSS(src/styles 7-1 架构 · src/views 9 个页面)
├── deploy/ # docker-compose.yml · nginx.conf
└── docs/ # 设计文档(SRS / 总体设计 / 详细设计 / 编码实现方案)
```
详细设计文档(`.codebuddy/` 目录,不随仓库分发):总体设计 · 详细设计 · 编码实现方案
## 🧪 测试
```bash
# 后端:pytest(认证 / 权限越权 / 组织树 / 个税 / 审批 DSL / 假期额度)
cd backend && .\.venv\Scripts\python -m pytest tests -q
# 前端:vue-tsc 类型检查 + 生产构建
cd frontend && npm run build
```
## 🗺 Roadmap
- [x] **M1** 组织底座与人事核心(RBAC / 组织树 / 员工档案 / ESS)
- [x] **M2** 审批流引擎 / 考勤打卡核算 / 招聘 ATS
- [x] **M3** 薪酬核算引擎 / 电子工资条 / 数据看板
- [ ] 考勤机(中控/钉钉)OpenAPI 对接
- [ ] 企业微信 / 钉钉 / 飞书消息推送
- [ ] 金蝶 / 用友财务凭证对接
- [ ] 千人规模性能压测与 K8s 部署方案
## 🤝 参与贡献
1. Fork 本仓库并创建特性分支:`git checkout -b feature/m2-attendance`
2. 提交遵循 [Conventional Commits](https://www.conventionalcommits.org/zh-hans/) 规范
3. 提交前确保 lint 与测试全绿:`pytest` · `npm run build`
4. 发起 Pull Request
---
⭐ 觉得有帮助的话,给个 Star 支持一下吧!