# 课程题库智能组卷与评阅系统 **Repository Path**: waqwb/question ## Basic Information - **Project Name**: 课程题库智能组卷与评阅系统 - **Description**: 人工智能课程题库智能组卷与评阅系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-07 - **Last Updated**: 2026-02-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 人工智能课程题库智能组卷与评阅系统 ## 项目介绍 本项目是一个基于Django和Vue.js的前后端分离系统,旨在实现人工智能课程题库的智能组卷与自动评阅功能。系统支持多种题型管理、基于模板的智能组卷、客观题自动评阅等核心功能,为教师提供高效的题库管理和试卷生成工具,为学生提供便捷的在线考试和成绩查询体验。 ## 技术栈 ### 后端 - **框架**: Django 5.2.11 - **API框架**: Django REST Framework 3.16.1 - **数据库**: SQLite (默认) / MySQL / PostgreSQL - **认证**: Token Authentication - **CORS**: django-cors-headers ### 前端 - **框架**: Vue 3 - **构建工具**: Vite 7.2.5 - **UI库**: Element Plus - **路由**: Vue Router 4 - **HTTP客户端**: Axios ## 系统架构 本系统采用前后端分离架构,具体如下: ``` ┌─────────────────┐ ┌─────────────────┐ │ │ │ │ │ 前端应用 │◄─────────► 后端API │ │ (Vue.js + Vite) │ HTTP │ (Django REST) │ │ │ │ │ └─────────────────┘ └─────────────────┘ ▲ │ ▼ ┌─────────────────┐ │ │ │ 数据库 │ │ (SQLite/MySQL) │ │ │ └─────────────────┘ ``` ## 核心功能 ### 1. 题库管理 - 支持多种题型:选择题、判断题、填空题、简答题 - 按知识点、难度等级分类管理 - 批量导入导出试题 - 题目审核和状态管理 ### 2. 智能组卷 - 基于模板快速生成试卷 - 支持随机组卷和定向组卷 - 自动计算试卷难度和覆盖度 - 多种组卷策略配置 ### 3. 自动评阅 - 客观题自动评阅 - 主观题人工评阅辅助 - 成绩分析和统计报表 - 答题记录和反馈管理 ### 4. 用户管理 - 支持教师和学生角色 - 基于Token的身份认证 - 个人信息管理 - 权限控制 ## 目录结构 ### 后端项目结构 ``` exam_system/ ├── exam_system/ # 项目配置目录 │ ├── __init__.py │ ├── settings.py # 项目设置 │ ├── urls.py # 主URL配置 │ └── wsgi.py ├── questions/ # 题库管理应用 │ ├── migrations/ # 数据库迁移文件 │ ├── models.py # 数据库模型 │ ├── serializers.py # 序列化器 │ ├── views.py # API视图 │ └── urls.py # 应用URL配置 ├── exams/ # 试卷管理应用 │ ├── migrations/ # 数据库迁移文件 │ ├── models.py # 数据库模型 │ ├── serializers.py # 序列化器 │ ├── views.py # API视图 │ └── urls.py # 应用URL配置 ├── users/ # 用户管理应用 │ ├── migrations/ # 数据库迁移文件 │ ├── models.py # 数据库模型 │ ├── serializers.py # 序列化器 │ ├── views.py # API视图 │ └── urls.py # 应用URL配置 └── manage.py # 项目管理脚本 ``` ### 前端项目结构 ``` frontend/ ├── public/ # 静态资源 ├── src/ # 源代码 │ ├── assets/ # 静态文件 │ ├── components/ # 组件 │ ├── views/ # 页面视图 │ │ ├── questions/ # 题库管理视图 │ │ ├── exams/ # 试卷管理视图 │ │ └── ... # 其他视图 │ ├── router/ # 路由配置 │ ├── api/ # API服务 │ ├── App.vue # 根组件 │ └── main.js # 入口文件 ├── index.html # HTML模板 ├── package.json # 依赖配置 └── vite.config.js # Vite配置 ``` ## 安装与运行 ### 后端安装 1. **克隆项目** 2. **安装依赖** ```bash cd exam_system pip install -r requirements.txt ``` 3. **配置数据库** - 默认使用SQLite数据库,无需额外配置 - 如需使用MySQL或PostgreSQL,请修改 `exam_system/settings.py` 中的数据库配置 4. **数据库迁移** ```bash python manage.py migrate ``` 5. **创建超级用户** ```bash python manage.py createsuperuser ``` 6. **启动开发服务器** ```bash python manage.py runserver ``` 后端API将运行在 `http://localhost:8000/api/` ### 前端安装 1. **进入前端目录** ```bash cd frontend ``` 2. **安装依赖** ```bash npm install ``` 3. **启动开发服务器** ```bash npm run dev ``` 前端应用将运行在 `http://localhost:5173/` ## API文档 ### 认证相关API | 端点 | 方法 | 功能 | |------|------|------| | `/api/users/auth/login/` | POST | 用户登录 | | `/api/users/auth/register/` | POST | 用户注册 | | `/api/users/auth/logout/` | POST | 用户登出 | | `/api/users/users/` | GET | 获取用户列表 | ### 题库相关API | 端点 | 方法 | 功能 | |------|------|------| | `/api/questions/questions/` | GET | 获取题目列表 | | `/api/questions/questions/` | POST | 创建题目 | | `/api/questions/questions/:id/` | GET | 获取题目详情 | | `/api/questions/questions/:id/` | PUT | 更新题目 | | `/api/questions/questions/:id/` | DELETE | 删除题目 | | `/api/questions/question-types/` | GET | 获取题目类型列表 | | `/api/questions/difficulty-levels/` | GET | 获取难度级别列表 | | `/api/questions/knowledge-points/` | GET | 获取知识点列表 | ### 试卷相关API | 端点 | 方法 | 功能 | |------|------|------| | `/api/exams/templates/` | GET | 获取试卷模板列表 | | `/api/exams/templates/` | POST | 创建试卷模板 | | `/api/exams/templates/:id/` | GET | 获取模板详情 | | `/api/exams/templates/:id/generate/` | POST | 根据模板生成试卷 | | `/api/exams/exams/` | GET | 获取试卷列表 | | `/api/exams/exams/` | POST | 创建试卷 | | `/api/exams/exams/:id/` | GET | 获取试卷详情 | | `/api/exams/records/` | GET | 获取考试记录列表 | | `/api/exams/answers/:id/grade/` | POST | 评阅答题 | ## 使用指南 ### 1. 教师使用流程 1. **登录系统**:使用注册的教师账号登录 2. **管理题库**: - 创建题目,设置题目类型、难度、知识点等信息 - 管理已有题目,进行编辑、删除等操作 3. **创建试卷模板**: - 设置模板名称、总分、考试时间 - 配置各类型题目的数量、难度和分值 4. **生成试卷**: - 基于模板自动生成试卷 - 手动调整试卷内容 - 发布试卷 5. **管理考试**: - 查看学生考试记录 - 评阅学生答题 - 分析考试成绩 ### 2. 学生使用流程 1. **登录系统**:使用注册的学生账号登录 2. **参加考试**: - 查看已发布的试卷 - 在线答题 - 提交试卷 3. **查看成绩**: - 查看已完成考试的成绩 - 查看答题详情和评阅反馈 ## 数据库配置接口 系统支持多种数据库后端,通过修改 `exam_system/settings.py` 中的 `DATABASES` 配置可以切换不同的数据库: ```python # 默认使用SQLite数据库 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', }, # MySQL配置 'mysql': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'exam_system', 'USER': 'root', 'PASSWORD': 'password', 'HOST': 'localhost', 'PORT': '3306', 'OPTIONS': { 'charset': 'utf8mb4', }, }, # PostgreSQL配置 'postgresql': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'exam_system', 'USER': 'postgres', 'PASSWORD': 'password', 'HOST': 'localhost', 'PORT': '5432', } } ``` 要使用其他数据库,只需将 `default` 配置修改为对应数据库的配置即可。 ## 部署建议 ### 生产环境部署 1. **后端部署** - 使用 Gunicorn 或 uWSGI 作为WSGI服务器 - 配置 Nginx 作为反向代理 - 使用 MySQL 或 PostgreSQL 作为生产数据库 - 配置 HTTPS 证书 2. **前端部署** - 执行 `npm run build` 构建生产版本 - 将构建产物部署到 Nginx 或其他静态文件服务器 - 配置 CORS 策略 3. **性能优化** - 启用数据库索引 - 使用缓存机制 - 优化API响应时间 - 合理配置服务器资源 ## 开发计划 ### 近期计划 1. **完善前端功能** - 实现题目创建和编辑界面 - 完善试卷模板配置界面 - 开发考试答题界面 2. **增强后端功能** - 实现题目批量导入导出 - 开发智能组卷算法 - 增强自动评阅能力 3. **系统优化** - 提高系统性能和稳定性 - 完善错误处理和日志记录 - 增强安全性 ### 远期计划 1. **机器学习集成** - 使用机器学习算法优化组卷策略 - 开发智能评阅系统,支持主观题自动评分 2. **数据分析功能** - 开发详细的学习行为分析 - 提供个性化学习建议 - 生成课程质量评估报告 3. **多语言支持** - 实现系统多语言界面 - 支持国际化试题和试卷 ## 贡献指南 欢迎各位开发者贡献代码和提出建议。如有问题或建议,请通过以下方式联系: - 提交 Issue - 发送 Pull Request - 联系项目维护者 ## 许可证 本项目采用 MIT 许可证,详见 LICENSE 文件。 ## 致谢 感谢所有为项目做出贡献的开发者和支持者! --- **项目地址**: https://github.com/yourusername/exam-system **文档更新时间**: 2026-02-05