这个项目尝试解决的问题
项目中实现的主要功能模块
从题库按重要性筛选题目,支持单选/多选混合组卷,系统自动计算总分和每题分值。
iOS 风格移动端 UI,输入姓名即可答题。一题一页,支持跳题,提交后即时出分和错题解析。
基于 visibilitychange API,考生切换标签页或最小化时自动记录次数,成绩表中标红显示。
自动统计所有题目出错率,按错误率排序展示。支持"按错题优先"组卷,针对性复习。
使用 exceljs 导出成绩表和题库,成绩表包含切屏次数列,管理员可离线分析。
零依赖审计系统,记录所有关键操作(登录/组卷/提交/导出),按月自动轮转,含来源 IP。
单文件部署 + 多租户进程隔离
这个项目中一些有意思的技术决策
JSON 文件存储让部署极简——不需要安装 MySQL,备份就是复制文件,迁移就是拷贝目录。对于培训考试的数据量完全够用。
刻意的设计选择:全局搜索定位快,新人 5 分钟理解结构,不存在循环依赖问题。代码内部按功能模块清晰划分。
故障隔离(一个崩溃不影响其他)、数据物理隔离(不存在跨租户泄露)、可独立部署不同版本。代价仅约 90MB 内存/实例。