# 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. 发证日期

三个日期统一使用 `YYYY-MM-DD`，例如 `2026-06-01`，课程结束日期不得早于开始日期。证书名称、课程名称、阶段名称和发证单位从项目配置自动带出；证书编号由系统确认导入后自动生成。
