Initial certificate system

This commit is contained in:
nelso
2026-06-06 19:32:24 +08:00
commit ce4ed6213b
105 changed files with 9133 additions and 0 deletions

49
docs/mvp-scope.md Normal file
View File

@@ -0,0 +1,49 @@
# MVP 范围说明
## 一期必须完成
1. 后台账号登录和基础角色权限。
2. 项目/课程代码配置。
3. 学员管理,手机号作为主标识,支持曾用名和手机号变更记录。
4. 证书管理,支持一个学员多张证书。
5. Excel 批量导入,导入前校验,导入后生成证书编号和公开访问 token。
6. 证书编号系统自动生成,格式为 `PX{YYYY}-{项目代码}-{7位短码}-{2位校验码}`
7. 批量导出证书数据,包含证书编号和对外直达链接。
8. 公开查询:证书编号 + 姓名 + 图形验证码。
9. 证书直达页:通过不可枚举 token 查看单张证书。
10. 二维码核验页:展示真实性、状态和必要证书信息。
11. PDF 下载:服务端按需生成,占位模板,缓存 30 天。
12. 操作日志和导出日志。
## 一期不做
1. 手机号公开查询。
2. 复杂更正/补发流程。
3. 证书审批流。
4. 可视化证书模板编辑器。
5. 正式 Logo、公章、电子签章。
6. Redis、Celery、RabbitMQ、Kubernetes、多实例。
7. 对接报名系统、学习系统或 CRM。
## 默认业务规则
- 证书作废后,公开页面展示作废状态,不允许下载正常 PDF。
- 公开页面不展示完整手机号、证件号、后台备注、导入记录。
- 证书直达链接使用随机 token不由证书编号推导。
- 导出完整手机号或证件号需要高权限,并记录日志。
## Excel 导入模板字段
一期模板字段:
1. 姓名
2. 手机号
3. 项目代码
4. 证书名称
5. 课程名称
6. 阶段名称
7. 发证日期
8. 发证单位
9. 备注
证书编号不在 Excel 中填写,由系统确认导入后自动生成。