# AIscore **Repository Path**: cheng96617/aiscore ## Basic Information - **Project Name**: AIscore - **Description**: 考题 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-13 - **Last Updated**: 2026-05-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 小学生人工智能通识测试考试系统 基于 Node.js + Express 构建的在线考试系统,支持学生答题、教师后台管理、AI自动评分等功能。 ## 功能特性 ### 学生端 - ✅ 支持单选题、多选题、判断题、简答题四种题型 - ✅ 45分钟倒计时功能 - ✅ 题目导航和答题进度显示 - ✅ 防重复提交(每位学生只能参加一次考试) - ✅ 提交后不显示分数,由教师统一公布成绩 ### 教师端 - ✅ 成绩统计(总人数、平均分、最高分、及格率) - ✅ 按得分排序显示排名 - ✅ 查看学生答题详情和解析 - ✅ AI自动评分(使用DeepSeek API) - ✅ 支持CSV和DOCX文件上传生成试卷 - ✅ 数据持久化存储(重启不丢失) - ✅ CSV数据导出 ### 试卷解析 - ✅ 支持CSV格式试卷导入 - ✅ 支持DOCX格式试卷导入 - ✅ 自动识别题型(单选/多选/判断/简答) - ✅ 判断题自动转换为选择题形式(正确/错误) ## 技术栈 - **后端**: Node.js + Express - **前端**: HTML5 + CSS3 + JavaScript - **数据库**: 文件存储(JSON格式) - **AI评分**: DeepSeek API - **文件解析**: mammoth(DOCX)、csv-parser(CSV) ## 安装与运行 ### 环境要求 - Node.js >= 14.0.0 - npm >= 6.0.0 ### 安装依赖 ```bash npm install ``` ### 配置API密钥 将DeepSeek API密钥放入 `key` 文件中: ```bash echo "sk-your-api-key" > key ``` ### 启动服务器 ```bash npm start ``` 服务器启动后: - 学生访问: http://localhost:3000/ - 教师访问: http://localhost:3000/teacher ## 文件结构 ``` AIscore/ ├── server.js # 后端服务器 ├── package.json # 项目配置 ├── key # DeepSeek API密钥 ├── shiti.csv # 试卷模板 ├── data/ │ └── results.json # 考试结果存储 ├── public/ │ ├── student.html # 学生考试页面 │ └── teacher.html # 教师后台页面 └── uploads/ # 文件上传临时目录 ``` ## 试卷格式 ### CSV格式 | 题型 | 题干 | 选项A | 选项B | 选项C | 选项D | 答案 | 分值 | 解析 | |------|------|-------|-------|-------|-------|------|------|------| | 单选题 | 题目内容 | 选项A | 选项B | 选项C | 选项D | A | 3 | 解析内容 | | 多选题 | 题目内容 | 选项A | 选项B | 选项C | 选项D | ABC | 4 | 解析内容 | | 判断题 | 题目内容 | | | | | 正确 | 2 | 解析内容 | | 简答题 | 题目内容 | | | | | | 30 | 评分标准 | ### DOCX格式 ``` 一、单选题(共10题,每题3分) 1. 题目内容 A. 选项A B. 选项B C. 选项C D. 选项D 答案:A 解析:解析内容 二、多选题(共10题,每题4分) 1. 题目内容 A. 选项A B. 选项B C. 选项C D. 选项D 答案:ABC 解析:解析内容 三、判断题(共5题,每题2分) 1. 题目内容 答案:正确 解析:解析内容 三、简答题(共1题,30分) 1. 题目内容 参考答案:参考内容 ``` ## API接口 | 接口 | 方法 | 描述 | |------|------|------| | /api/questions | GET | 获取试题列表 | | /api/submit | POST | 提交考试答案 | | /api/check-submit | GET | 检查学生是否已提交 | | /api/results | GET | 获取成绩列表 | | /api/results/:id | GET | 获取单个成绩详情 | | /api/results/:id | DELETE | 删除成绩记录 | | /api/upload-exam | POST | 上传试卷文件 | | /api/update-exam | POST | 更新试卷 | | /api/export-csv | GET | 导出CSV数据 | ## 评分规则 | 题型 | 分值 | 评分方式 | |------|------|----------| | 单选题 | 3分/题 | 答对得分,答错不得分 | | 多选题 | 4分/题 | 全部选对得分,错选漏选不得分 | | 判断题 | 2分/题 | 答对得分,答错不得分 | | 简答题 | 30分 | AI自动评分,基于内容关键词检测 | ## 使用说明 ### 教师操作流程 1. 访问教师后台:http://localhost:3000/teacher 2. 点击"上传试卷"按钮 3. 选择CSV或DOCX格式的试卷文件 4. 预览解析结果,确认无误后点击"确认更新试卷" 5. 学生完成考试后,在后台查看成绩统计 ### 学生操作流程 1. 访问学生考试页面:http://localhost:3000/ 2. 输入姓名(系统会检查是否已参加过考试) 3. 开始答题,支持题目导航 4. 完成后点击"提交试卷" 5. 提交成功后显示"考试完成"提示 ## 注意事项 1. 确保已正确配置DeepSeek API密钥 2. 试卷文件编码需为UTF-8格式 3. 学生姓名作为唯一标识,同名学生将被视为同一人 4. 数据文件存储在 `data/results.json`,请定期备份 ## 许可证 MIT License