这个项目尝试解决的问题
项目中实现的主要功能模块
接入通义千问大模型 API,上传 PDF/Word/文本资料,AI 自动提取知识点并生成单选、多选、判断等多种题型,大幅缩短建库时间。
自由创建、编辑、删除考卷。从题库按重要性筛选题目组卷,支持单选/多选混合,系统自动计算总分。组卷前可一键预览考卷内容。
iOS 风格移动端 UI,考生扫码输入姓名即可答题,无需注册和密码。一题一页,支持跳题,提交后即时出分和错题解析。
每份考卷独立配置考生花名册,支持批量导入。考卷之间数据完全隔离,成绩按场次归档,历史成绩长期保留可查可导出。
每次保存考卷自动开启新场次,旧场次自动归档。管理员可随时结束当前考试,已结束的考生扫码将提示"考试已结束"。
基于 visibilitychange API,考生切换标签页或最小化时自动记录次数,成绩表中标红显示,管理员一目了然。
自动统计所有题目出错率,按错误率排序展示。支持"按错题优先"组卷,针对性复习薄弱知识点。
支持 Excel 批量导入题库(自动以文件名命名),导出成绩表和题库。成绩表包含切屏次数、花名册匹配等列,管理员可离线分析。
零依赖审计系统,记录所有关键操作(登录/组卷/提交/导出/结束考试),按月自动轮转,含来源 IP,便于追溯排查。
单文件部署 + 多租户进程隔离
这个项目中一些有意思的技术决策
JSON 文件存储让部署极简——不需要安装 MySQL,备份就是复制文件,迁移就是拷贝目录。对于培训考试的数据量完全够用。
刻意的设计选择:全局搜索定位快,不存在循环依赖问题。代码内部按功能模块清晰划分(路由、数据模型、业务逻辑、前端渲染),配合行号索引表,新人 10 分钟即可上手维护。
故障隔离(一个崩溃不影响其他)、数据物理隔离(不存在跨租户泄露)、可独立部署不同版本。代价仅约 90MB 内存/实例。
传统题库建设需要人工逐题编写,效率极低。接入通义千问 API 后,上传一份制度文档即可自动生成数十道题目,管理员只需审核微调,建库效率提升 10 倍以上。