Files
CICD/docs/product_requirements.md
SpecialX e7c902e8e1
Some checks failed
CI / build-and-test (push) Failing after 1m31s
CI / deploy (push) Has been skipped
Module Update
2025-12-30 14:42:30 +08:00

8.9 KiB
Raw Permalink Blame History

Next_Edu 产品需求文档 (PRD) - K12 智慧教学管理系统

版本: 2.0.0 (K12 Enterprise Edition)
状态: 规划中
最后更新: 2025-12-22
作者: Senior EdTech Product Manager
适用范围: 全校级教学管理 (教-考-练-评)


1. 角色与权限矩阵 (Complex Role Matrix)

本系统采用基于 RBAC (Role-Based Access Control) 的多维权限设计,并结合 行级安全 (Row-Level Security, RLS) 策略,确保数据隔离与行政管理的精确匹配。

1.1 角色定义与核心职责

角色 核心职责 权限特征 (Scope)
系统管理员 (Admin) 基础数据维护、账号管理、学期设置 全局系统配置,不可触碰教学业务数据内容(隐私保护)。
校长 (Principal) 全校教学概况监控、宏观统计报表 全校可见。查看所有年级、学科的统计数据(平均分、作业完成率),无修改具体的题目/作业权限。
年级主任 (Grade Head) 本年级行政管理、班级均衡度分析 年级可见。管理本年级所有行政班级;查看本年级跨学科对比;无权干涉其他年级。
教研组长 (Subject Head) 学科资源建设、命题质量把控 学科可见。管理本学科公共题库、教案模板;查看全校该学科教学质量;无权查看其他学科详情。
班主任 (Class Teacher) 班级学生管理、家校通知、综合评价 行政班可见。查看本班所有学生的跨学科成绩、考勤;发布班级公告。
任课老师 (Teacher) 备课、出卷、批改、个别辅导 教学班可见。仅能操作自己所教班级的该学科作业/考试;私有题库管理。
学生 (Student) 完成作业、参加考试、查看错题本 个人可见。仅能访问分配给自己的任务;查看个人成长档案。

1.2 关键权限辨析:年级主任 vs 教研组长

  • 维度差异:

    • 年级主任 (横向管理): 关注的是 "人" (People & Administration)。例如:高一(3)班的整体纪律如何?高一年级整体是否在期中考试中达标?他们需要跨学科的数据视图(如:某学生是否偏科)。
    • 教研组长 (纵向管理): 关注的是 "内容" (Content & Pedagogy)。例如:英语科目的“阅读理解”题型得分率全校是否偏低?公共题库的题目质量如何?他们需要跨年级但单学科的深度视图。
  • 数据可见性 (RLS 策略):

    • GradeHead_View: WHERE class.grade_id = :current_user_grade_id
    • SubjectHead_View: WHERE course.subject_id = :current_user_subject_id (可能跨所有年级)

2. 核心功能模块深度拆解

2.1 智能题库中心 (Smart Question Bank)

这是系统的核心资产库,必须支持高复杂度的题目结构。

  • 多层嵌套题目结构 (Nested Questions):

    • 场景: 英语完形填空、语文现代文阅读、理综大题。
    • 逻辑: 引入 "题干 (Stem)""子题 (Sub-question)" 的概念。
      • 父题 (Parent): 承载公共题干(如一篇 500 字的文章、一张物理实验图表)。通常不直接设分,或者设总分。
      • 子题 (Child): 依附于父题,是具体的答题点(选择、填空、简答)。每个子题有独立的分值、答案和解析。
    • 交互: 组卷时,拖动“父题”,所有“子题”必须作为一个原子整体跟随移动,不可拆分。
  • 知识点图谱 (Knowledge Graph):

    • 结构: 树状结构 (Tree)。例如:数学 -> 代数 -> 函数 -> 二次函数 -> 二次函数的图像
    • 关联:
      • 多对多 (Many-to-Many): 一道题可能考察多个知识点(综合题)。
      • 权重: (可选高级需求) 标记主要考点与次要考点。

2.2 课本与大纲映射 (Textbook & Curriculum)

  • 课本数字化:
    • 系统预置主流教材版本 (如人教版、北师大版)。
    • 核心映射: Textbook Chapter (课本章节) <--> Knowledge Point (知识点)。
    • 价值: 老师备课时,只需选择“必修一 第一章”,系统自动推荐关联的“集合”相关题目,无需手动去海量题库搜索。

2.3 试卷/作业组装引擎 (Assembly Engine)

  • 智能筛选: 支持交集筛选(同时包含“力学”和“三角函数”的题目)。
  • AB 卷生成: 针对防作弊场景支持题目乱序或选项乱序Shuffle
  • 作业分层: 支持“必做题”与“选做题”设置,满足分层教学需求。

