引言
最近接了个私活,朋友开了个招聘公司,需要开发一套简历管理 CRM 系统,本文将分享如何在短短2天内完成这个项目的开发过程。
需求分析
系统主要功能包括岗位的发布和简历管理,整体功能如下。
功能模块
仪表盘
- 项目管理:
- 统计数据 - 管理员岗位发布、信息更新、岗位删除
客户管理
-
私有库:
- 私有库简历管理,添加、删除、沟通、更新状态等等
- 管理员批处理
-
成交库:
- 完善面试详情、提交审核、更新详情等等
-
简历公海:
- 简历列表、沟通、新增等等
审核管理
-
审核记录:
- 管理员审批成交库记录
员工管理
-
员工管理:
- 员工列表
- 添加员工
-
基础能力:
- 登录、登出
技术栈和开发工具选择
| 模块 | 技术栈 | 开发工具 |
|---|---|---|
| 前端 | Vue3 全家桶 | Qoder |
| 后端 | SpringBoot3 全家桶 | Idea |
| 数据库 | MySQL | |
| 缓存 | Redis |
严格来说,并不算真正的从 0 开始开发,前后端都有脚手架工程,GitHub 地址如下:
前端比较简陋,只做了注册、登录、登出,还有一些依赖的集成,如 ElementPlus、Pinia、TS 等等,因为实际体验下来这些开发成本并不高,但是让 AI 来做的话可能会出现一些不太好排查的问题。后端功能比较完备,常见的基础能力都已集成,提供了很多简洁好用的模板工具,直接上手业务需求开发即可,不需要关注异常处理、日志打印、中间件依赖等等。
话不多说,直接展示!!!
表结构设计
核心简历数据模型涉及 4 张表,分别是:
- 简历库:维护所有简历信息,手机号为其唯一键。
- 私有库:可以通过简历上传或从简历公海中添加,通过简历 ID 关联简历库。
- 简历公海:无意向或超出保护期的简历,将移入到简历公海,用户可以从简历公海中添加简历到私有库。
- 成交库:满足条件的简历将从私有库转移到成交库,离职后简历将再次进入简历公海。
- 操作行为记录库:用于统计简历流转记录。
其他和业务无关的数据模型就不展示了,都是模板工程自带的。
页面
整体功能介绍(管理员)
首页
管理员可以添加或修改招聘信息,员工可以根据招聘信息,推荐合适岗位给到客户。
私有库
管理员可以通过手动上传 Excel 文件批量添加客户,普通员工只能通过新增客户菜单单个新增,并且设有 50 个私有库简历上限。同时在私有库支持编辑简历状态或者修改客户简历信息。
面试通过的客户将会进入成交库,无意向的客户将会进入简历公海。
新增客户
单个添加客户,添加成功后将直接进入私有库。
成交库
进入成交库后,需要待管理员审核,审核结果和员工绩效挂钩。
简历公海
所有员工都可以从简历公海中沟通客户,沟通的客户将直接进入私有库,其他人无法继续沟通。
审核记录
当成交库的客户符合一定规则,会产生一条审核记录,管理员需要对成交库的记录进行审核,客户离职后,可手动再次进入简历公海。
员工管理
查看员工列表,新增员工并授权。
员工
员工端界面和管理员看到的类似,功能上做了必要的权限控制。这里不仅仅是页面上隐藏了操作按钮,而是接口上都做了权限控制。
AI 协作
项目的前端代码基本全部由 AI 生成,我仅做了微调,现在 AI 的代码生成质量真的高,对于日常开发完全够用,甚至 AI 还会帮我我们考虑很多边界情况,给出更好的交互体验。
后端由于涉及到一些较为复杂的业务逻辑,所以效率上 AI 不如自己编写。这里还是推荐下个人维护的一个后端脚手架,灰常的丝滑,基本上满足日常开发的基础功能。
常见的用户管理、权限管理、服务处理模板、常见工具类等等,都能达到开箱即用,而且服务端做了很多功能优化,比如用户信息,全部走的缓存,提升查询性能。原本设计是严格的分层结构,用于微服务应用开发,对于单体应用的支持自然也不在话下。
总结
从系统功能上看,需求并不复杂,主要是简历数据的管理和各种状态的流转,但是当一个人去完成一个系统端到端开发的时候,还是有很多问题要解决的,不过一个人开发的优点在于开发效率。当你一个人全权负责的时候,你会发现开发效率巨高,前后端不需要有接口文档了,也不需要联调了(开发就是联调),后端接口写好前端直接调,有问题直接改,真正做到所见即所得,这在公司里无法做到的,除非在公司你也是负责全栈开发。我这里并不是说团队协同不好,项目大了之后一个人不可能完成所有功能的开发,术业有专攻,想表达的是比如对于小项目、或者创业初期,想法的快速落地是很重要的,需要市场去验证你的想法,及时纠偏。
网上看到很多 AI 生成代码的场景,要不然就是代码过于简单,就一个单页面的 HTML,要不然就是掐头去尾,给人感觉 AI 万能。目前个人感觉对于前端代码,AI 确实已经足够优秀,代码质量很高。但是对于后端代码,需要处理的业务逻辑比较复杂,AI 更像是一个编程导师,可以帮你纠错,或生成一些通用的工具类、方法,但还是无法完全依赖 AI 生成。
好了,对于这样一个简单的 CRM 系统,你们觉得应该收费多少合适呢?欢迎在评论区留下您的看法。