CV Manager 是一个面向高校/科研场景的学术简历管理系统,用于上传和解析 DOCX 简历,将论文、项目、专利、软著、获奖等内容抽取为结构化数据,并提供人员管理、用户权限、审核、附件管理、导出等能力。
当前项目采用前后端分离架构:
- 后端:
FastAPI + SQLAlchemy + SQLite - 前端:
Vue 3 + Vite + Element Plus + Pinia
当前版本已经实现或预留了以下能力:
- 用户登录与认证,支持管理员和普通用户
- 用户管理:管理员可新增、编辑、禁用用户
- 人员管理:新增、编辑、删除人员档案
- 简历上传:上传
DOCX简历并自动解析 - 简历历史:保留历史版本并支持下载
- 内容抽取:支持论文、项目、专利、软著、指导学生获奖、会议、特刊、学术兼职、学术报告、教学平台、行业标准等类别
- 差异化更新:重新上传简历时,基于文本相似度对已有条目进行匹配与更新
- 审核流程:支持待审核列表、手动审核、按置信度批量通过
- 附件管理:条目级附件上传、下载、删除
- 数据导出:支持按条件筛选并导出
JSON/Excel - AI 接口预留:为低置信度抽取、简历分析、表单填写保留接口
- 外部补全接口预留:为论文、专利信息补全保留接口
cvmanager/
├── backend/ # FastAPI 后端
│ ├── main.py # 应用入口
│ ├── models/ # 数据模型
│ ├── routers/ # API 路由
│ ├── parsers/ # DOCX 读取、章节拆分、内容提取、差异比对
│ ├── services/ # 业务逻辑
│ └── uploads/ # 简历和附件存储目录
├── frontend/ # Vue 3 前端
├── prompt.md # 原始需求说明
├── plans.md # 实施计划
├── requirements.txt # 后端依赖
└── 庞善臣简介(20260412).docx # 测试样例简历
建议环境:
- Python
3.10+ - Node.js
18+ - npm
9+
在项目根目录执行:
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
uvicorn backend.main:app --reload后端默认地址:
- API 服务:
http://127.0.0.1:8000 - Swagger 文档:
http://127.0.0.1:8000/docs
说明:
- 首次启动会自动创建 SQLite 数据库
cvmanager.db - 首次启动会自动创建默认管理员账号
- 上传文件会存储到
backend/uploads/
打开第二个终端,进入 frontend 目录:
cd frontend
npm install
npm run dev前端默认地址:
http://127.0.0.1:3000
前端开发服务器已配置代理:
/api->http://127.0.0.1:8000
系统启动后会自动创建管理员账号:
- 用户名:
admin - 密码:
admin123
建议首次登录后立即修改密码。
推荐按下面顺序体验系统:
- 使用管理员账号登录前端
- 进入“人员管理”新增一个人员
- 进入该人员详情页,点击“上传简历”
- 上传根目录中的测试文件
庞善臣简介(20260412).docx - 查看系统解析出的论文、项目、专利等结构化数据
- 进入“审核页面”处理待审核条目
- 进入“导出页面”按条件筛选并导出数据
- 数据库:
cvmanager.db - 简历文件目录:
backend/uploads/resumes/ - 附件目录:
backend/uploads/attachments/
当前数据库默认使用 SQLite,适合本地开发和原型验证。如果后续需要多用户正式部署,可切换到 MySQL 或 PostgreSQL。
常用接口示例:
- 登录:
POST /api/auth/login - 当前用户:
GET /api/auth/me - 人员管理:
/api/persons - 简历上传:
POST /api/resumes/upload/{person_id} - 简历历史:
GET /api/resumes/{person_id}/history - 审核:
/api/reviews/* - 附件:
/api/attachments/* - 导出:
POST /api/export/items - AI 预留接口:
/api/ai/* - 外部补全预留接口:
/api/external/*
目前项目已经具备可运行的原型能力,适合继续开发和联调。尤其是以下主链路已经打通:
- 登录
- 用户管理
- 人员管理
- 简历上传
- 内容解析
- 审核
- 附件管理
- 数据导出
当前版本仍有一些属于“预留”或“待继续优化”的部分:
- AI 能力接口已定义,但尚未接入真实模型服务
- 外部论文/专利补全接口已定义,但尚未接入第三方平台
- 简历解析目前主要依赖规则和正则,复杂格式下仍需继续优化
- 数据库迁移工具依赖已加入,但当前主要通过
Base.metadata.create_all()自动建表 - 前端尚未补充生产部署说明与构建产物发布流程
这是因为前端依赖尚未安装。先执行:
cd frontend
npm install再执行:
npm run dev先确认后端已经启动,并且数据库初始化完成。默认管理员账号是:
admin / admin123
如果数据库中已有旧数据,也可以直接删除根目录下的 cvmanager.db 后重新启动后端进行初始化。
当前解析逻辑基于章节识别、规则匹配和多种提取器组合,对格式规整的学术简历效果较好。若简历格式变化较大,可能需要继续补充对应类别的提取规则。
如果准备继续扩展本项目,建议优先推进:
- 接入真实 AI 服务处理低置信度条目
- 接入 CrossRef / 专利查询等外部数据源
- 完善更多类别的解析准确率
- 增加测试用例与端到端联调脚本
- 增加生产环境部署方案