Clone
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
衡准 · 考试信息管理系统 Wiki
衡准考试信息管理系统(EIS)是一套面向考试机构、学校、班级、考生和招生学校的完整考试业务平台。系统覆盖账号申领、考生建档、考试报名、缴费确认、审批流、考点考场、准考证编排、成绩与复议、中考志愿、投档录取、报到补录、通知公告和文书验真。
本 Wiki 同时面向系统使用人员、部署运维人员和开发人员。第一次接触项目时,建议先阅读快速开始;准备参与开发时,从开发指南和系统架构开始。
项目概览
| 项目 | 当前实现 |
|---|---|
| 后端 | ASP.NET Core 10 / C#,单进程模块化单体 |
| 前端 | Vue 3、Vue Router、Vite |
| 数据库 | SQLite(开发与单机部署)、MySQL 8.4(生产) |
| 缓存与会话 | 可选 Redis;未配置时使用进程内实现 |
| 文件能力 | ClosedXML 导入导出 Excel,浏览器端生成 PDF 文书 |
| 认证安全 | PBKDF2、HttpOnly Cookie、可选 TOTP、恢复码 |
| 当前数据库结构 | v20 |
| 默认服务地址 | http://127.0.0.1:4173 |
按身份阅读
系统使用人员
- 用户使用指南:公开服务、考生注册登录、首次登录、报名、准考证、成绩、志愿与录取。
- 管理操作指南:超级管理员、校级管理员、班级管理员和招生学校的功能边界及推荐操作顺序。
- 常见问题与故障排查:登录、页面、数据、导入、缓存和部署常见问题。
开发人员
- 快速开始:安装依赖、创建配置、构建前端、启动后端和联调。
- 开发指南:项目结构、开发工作流、前后端约定、测试和提交前检查。
- 系统架构:分层、请求流程、权限、数据库、缓存和前端结构。
- 配置参考:全部常用环境变量、默认值和生产要求。
部署与运维人员
- 数据库与数据工具:SQLite、MySQL、初始化、演示数据、重建和安全边界。
- 部署与发布:本机发布、自包含程序包、Docker、Gitea Actions 和上线检查。
- 常见问题与故障排查:健康检查、日志定位、版本不匹配和 Redis 故障。
业务角色
| 角色 | 主要职责 | 数据范围 |
|---|---|---|
| 考生 | 完善资料、报名、查看准考证与成绩、申请复议、填报志愿、查看录取 | 仅本人 |
| 班级管理员 | 管理本班考生、报名审批、缴费状态、复议流程 | 指定班级 |
| 校级管理员 | 管理本校组织、批量申领报名号、审核本校业务、维护考点申请 | 指定学校 |
| 超级管理员 | 全局配置、考试与成绩、流程监督、录取管理、通知发布 | 全部数据 |
| 招生学校 | 提交招生计划、审核投档、登记报到、设计通知书 | 本招生学校 |
| 公开访客 | 阅读公告、查看公开考试信息、验证成绩单和录取通知书 | 已公开数据 |
权限不只由前端菜单控制,服务端还会按角色、管理级别、学校、班级和招生学校范围再次校验。
核心业务主线
- 超级管理员维护组织、管理员、报名号规则和审批流程。
- 校级管理员按班级申请考生账号,审批完成后安全下发报名号和初始密码。
- 考生首次登录修改密码、完善资料,随后选择考试和科目报名。
- 各级管理员完成资料、报名、缴费和相关审批。
- 超级管理员配置考试、考点考场并执行准考证预检与编排。
- 超级管理员录入并发布成绩;考生可查看结果并发起成绩复议。
- 启用招生录取后,系统继续处理指标资格、招生计划、志愿、投档、退档、正式录取、报到与补录。
- 系统按阶段发布公告和脱敏公示,并为成绩单及录取通知书提供防伪验真。
重要安全提示
生产环境必须分别设置至少 32 个字符的
TOTP_ENCRYPTION_KEY和DOCUMENT_VERIFICATION_SECRET。两者必须相互独立并长期保存。更换前者会导致已绑定 TOTP 无法解密,更换后者会导致历史文书验真码失效。
database reset和database seed会改写业务数据。执行前必须停止应用、确认数据库目标并完成备份。MySQL 生产业务库不要导入演示数据。
docker compose down会保留 SQLite 数据卷;docker compose down --volumes会删除命名卷中的数据库,仅应在明确需要清空全部容器数据时使用。