人力资源管理系统,是十分常见的企业内部后台系统,主要包括组织架构、员工信息、人事制度、薪资管理、人员招聘等综合功能,主要面向人力资源部门和管理人员使用。一个成熟的人资管理系统的开发并不简单,其包含了复杂的角色管理、权限管理和事务流程管理,以及前端需要适应不同场景的界面和空间的设计等。VHR(微人事),是一个采用了 SpringBoot + Vue 开发的前后端分离的人力资源管理系统,可以作为人事系统,乃至于后台系统开发的优秀例子。
简介
VHR,是 lenve 在 Github 上开源的人力资源管理系统,项目位于 https://github.com/lenve/vhr,且在 Gitee 有镜像项目,位于 https://gitee.com/lenve/vhr。
VHR 所涉及的技术十分丰富,在后端,采取 Spring Boot 为主框架,Spring Security 实现用户验证和权限管理,MyBatis 操作数据库,MySQL 作为关系数据库,Redis作为缓存后端,RabbitMQ 作为消息队列,Spring Cache 管理缓存,WebSocket 实现全双工通信。而在前端,则使用 Vue 的 ElementUI 框架,使用包括 axios、vue-router、Vuex 等实现前端逻辑。
安装
VHR 部署简单。首先,把项目 clone 到本地:
git clone git@github.com:lenve/vhr.git
准备一个空的 MySQL 数据库,修改项目的数据库配置(application.properties),并使用 Flyway 管理数据库脚本,另外准备 Redis、RabbitMQ 等。在 IntelliJ IDEA 中打开 vhr 项目,并启动 mailserver 模块,然后,运行 vhrserver 中的 vhr-web 模块,就可以启动服务端。
对于前端,运行
npm install
npm run serve
进行启动,此时,访问 http://localhost:8080,就可以看到后台界面。
实例
VHR 作为一个人力资源管理系统,划分了不同的功能模块,包括:员工资料、人事管理、薪资管理、统计管理和系统管理。系统进行了全面的权限划分,不同的用户登录之后,根据角色不同,可以看到不同的侧边栏菜单,拥有不同的页面访问权限。完整菜单如下:
权限较低的用户所能访问的页面也较为局限:
管理员可以为每个用户分配不同的角色,依据角色实现 RBAC 权限模型:
系统管理员也可以配置不同角色所可以操作的资源:
权限数据库主要包含了五张表:资源表、角色表、用户表、资源角色表、用户角色表:
系统包括职位管理和职称管理:
对于员工管理,包括基本的增删改查、以及分页、批量删除、基本搜索等功能:
总结
VHR 作为一个开源的人力资源管理系统,其作为一个教程项目,拥有丰富的技术笔记和视频教程,对于进行 SpringBoot、Vue、前后端分离,乃至于后台系统的设计等,都具有很大的意义和价值。同时,其作为一个开源的系统应用,可以在实践中直接使用,也可以进行二次开发,得到符合自身需求的系统应用。
本文暂时没有评论,来添加一个吧(●'◡'●)