本项目是数据库原理课程设计项目,重点体现数据库设计和数据库驱动业务实现,不做大型在线教育平台。
- 后端:Spring Boot、MyBatis、MySQL、Lombok、JWT、BCrypt、Redis
- 前端:HTML、CSS、JavaScript、Ajax
- 工具:IntelliJ IDEA、Navicat/SQLyog、Git、Visio
Redis 仅用于登录 Token 状态管理、退出登录、Token 主动失效和登录/注册限流,不缓存题库、试卷、成绩等核心业务数据。
- ADMIN:用户管理、角色管理、登录日志查看
- TEACHER:题库管理、试卷管理、发布考试、查看学生成绩
- STUDENT:查看考试、在线答题、提交试卷、查看成绩和错题
普通注册默认绑定 STUDENT 角色。ADMIN 和 TEACHER 账号通过初始化 SQL 创建,避免用户自行注册为高权限角色。
- sys_user 与 sys_role 通过 sys_user_role 建立多对多关系
- paper 与 question 通过 paper_question 建立多对多关系
- 提交试卷使用事务保证 answer_record、wrong_question、exam_record 一致
- 使用索引优化高频查询
- 使用 v_student_score 视图支持学生成绩查询
- 使用 answer_record 快照字段保存历史考试题目状态
初始化脚本中的测试账号统一密码为 123456。
- 管理员:admin
- 教师:teacher01
- 学生:student01
项目已在 .mvn/local-settings.xml 中固定使用 C 盘 Maven 仓库:
C:/Users/ASUS/.m2/repository
编译命令:
mvn -o -DskipTests compile如果后续新增依赖导致本地仓库缺失,再取消 -o 或手动下载依赖。
- 启动 MySQL 和 Redis。
- 执行
database/schema.sql。 - 执行
database/init.sql。 - 按本机环境修改
src/main/resources/application.yml的数据库账号密码。 - 启动项目:
mvn spring-boot:run- 浏览器访问:
http://localhost:8080/login.html
认证模块:
POST /api/auth/register用户注册,默认绑定 STUDENTPOST /api/auth/login用户登录,返回 JWTGET /api/auth/userInfo当前用户信息POST /api/auth/logout退出登录,删除 Redis Token
题库模块:
POST /api/questions新增题目PUT /api/questions/{id}修改题目DELETE /api/questions/{id}逻辑删除题目GET /api/questions分页筛选题目GET /api/questions/{id}查询题目详情
试卷模块:
POST /api/papers创建试卷GET /api/papers查询试卷列表GET /api/papers/{id}查询试卷详情POST /api/papers/{paperId}/questions给试卷添加题目DELETE /api/papers/{paperId}/questions/{questionId}移除试卷题目GET /api/papers/{paperId}/questions查询试卷题目PUT /api/papers/{paperId}/publish发布试卷并自动汇总总分
考试模块:
GET /api/exams/available学生查询可参加考试POST /api/exams/{paperId}/start学生开始考试GET /api/exams/{examId}/questions获取考试题目,不返回正确答案POST /api/exams/{examId}/submit提交试卷,事务判分GET /api/exams/my-scores查询我的成绩GET /api/exams/{examId}/detail查询考试详情
错题与统计模块:
GET /api/wrong-questions学生查询错题本GET /api/statistics/paper/{paperId}教师查询试卷统计GET /api/statistics/paper/{paperId}/records教师查询试卷学生考试记录
- 数据库设计:schema.sql、init.sql、索引、视图、ER 说明
- 后端基础工程:统一返回、异常处理、MyBatis、跨域、Redis 配置
- 登录注册模块:BCrypt、JWT、Redis Token、登录日志、限流
- 题库管理模块
- 试卷管理模块
- 在线考试模块
- 成绩、错题、统计模块
- 原生 HTML + Ajax 前端页面
- 测试用例、截图、课程设计报告材料