|
@@ -0,0 +1,237 @@
|
|
|
+# 智能题库学习系统 (Smart Question Bank Learning System)
|
|
|
+
|
|
|
+## 项目简介
|
|
|
+
|
|
|
+这是一个基于 Python 开发的智能题库学习系统,旨在帮助学生进行高效的题目练习和知识掌握。系统具备题目管理、智能练习、错题本、学习进度追踪等功能,让学习更有针对性和效果。
|
|
|
+
|
|
|
+## 主要功能
|
|
|
+
|
|
|
+### 1. 题库管理
|
|
|
+
|
|
|
+- 支持多学科题目录入(数学、语文、英语等)
|
|
|
+- 题目分类管理(按照难度、知识点、题型等)
|
|
|
+- 支持多种题型(选择题、填空题、简答题等)
|
|
|
+- 每道题目包含详细解析和知识点说明
|
|
|
+- 题目版本控制,记录修改历史
|
|
|
+- 题目审核流程,确保题目质量
|
|
|
+- 题目标签系统,方便分类和搜索
|
|
|
+
|
|
|
+### 2. 智能练习
|
|
|
+
|
|
|
+- 根据学生水平自动推荐适合的题目
|
|
|
+- 支持自选题型和难度进行练习
|
|
|
+- 练习过程中即时查看答案和解析
|
|
|
+- 练习完成后显示得分和错题分析
|
|
|
+- 优化推荐算法,结合用户历史表现和学习目标
|
|
|
+- 个性化推荐,根据用户偏好推荐题目
|
|
|
+- 自适应练习模式,动态调整题目难度
|
|
|
+
|
|
|
+### 3. 错题本功能
|
|
|
+
|
|
|
+- 自动收集做错的题目
|
|
|
+- 错题分类整理
|
|
|
+- 支持错题重复练习
|
|
|
+- 错题数据分析,找出薄弱知识点
|
|
|
+- 错题原因分析,帮助用户理解错误原因
|
|
|
+- 错题标签,方便分类和复习
|
|
|
+- 错题相似题推荐,巩固薄弱知识点
|
|
|
+
|
|
|
+### 4. 学习进度追踪
|
|
|
+
|
|
|
+- 展示每日/每周/每月的练习情况
|
|
|
+- 知识点掌握程度分析
|
|
|
+- 学习时长统计
|
|
|
+- 成绩进步曲线
|
|
|
+- 知识点掌握预测,预估用户掌握程度
|
|
|
+- 学习路径规划,提供个性化学习建议
|
|
|
+- 学习目标设置,帮助用户明确学习方向
|
|
|
+- 手动考试成绩录入,记录各类考试成绩
|
|
|
+- 考试成绩分析,生成成绩报告
|
|
|
+
|
|
|
+## 技术架构
|
|
|
+
|
|
|
+- 后端:Python 3.13
|
|
|
+- 数据库:Mysql
|
|
|
+- 用户界面:Web 界面
|
|
|
+
|
|
|
+## 数据库设计
|
|
|
+
|
|
|
+### 题目表(questions)
|
|
|
+
|
|
|
+- id: 题目 ID
|
|
|
+- subject: 学科
|
|
|
+- type: 题型
|
|
|
+- difficulty: 难度等级
|
|
|
+- content: 题目内容
|
|
|
+- answer: 答案
|
|
|
+- explanation: 解析
|
|
|
+- knowledge_points: 相关知识点
|
|
|
+- version: 题目版本
|
|
|
+- status: 审核状态
|
|
|
+- tags: 题目标签
|
|
|
+- creator_id: 题目创建者
|
|
|
+- reviewer_id: 题目审核者
|
|
|
+
|
|
|
+### 用户表(users)
|
|
|
+
|
|
|
+- id: 用户 ID
|
|
|
+- username: 用户名
|
|
|
+- password: 密码
|
|
|
+- grade: 年级
|
|
|
+- create_time: 创建时间
|
|
|
+- preferences: 学习偏好
|
|
|
+- goals: 学习目标
|
|
|
+- learning_style: 学习风格
|
|
|
+- target_score: 目标分数
|
|
|
+
|
|
|
+### 练习记录表(practice_records)
|
|
|
+
|
|
|
+- id: 记录 ID
|
|
|
+- user_id: 用户 ID
|
|
|
+- question_id: 题目 ID
|
|
|
+- is_correct: 是否正确
|
|
|
+- practice_time: 练习时间
|
|
|
+- time_spent: 用时
|
|
|
+- steps: 答题步骤
|
|
|
+- thinking_time: 思考时间
|
|
|
+- confidence_level: 答题信心
|
|
|
+- feedback: 用户反馈
|
|
|
+
|
|
|
+### 知识点表(knowledge_points)
|
|
|
+
|
|
|
+- id: 知识点 ID
|
|
|
+- name: 知识点名称
|
|
|
+- description: 知识点描述
|
|
|
+- subject: 所属学科
|
|
|
+- difficulty: 难度等级
|
|
|
+- prerequisite: 先修知识点
|
|
|
+
|
|
|
+### 学习路径表(learning_paths)
|
|
|
+
|
|
|
+- id: 路径 ID
|
|
|
+- user_id: 用户 ID
|
|
|
+- target_knowledge_point: 目标知识点
|
|
|
+- path: 学习路径
|
|
|
+- progress: 当前进度
|
|
|
+
|
|
|
+### 考试成绩表(exam_scores)
|
|
|
+
|
|
|
+- id: 成绩 ID
|
|
|
+- user_id: 用户 ID
|
|
|
+- exam_name: 考试名称
|
|
|
+- subject: 考试科目
|
|
|
+- score: 考试成绩
|
|
|
+- total_score: 总分
|
|
|
+- exam_date: 考试日期
|
|
|
+- remark: 备注
|
|
|
+
|
|
|
+## 使用说明
|
|
|
+
|
|
|
+1. 系统启动后,首先需要注册/登录账号
|
|
|
+2. 选择想要练习的学科和题型
|
|
|
+3. 开始答题,系统会记录答题情况
|
|
|
+4. 可以随时查看错题本和学习进度
|
|
|
+5. 在成绩管理页面手动录入考试成绩
|
|
|
+
|
|
|
+## 项目结构
|
|
|
+
|
|
|
+```
|
|
|
+smart-question-bank/
|
|
|
+├── backend/ # 后端服务
|
|
|
+│ ├── src/ # 源代码目录
|
|
|
+│ │ ├── common/ # 公共模块
|
|
|
+│ │ ├── exception/ # 异常处理
|
|
|
+│ │ ├── models/ # 数据模型
|
|
|
+│ │ ├── services/ # 业务逻辑
|
|
|
+│ │ ├── controllers/ # API控制器
|
|
|
+│ │ ├── middleware/ # 中间件
|
|
|
+│ │ ├── utils/ # 工具类
|
|
|
+│ │ ├── config/ # 配置文件
|
|
|
+│ │ ├── migrations/ # 数据库迁移
|
|
|
+│ │ └── main.py # 程序入口
|
|
|
+│ ├── tests/ # 测试目录
|
|
|
+│ ├── requirements.txt # 依赖包列表
|
|
|
+│ └── Dockerfile # Docker配置
|
|
|
+├── frontend/ # 前端应用
|
|
|
+│ ├── public/ # 静态资源
|
|
|
+│ ├── src/ # 源代码目录
|
|
|
+│ │ ├── assets/ # 静态资源
|
|
|
+│ │ ├── components/ # 通用组件
|
|
|
+│ │ ├── views/ # 页面视图
|
|
|
+│ │ ├── router/ # 路由配置
|
|
|
+│ │ ├── store/ # 状态管理
|
|
|
+│ │ ├── api/ # API接口
|
|
|
+│ │ ├── utils/ # 工具函数
|
|
|
+│ │ ├── styles/ # 全局样式
|
|
|
+│ │ └── main.js # 程序入口
|
|
|
+│ ├── tests/ # 测试目录
|
|
|
+│ ├── package.json # 项目配置
|
|
|
+│ ├── vue.config.js # Vue配置
|
|
|
+│ └── Dockerfile # Docker配置
|
|
|
+├── docs/ # 文档目录
|
|
|
+│ ├── api/ # API文档
|
|
|
+│ └── design/ # 设计文档
|
|
|
+├── scripts/ # 脚本目录
|
|
|
+│ ├── deploy/ # 部署脚本
|
|
|
+│ └── migration/ # 数据迁移脚本
|
|
|
+├── docker-compose.yml # Docker Compose配置
|
|
|
+├── README.md # 项目说明
|
|
|
+└── .gitignore # Git忽略配置
|
|
|
+```
|
|
|
+
|
|
|
+## 安装与运行
|
|
|
+
|
|
|
+1. 安装依赖
|
|
|
+
|
|
|
+```bash
|
|
|
+pip install -r requirements.txt
|
|
|
+```
|
|
|
+
|
|
|
+2. 配置数据库
|
|
|
+
|
|
|
+- 创建 MySQL 数据库
|
|
|
+- 修改 src/common/config.py 中的数据库连接配置
|
|
|
+
|
|
|
+3. 运行系统
|
|
|
+
|
|
|
+```bash
|
|
|
+python src/main.py
|
|
|
+```
|
|
|
+
|
|
|
+## 已实现功能
|
|
|
+
|
|
|
+### 1. 图形用户界面
|
|
|
+
|
|
|
+- 使用 PyQt5 开发桌面应用界面
|
|
|
+- 提供友好的用户交互体验
|
|
|
+- 支持题目展示、答题、结果查看等功能
|
|
|
+
|
|
|
+### 2. 在线题库更新
|
|
|
+
|
|
|
+- 实现题库云端同步功能
|
|
|
+- 支持自动更新最新题目
|
|
|
+- 提供题目审核机制
|
|
|
+
|
|
|
+### 3. 做题时间限制
|
|
|
+
|
|
|
+- 支持按题型设置时间限制
|
|
|
+- 提供倒计时功能
|
|
|
+- 超时自动提交答案
|
|
|
+
|
|
|
+### 4. 班级管理
|
|
|
+
|
|
|
+- 教师创建和管理班级
|
|
|
+- 学生加入班级
|
|
|
+- 班级练习统计和分析
|
|
|
+
|
|
|
+### 5. 题目难度评估
|
|
|
+
|
|
|
+- 基于学生答题数据自动评估题目难度
|
|
|
+- 动态调整题目难度系数
|
|
|
+- 提供难度分布可视化
|
|
|
+
|
|
|
+### 6. 智能出题算法
|
|
|
+
|
|
|
+- 基于知识图谱的题目推荐
|
|
|
+- 个性化出题策略
|
|
|
+- 自适应难度调整
|