README_DEV.md 8.5 KB

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

项目简介

这是一个基于 Python 开发的智能题库学习系统,旨在帮助学生进行高效的题目练习和知识掌握。系统具备题目管理、智能练习、错题本、学习进度追踪等功能,让学习更有针对性和效果。

主要功能

1. 题库管理

  • 支持多学科题目录入(数学、语文、英语等)
  • 题目分类管理(按照难度、知识点、题型等)
  • 支持多种题型(选择题、填空题、简答题等)
  • 每道题目包含详细解析和知识点说明
  • 题目标签系统,方便分类和搜索

2. 智能练习

  • 根据学生水平自动推荐适合的题目
  • 支持自选题型和难度进行练习
  • 练习过程中即时查看答案和解析
  • 练习完成后显示得分和错题分析
  • 优化推荐算法,结合用户历史表现和学习目标
  • 个性化推荐,根据用户偏好推荐题目
  • 自适应练习模式,动态调整题目难度

3. 错题本功能

  • 自动收集做错的题目
  • 错题分类整理
  • 支持错题重复练习
  • 错题数据分析,找出薄弱知识点
  • 错题原因分析,帮助用户理解错误原因
  • 错题标签,方便分类和复习
  • 错题相似题推荐,巩固薄弱知识点

4. 学习进度追踪

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

技术架构

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

数据库设计

用户表(sys_users)

  • id: 用户 ID
  • username: 用户名
  • password: 密码
  • grade: 年级
  • create_time: 创建时间
  • update_time: 更新时间
  • create_id: 创建者 ID
  • update_id: 更新者 ID
  • is_deleted: 是否删除 (0:未删除, 1:已删除)
  • delete_time: 删除时间
  • delete_id: 删除者 ID
  • preferences: 学习偏好
  • goals: 学习目标
  • learning_style: 学习风格
  • target_score: 目标分数

系统角色表(sys_roles)

  • id: 角色 ID
  • name: 角色名称
  • code: 角色代码
  • description: 角色描述
  • status: 状态(0:禁用,1:启用)
  • create_id: 创建者 ID
  • create_time: 创建时间
  • update_id: 更新者 ID
  • update_time: 更新时间
  • is_deleted: 是否删除 (0:未删除, 1:已删除)
  • delete_time: 删除时间
  • delete_id: 删除者 ID

系统用户角色表(sys_user_roles)

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

系统权限表(sys_permissions)

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

字典类型表(sys_dict_type)

  • id: 字典类型 ID
  • name: 字典名称
  • type: 字典类型
  • status: 状态(0:禁用,1:启用)
  • remark: 备注
  • create_id: 创建者 ID
  • create_time: 创建时间
  • update_id: 更新者 ID
  • update_time: 更新时间
  • is_deleted: 是否删除 (0:未删除, 1:已删除)
  • delete_time: 删除时间
  • delete_id: 删除者 ID

字典数据表(sys_dict_data)

  • id: 字典数据 ID
  • dict_type: 字典类型
  • dict_label: 字典标签
  • dict_value: 字典值
  • sort: 排序
  • status: 状态(0:禁用,1:启用)
  • remark: 备注
  • create_id: 创建者 ID
  • create_time: 创建时间
  • update_id: 更新者 ID
  • update_time: 更新时间
  • is_deleted: 是否删除 (0:未删除, 1:已删除)
  • delete_time: 删除时间
  • delete_id: 删除者 ID

题目表(questions)

  • id: 题目 ID
  • subject: 学科
  • type: 题型
  • difficulty: 难度等级
  • content: 题目内容
  • answer: 答案
  • explanation: 解析
  • knowledge_points: 相关知识点
  • version: 题目版本
  • status: 审核状态
  • tags: 题目标签
  • creator_id: 题目创建者
  • reviewer_id: 题目审核者
  • create_time: 创建时间
  • update_time: 更新时间
  • create_id: 创建者 ID
  • update_id: 更新者 ID
  • is_deleted: 是否删除 (0:未删除, 1:已删除)
  • delete_time: 删除时间
  • delete_id: 删除者 ID

练习记录表(practice_records)

  • id: 记录 ID
  • user_id: 用户 ID
  • question_id: 题目 ID
  • is_correct: 是否正确
  • practice_time: 练习时间
  • time_spent: 用时
  • steps: 答题步骤
  • thinking_time: 思考时间
  • confidence_level: 答题信心
  • feedback: 用户反馈
  • create_id: 创建者 ID
  • create_time: 创建时间
  • update_id: 更新者 ID
  • update_time: 更新时间
  • is_deleted: 是否删除 (0:未删除, 1:已删除)
  • delete_time: 删除时间
  • delete_id: 删除者 ID

知识点表(knowledge_points)

  • id: 知识点 ID
  • name: 知识点名称
  • description: 知识点描述
  • subject: 所属学科
  • difficulty: 难度等级
  • prerequisite: 先修知识点
  • create_id: 创建者 ID
  • create_time: 创建时间
  • update_id: 更新者 ID
  • update_time: 更新时间
  • is_deleted: 是否删除 (0:未删除, 1:已删除)
  • delete_time: 删除时间
  • delete_id: 删除者 ID

学习路径表(learning_paths)

  • id: 路径 ID
  • user_id: 用户 ID
  • target_knowledge_point: 目标知识点
  • path: 学习路径
  • progress: 当前进度
  • create_id: 创建者 ID
  • create_time: 创建时间
  • update_id: 更新者 ID
  • update_time: 更新时间
  • is_deleted: 是否删除 (0:未删除, 1:已删除)
  • delete_time: 删除时间
  • delete_id: 删除者 ID

考试成绩表(exam_scores)

  • id: 成绩 ID
  • user_id: 用户 ID
  • exam_name: 考试名称
  • subject: 考试科目
  • score: 考试成绩
  • total_score: 总分
  • exam_date: 考试日期
  • remark: 备注
  • create_time: 创建时间
  • update_time: 更新时间
  • create_id: 创建者 ID
  • update_id: 更新者 ID
  • is_deleted: 是否删除 (0:未删除, 1:已删除)
  • delete_time: 删除时间
  • delete_id: 删除者 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. 智能出题算法

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