2.4 消息通知中心 (Notification System)

分级分策略的消息分发:

  • 强提醒 (High Priority): 系统公告、考试开始提醒。通过站内信 + 弹窗 + (集成)短信/微信模板消息。
  • 业务流 (Medium Priority): 作业发布、成绩出炉。站内红点 + 列表推送。
  • 弱提醒 (Low Priority): 错题本更新、周报生成。仅在进入相关模块时提示。

3. 数据实体关系推演 (Data Entity Relationships)

基于 MySQL 关系型数据库的设计方案。

3.1 核心实体模型 (ER Draft)

  1. SysUser: id, username, role, school_id
  2. TeacherProfile: user_id, is_grade_head, is_subject_head
  3. Class: id, grade_level (e.g., 10), class_name (e.g., "3班"), homeroom_teacher_id
  4. Subject: id, name (e.g., "Math")
  5. Course: id, class_id, subject_id, teacher_id (核心教学关系表: 谁教哪个班的哪门课)

3.2 题库与知识点设计 (关键难点)

Table: knowledge_points (知识点树)

  • id: UUID
  • subject_id: FK
  • name: VARCHAR
  • parent_id: UUID (Self-reference, Root is NULL)
  • level: INT (1, 2, 3...)
  • code: VARCHAR (e.g., "M-ALG-01-02" 用于快速检索)

Table: questions (支持嵌套)

  • id: UUID
  • content: TEXT (HTML/Markdown, store images as URLs)
  • type: ENUM ('SINGLE', 'MULTI', 'FILL', 'ESSAY', 'COMPOSITE')
  • parent_id: UUID (Self-reference, 核心设计)
    • If NULL: 这是一道独立题目 OR 复合题的大题干。
    • If NOT NULL: 这是一个子题目,属于 parent_id 对应的题干。
  • difficulty: INT (1-5)
  • answer: TEXT (JSON structure for structured answers)
  • analysis: TEXT (解析)
  • created_by: FK (Teacher)
  • scope: ENUM ('PUBLIC', 'PRIVATE')

Table: question_knowledge (题目-知识点关联)

  • question_id: FK
  • knowledge_point_id: FK
  • Primary Key: (question_id, knowledge_point_id)

3.3 课本映射设计

Table: textbooks

  • id: UUID
  • name: VARCHAR
  • grade_level: INT
  • subject_id: FK

Table: textbook_chapters

  • id: UUID
  • textbook_id: FK
  • name: VARCHAR
  • parent_id: UUID (Sections within Chapters)
  • content: TEXT (Rich text content of the chapter/section) -- [ADDED for Content Viewing]
  • order: INT

Table: chapter_knowledge_mapping

  • chapter_id: FK
  • knowledge_point_id: FK
  • 解释: 这张表是连接“教学进度”与“底层知识”的桥梁。

4. 关键业务流程 (User Flows)

4.1 智能组卷与发布流程 (Exam Creation Flow)

这是一个高频且复杂的路径,需要极高的流畅度。

  1. 启动组卷:

    • 老师进入 [教学工作台] -> 点击 [新建试卷/作业]。
    • 输入基本信息(名称、考试时长、总分)。
  2. 设定范围 (锚定课本):

    • 老师选择教材版本:人教版高中数学必修一
    • 选择章节:勾选 第一章 集合第二章 函数概念
    • 系统动作: 后台查询 chapter_knowledge_mapping,提取出这几章对应的所有 knowledge_points
  3. 筛选题目:

    • 系统展示题目列表,默认过滤条件为上述提取的知识点。
    • 老师增加筛选:难度: 中等, 题型: 选择题
    • 处理嵌套题: 如果筛选结果包含一个“完形填空”的子题,系统在 UI 上必须强制展示其对应的父题干,并提示老师“需整体添加”。
  4. 加入试题篮 (Cart):

    • 老师点击“+”号。
    • 试题篮动态更新:当前题目数: 15, 预计总分: 85
  5. 试卷精修 (Refine):

    • 进入“试卷预览”模式。
    • 调整题目顺序 (Drag & drop)。
    • 修改某道题的分值(覆盖默认分值)。
  6. 发布设置:

    • 选择发布对象:高一(3)班, 高一(5)班 (基于 Course 表权限)。
    • 设置时间:开始时间, 截止时间
    • 发布模式:在线作答线下答题卡 (若线下,系统生成 PDF 和答题卡样式)。
  7. 完成:

    • 学生端收到 Notifications 推送。
    • Exams 表生成记录,ExamAllocations 表为每个班级/学生生成状态记录。