系统设计文件 v1.0

学生测试评估系统

管理者以 AI 出题、导出批改、学生无需登录即可作答的完整评估平台

📅 2026-04-14 🔖 设计阶段 🤖 AI 整合
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 文件上传导入题目