README_DEV.md 9.1 KB

智能题库学习系统 (Smart Question Bank Learning System)

[Previous content remains unchanged...]

数据模型说明

BaseModel

  • 基础模型,包含 id、创建时间、更新时间等通用字段
  • 提供 CRUD 操作的基类功能
  • 继承自 SQLAlchemy 的 Base 类

UserModel

  • 用户模型,对应 sys_users 表
  • 包含用户名、密码、年级等字段
  • 与 RoleModel 多对多关系

RoleModel

  • 角色模型,对应 sys_roles 表
  • 包含角色名称、代码、描述等字段
  • 与 UserModel 和 PermissionModel 多对多关系

PermissionModel

  • 权限模型,对应 sys_permissions 表
  • 包含权限名称、代码、描述等字段
  • 与 RoleModel 多对多关系

UserRoleModel

  • 用户-角色关联表模型,对应 sys_user_roles 表
  • 包含 user_id 和 role_id 两个外键

RolePermissionModel

  • 角色-权限关联表模型,对应 sys_role_permissions 表
  • 错题原因分析,帮助用户理解错误原因
  • 错题标签,方便分类和复习
  • 错题相似题推荐,巩固薄弱知识点

4. 学习进度追踪

  • 展示每日/每周/每月的练习情况
  • 知识点掌握程度分析
  • 学习时长统计
  • 成绩进步曲线
  • 知识点掌握预测,预估用户掌握程度
  • 学习路径规划,提供个性化学习建议
  • 学习目标设置,帮助用户明确学习方向
  • 手动考试成绩录入,记录各类考试成绩
  • 考试成绩分析,生成成绩报告

技术架构

  • 后端:Python 3.13
  • 数据库:Mysql
  • 用户界面:Web 界面

数据库设计

用户表(sys_users)

  • id: 用户 ID
  • username: 用户名
  • password: 密码
  • grade: 年级
  • create_at: 创建时间
  • update_at: 更新时间
  • create_by: 创建者 ID
  • update_by: 更新者 ID
  • is_deleted: 是否删除 (0:未删除, 1:已删除)
  • delete_at: 删除时间
  • delete_by: 删除者 ID
  • preferences: 学习偏好
  • goals: 学习目标
  • learning_style: 学习风格
  • target_score: 目标分数

系统角色表(sys_roles)

  • id: 角色 ID
  • name: 角色名称
  • code: 角色代码
  • description: 角色描述
  • status: 状态(0:禁用,1:启用)
  • create_by: 创建者 ID
  • create_at: 创建时间
  • update_by: 更新者 ID
  • update_at: 更新时间
  • is_deleted: 是否删除 (0:未删除, 1:已删除)
  • delete_at: 删除时间
  • delete_by: 删除者 ID

系统用户角色表(sys_user_roles) 用户与角色多对多

  • id: 主键 ID
  • user_id: 用户 ID
  • role_id: 角色 ID
  • create_at: 创建时间
  • create_by: 创建者 ID

系统权限表(sys_permissions)

  • id: 权限 ID
  • code: 权限代码
  • score: 权限作用域 U: 用户,R: 角色
  • value: 权限值
  • description: 权限描述
  • create_at: 创建时间
  • create_by: 创建者 ID

字典类型表(sys_dict_type) 可以有多个字典数据,一对多

  • id: 字典类型 ID
  • name: 字典名称
  • type: 字典类型
  • status: 状态(0:禁用,1:启用)
  • remark: 备注
  • create_by: 创建者 ID
  • create_at: 创建时间
  • update_by: 更新者 ID
  • update_at: 更新时间
  • is_deleted: 是否删除 (0:未删除, 1:已删除)
  • delete_at: 删除时间
  • delete_by: 删除者 ID

字典数据表(sys_dict_data)

  • id: 字典数据 ID
  • dict_type: 字典类型
  • dict_label: 字典标签
  • dict_value: 字典值
  • sort: 排序
  • status: 状态(0:禁用,1:启用)
  • remark: 备注
  • create_by: 创建者 ID
  • create_at: 创建时间
  • update_by: 更新者 ID
  • update_at: 更新时间
  • is_deleted: 是否删除 (0:未删除, 1:已删除)
  • delete_at: 删除时间
  • delete_by: 删除者 ID

题目表(questions) 包含多个选项,一对多

  • id: 题目 ID
  • subject: 学科
  • type: 题型
  • difficulty: 难度等级
  • content: 题目内容
  • answer: 答案
  • explanation: 解析
  • version: 题目版本
  • tags: 题目标签
  • create_at: 创建时间
  • update_at: 更新时间
  • create_by: 创建者 ID
  • update_by: 更新者 ID
  • is_deleted: 是否删除 (0:未删除, 1:已删除)
  • delete_at: 删除时间
  • delete_by: 删除者 ID

题目选项表(question_options)

  • id: 选项 ID
  • question_id: 题目 ID
  • content: 选项内容
  • is_correct: 是否正确答案
  • create_at: 创建时间
  • update_at: 更新时间
  • create_by: 创建者 ID
  • update_by: 更新者 ID
  • is_deleted: 是否删除 (0:未删除, 1:已删除)
  • delete_at: 删除时间
  • delete_by: 删除者 ID

