1
用户角色
管理者 / 教师
需登录才可进入
- AI 出题 / JSON 导入
- 建立及发布试卷
- 导出答案 JSON
- 导入 AI 批改结果
- 查看全班成绩报告
- 管理账号及系统设置
学生
只需链接,无需注册
- 打开考试链接
- 填写姓名即可开始
- 在线答题(计时)
- 提交后查看成绩
- 查看题目分析建议
2
访问权限模型
🔒 管理后台
/admin/login
- ✓ 需要账号 + 密码
- ✓ JWT Session 验证
- ✓ 未登录自动跳转登录页
- ✓ 所有 /admin/* 路由受保护
🔗 学生考试入口
/exam/[token]
- ✓ 只需唯一链接
- ✓ 无需注册或登录
- ✓ 填写姓名即可开始
- ✓ Token 含有效期控制
Token 链接设计
格式: /exam/xK9mP2qR3tNv — 12 位随机英数字符
控制选项:
有效期(如:今天 8am–10am)
最大提交次数
允许/禁止重复作答
每个姓名只提交一次
3
五种题目类型
类型 01
单选题
4个选项(A/B/C/D),支持题目图片及选项图片,只能选一个答案。
自动批改 支持图文类型 02
多选题
4–6个选项,支持图文,可选2个或以上。全对得满分或可设部分分。
自动批改 可设部分分类型 03
填充题
单空或多空,支持多个正确答案,可设关键词匹配或精确匹配。
自动批改 别字容错类型 04
思考题
开放式问答,支持题目图片,设评分标准(Rubric)。
AI 辅助批改 人工复核类型 05
计算题
分步骤作答,支持 LaTeX 数学公式,可按步骤给分。
AI 辅助批改 步骤分4
JSON 数据模型(题目格式)
① 单选题 / 多选题
single_choice.json
{
"question_id": "Q001",
"type": "single_choice", // 或 "multiple_choice"
"subject": "数学",
"grade": "中三",
"difficulty": "medium",
"points": 5,
"content": {
"text": "下图中三角形的面积是?",
"image_url": "/images/triangle_q1.png" // 可选
},
"options": [
{ "id": "A", "text": "12 cm²", "image_url": null },
{ "id": "B", "text": "24 cm²", "image_url": "/images/opt_b.png" },
{ "id": "C", "text": "36 cm²", "image_url": null },
{ "id": "D", "text": "48 cm²", "image_url": null }
],
"answer": { "correct": "B" },
"explanation": "底 × 高 ÷ 2 = 8 × 6 ÷ 2 = 24"
}
② 填充题
fill_blank.json
{
"type": "fill_blank",
"content": {
"text": "x² - 5x + 6 = 0 的两个根是 ___ 和 ___"
},
"answer": {
"blanks": [
{ "id": 1, "accepted": ["2", "2"], "match_type": "exact" },
{ "id": 2, "accepted": ["3", "3"], "match_type": "exact" }
]
},
"points": 4
}
③ 思考题
essay.json
{
"type": "essay",
"content": {
"text": "解释气候变化对生物多样性的影响,举例说明。"
},
"answer": {
"marking_rubric": [
{ "criterion": "定义准确", "points": 2 },
{ "criterion": "举例恰当(≥2个)", "points": 4 },
{ "criterion": "逻辑清晰", "points": 2 },
{ "criterion": "文字表达", "points": 2 }
],
"reference_answer": "气候变化导致温度上升、栖息地改变...",
"ai_marking": true
},
"points": 10
}
④ 计算题
calculation.json
{
"type": "calculation",
"content": {
"text": "解方程组:2x + 3y = 12,x - y = 1,求 x 和 y 的值"
},
"answer": {
"steps": [
{ "step": 1, "description": "由第二式得 x = y + 1", "points": 2 },
{ "step": 2, "description": "代入第一式求 y = 2", "points": 3 },
{ "step": 3, "description": "求出 x = 3 并验算", "points": 2 }
],
"final_answer": { "x": 3, "y": 2 }
},
"points": 7
}
5
AI 出题流程
1
管理者设定出题参数
学科、年级、难度、题型、数量、知识点、额外指示
2
系统构建指令 → 调用 AI 接口
AI 模型,指定返回 JSON 格式题目
3
预览生成的题目
管理者可编辑、删除、重新生成个别题目
4
确认后加入题库
可全部加入或选择性加入,自动标记 ai_generated: true
6
AI 批改工作流
📤
导出答案 JSON
含题目、评分标准、所有学生答案
→
🤖
AI 批改
评分、分析及加强建议
→
📥
导入批改 JSON
系统更新成绩、分析、建议
导出 JSON 结构(发给 AI)
exam_answers.json
{
"export_meta": {
"exam_id": "EXAM_001",
"exam_title": "中三数学期中测试",
"instructions_for_ai": "请根据评分标准批改答案,给出分数、分析及建议,以指定 JSON 格式返回。"
},
"marking_scheme": {
"questions": [
{
"question_id": "Q005",
"type": "essay",
"marking_rubric": [
{ "criterion": "定义准确", "points": 2 },
{ "criterion": "举例恰当(≥2个)", "points": 4 },
{ "criterion": "逻辑清晰", "points": 2 },
{ "criterion": "文字表达", "points": 2 }
],
"reference_answer": "参考答案内容..."
}
]
},
"submissions": [
{
"submission_id": "SUB_001",
"student_name": "陈大明",
"student_class": "3A",
"answers": [
{
"question_id": "Q005",
"type": "essay",
"student_answer": "气候变化使地球温度升高..."
}
]
}
]
}
导入 JSON 结构(AI 返回)
exam_marked.json
{
"marked_meta": {
"exam_id": "EXAM_001",
"marked_by": "ai_model",
"marked_at": "2026-04-14T10:15:00"
},
"class_analysis": {
"average_score": 72.4,
"weak_areas": ["计算题步骤表达", "思考题论点展开"],
"class_recommendations": [
"建议加强计算题步骤书写训练,约 40% 学生因步骤不清失分",
"思考题需练习如何组织论点,建议增加段落写作练习"
]
},
"results": [
{
"submission_id": "SUB_001",
"student_name": "陈大明",
"total_score": 78,
"percentage": 78,
"grade": "B",
"question_scores": [
{
"question_id": "Q005",
"score": 7,
"max_points": 10,
"rubric_scores": [
{ "criterion": "定义准确", "score": 2, "max": 2 },
{ "criterion": "举例恰当(≥2个)", "score": 3, "max": 4 },
{ "criterion": "逻辑清晰", "score": 1, "max": 2 },
{ "criterion": "文字表达", "score": 1, "max": 2 }
],
"feedback": "举例恰当,但论点展开不够深入,建议说明具体机制。"
}
],
"student_analysis": {
"strengths": ["概念理解扎实", "计算步骤有条理"],
"weaknesses": ["填充题粗心", "思考题深度不足"],
"recommendations": [
"填充题仔细检查多空答案",
"思考题用「论点→解释→举例」三段式",
"计算题养成最后验算习惯"
]
}
}
]
}
AI 批改指令模板
「你是一位专业学科老师,请根据以下 JSON 中的 [marking_scheme] 评分标准,批改所有 [submissions] 学生答案,并严格按照指定 JSON 格式返回批改结果。
要求:
1. 客观评分,参考 rubric 各项标准
2. feedback 用中文,简洁具体
3. recommendations 针对个别学生弱点
4. class_analysis 总结全班情况
5. 只返回 JSON,不需要额外解释
[贴上导出的 JSON]」
7
页面地图
公开路由(学生,无需登录)
PUBLIC
/exam/[token]
考试入口(填写姓名)
PUBLIC
/exam/[token]/start
答题页面(计时)
PUBLIC
/exam/[token]/result
成绩 + 分析报告
管理路由(需登录)
LOGIN
/admin/login
管理者登录页
PRIVATE
/admin/dashboard
系统概览
PRIVATE
/admin/questions
题库管理(AI出题 / JSON导入 / 手动出题)
PRIVATE
/admin/exams
试卷管理(组卷 / 预览 / 发布)
PRIVATE
/admin/results
成绩管理(导出答案 JSON / 导入批改 JSON)
PRIVATE
/admin/settings
系统设置 / 账号管理
8
系统架构
architecture
┌─────────────────────────────────────────────────────────────┐
│ 前端 (Next.js) │
│ 管理后台 (/admin) 学生端 (/exam) │
│ 出题 / 组卷 / 批改管理 答题页面 / 成绩报告 │
└────────────────────────┬────────────────────────────────────┘
│ REST API
┌────────────────────────▼────────────────────────────────────┐
│ 后端 API (Node.js / Python) │
│ 题库服务 试卷服务 批改服务 报告服务 Auth 服务 │
│ AI SDK (出题/批改) │
└────┬──────────────────┬──────────────────────────────────────┘
│ │
┌────▼────┐ ┌──────▼──────┐
│ 数据库 │ │ 文件存储 │
│Postgres │ │ 题目图片/PDF │
└─────────┘ └─────────────┘
9
待确认事项
| # | 问题 | 默认方案 | 状态 |
|---|---|---|---|
| 1 | 系统语言 | 中英双语 | 待确认 |
| 2 | 成绩是否立即显示给学生 | 提交后立即显示 | 待确认 |
| 3 | 学生端是否手机适配 | 响应式设计 | 待确认 |
| 4 | 图片存储方式 | 服务器本地存储 | 待确认 |
| 5 | 部署域名 | demo6 / demo7? | 待确认 |
| 6 | 管理者账号 | 系统初始化时设定 | 待确认 |
✅ 已确认事项
- ✓ 管理者需登录才能进入管理页面
- ✓ 学生只需链接,无需注册/登录
- ✓ 支持导出答案 JSON → AI 批改 → 导入批改结果
- ✓ 五种题型:单选、多选、填充、思考、计算
- ✓ 支持 JSON 文件上传导入题目