知识点表(knowledge_points)

  • id: 知识点 ID
  • name: 知识点名称
  • description: 知识点描述
  • subject: 所属学科
  • difficulty: 难度等级
  • prerequisite: 先修知识点
  • create_by: 创建者 ID
  • create_at: 创建时间
  • update_by: 更新者 ID
  • update_at: 更新时间
  • is_deleted: 是否删除 (0:未删除, 1:已删除)
  • delete_at: 删除时间
  • delete_by: 删除者 ID

题目知识点关联表(question_knowledge_points) 多对多

  • id: 关联 ID
  • question_id: 题目 ID
  • knowledge_point_id: 知识点 ID
  • create_at: 创建时间
  • create_by: 创建者 ID

错题表(wrong_questions)

  • id: 错题 ID
  • user_id: 用户 ID
  • question_id: 题目 ID
  • user_answer: 用户答案
  • correct_answer: 正确答案
  • analysis: 解析

练习表(exercises)

  • id: 练习 ID
  • name: 练习名称
  • subject: 学科
  • difficulty: 难度等级
  • type: 涉及的题型
  • create_by: 创建者 ID
  • create_at: 创建时间
  • update_by: 更新者 ID
  • update_at: 更新时间
  • is_deleted: 是否删除 (0:未删除, 1:已删除)
  • delete_at: 删除时间
  • delete_by: 删除者 ID

练习题目关联表(exercise_question_relations) 一对多

  • id: 关联 ID
  • exercise_id: 练习 ID
  • question_id: 题目 ID
  • create_by: 创建者 ID
  • create_at: 创建时间

练习记录表(exercise_records)

  • id: 练习记录 ID
  • user_id: 用户 ID
  • exercise_id: 练习 ID
  • start_time: 开始时间
  • end_time: 结束时间
  • duration: 练习时长
  • score: 练习得分
  • create_by: 创建者 ID
  • create_at: 创建时间

练习记录详情表(exercise_record_details) 一对多

  • id: 练习记录详情 ID
  • exercise_record_id: 练习记录 ID
  • question_id: 题目 ID
  • correct_answer: 正确答案
  • user_answer: 用户答案
  • is_correct: 是否正确
  • last_update_time: 最后更新时间

考试成绩表(exam_scores)

  • id: 成绩 ID
  • exercise_id: 练习 ID (可选,用于记录考试成绩)
  • user_id: 用户 ID
  • exam_name: 考试名称
  • subject: 考试科目
  • score: 考试成绩
  • total_score: 总分
  • exam_date: 考试日期
  • remark: 备注
  • create_at: 创建时间
  • update_at: 更新时间
  • create_by: 创建者 ID
  • update_by: 更新者 ID
  • is_deleted: 是否删除 (0:未删除, 1:已删除)
  • delete_at: 删除时间
  • delete_by: 删除者 ID

使用说明

  1. 系统启动后,首先需要登录账号,账号由管理员派发
  2. 选择想要练习的学科和题型
  3. 开始答题,系统会记录答题情况
  4. 可以随时查看错题本和学习进度
  5. 在成绩管理页面手动录入考试成绩

项目结构

smart-question-bank/
├── SERVER/               # 后端服务
│   ├── app/              # APP目录
│   │   ├── common/       # 公共模块
│   │   ├── exception/    # 异常处理
│   │   ├── models/       # 数据模型
│   │   ├── stores/       # 数据持久层
│   │   ├── services/     # 业务逻辑
│   │   ├── controllers/  # API控制器
│   │   ├── middleware/   # 中间件
│   │   ├── utils/        # 工具类
│   │   ├── config/       # 配置管理
│   │   ├── logger/       # 日志管理
│   │   ├── data_seeder/  # 数据初始化
│   │   └── main.py       # 程序入口
│   ├── tests/            # 测试目录
│   ├── requirements.txt  # 依赖包列表
│   └── Dockerfile        # Docker配置
├── UI/                   # 前端服务
│   ├── vue/              # Web项目
│   │   ├── public/       #
│   │   ├── src/          #
│   │   └── Dockerfile    # Docker配置
│   └── app/              # 移动端项目
│       └── src/          #
├── docker-compose.yml    # Docker Compose配置
├── README.md             # 项目说明
└── .gitignore            # Git忽略配置

调用顺序: controllers => services => stores => models

安装与运行

  1. 安装依赖

    pip install -r requirements.txt
    
  2. 配置数据库

  • 创建 MySQL 数据库
  1. 运行系统

    python main.py
    

已实现功能

1. 图形用户界面

  • 使用 vue3 开发桌面应用界面
  • 提供友好的用户交互体验
  • 支持题目展示、答题、结果查看等功能

2. 在线题库更新

  • 实现题库云端同步功能
  • 支持自动更新最新题目
  • 提供题目审核机制

3. 做题时间限制

  • 支持按题型设置时间限制
  • 提供倒计时功能
  • 超时自动提交答案

4. 班级管理

  • 教师创建和管理班级
  • 学生加入班级
  • 班级练习统计和分析

5. 题目难度评估

  • 基于学生答题数据自动评估题目难度
  • 动态调整题目难度系数
  • 提供难度分布可视化

6. 智能出题算法

  • 基于知识图谱的题目推荐
  • 个性化出题策略
  • 自适应难度调整