在线考试是教育信息化中最典型的业务场景之一:题库要能沉淀、试卷要能灵活组卷、考试要能限时防作弊、成绩要能自动评分并统计。本文介绍一套基于 Spring Boot + Vue3 前后端分离架构的在线考试管理系统,从功能设计、技术选型到业务闭环做一次完整梳理。
源码:点头像--个人简介
一、系统定位
系统采用统一的管理后台界面,通过角色权限区分管理员与学生的功能视图:
- 管理员:题库管理、考试组织、成绩阅卷、学生管理、系统管理
- 学生:在线答题、查看我的考试、查看我的成绩
不同角色登录后只能访问和操作自己权限范围内的数据,做到菜单级与按钮级的双重隔离。
二、功能模块
系统围绕在线考试的核心业务流程设计,模块划分清晰:
| 模块 | 主要功能 |
|---|---|
| 登录 | 账号认证、身份识别 |
| 首页 | 数据概览 |
| 考试中心 | 我的考试、在线答题(倒计时、答题卡、自动交卷)、我的成绩 |
| 成绩管理 | 成绩明细(人工阅卷)、成绩统计(概览卡片、及格率分析) |
| 考试管理 | 试卷管理(组卷、发布)、考试安排(发布、参考范围设置) |
| 题库管理 | 科目管理、题目管理(单选、多选、判断、简答) |
| 学生管理 | 学生列表 |
| 系统管理 | 菜单管理、角色管理、账号管理 |

其中在线答题是体验最集中的环节:倒计时到点自动交卷,答题卡实时标记作答状态,学生可随时跳转题目、检查未答项,避免漏答。

三、技术选型
| 层次 | 技术 |
|---|---|
| 后端 | Java 21 + Spring Boot 2.7 |
| 持久层 | MyBatis-Plus + Druid 连接池 |
| 安全 | JWT 鉴权 + MD5 加密 |
| 前端 | Vue 3 + Element Plus + Axios |
| 数据库 | MySQL 8.0 |
| 构建工具 | Maven 3.9 |
后端基于 Spring Boot 构建 RESTful API,前端通过 Axios 与统一接口交互,前后端职责边界清晰,便于独立开发与部署。
四、关键技术点
1. 前后端分离架构
后端只提供统一的 RESTful 接口,不渲染页面;前端使用 Vue 3 + Element Plus 构建统一的管理系统界面。接口层与视图层解耦,前端可独立迭代,后端可独立扩容。
2. RBAC 权限控制体系
系统实现了基于角色的访问控制(RBAC):
- 通过菜单管理、角色管理、账号管理完成权限配置
- 角色与菜单、角色与账号之间通过关联表建立映射
- 登录后动态生成菜单树,实现按钮级权限控制
不同角色看到的菜单与可操作按钮各不相同,权限粒度可精确到单个操作。

3. 考试业务闭环
从管理员创建科目、录入题目、组卷发布、安排考试,到学生在线答题、自动评分与人工阅卷,再到成绩统计与数据分析,覆盖在线考试的完整生命周期。
- 客观题(单选、多选、判断):提交后自动评分
- 主观题(简答):进入人工阅卷流程
- 成绩统计:概览卡片 + 及格率分析,直观呈现考试结果
4. 数据库设计
系统涉及科目、题目、试卷、试卷题目关联、考试安排、考试记录、答题明细、学生、管理员、角色、菜单以及多张关联表,属于典型的多表关联场景,对数据库设计与 SQL 查询优化有较高要求。
五、解决的问题
- 考试组织效率低:传统线下考试需要人工出卷、印卷、阅卷,系统将组卷、发布、答题、评分全流程线上化。
- 成绩统计繁琐:客观题自动评分,主观题在线阅卷,成绩实时汇总并生成及格率分析。
- 权限管理混乱:RBAC 模型让管理员与学生各司其职,数据与操作严格隔离。
- 题库难以沉淀:科目与题目分层管理,题目可复用,组卷时按需抽取。
六、环境要求
- 前端:Node.js 16+
- 后端:Java 21
- 数据库:MySQL 8.0
- 构建工具:Maven 3.9
七、总结
这套在线考试管理系统以真实业务场景为蓝本,把 Spring Boot 后端开发、Vue3 管理系统开发、RBAC 权限设计、多表数据库设计串联成一个完整闭环。对于希望从单体 CRUD 迈向企业级应用开发的开发者来说,是一个覆盖面广、业务逻辑真实的实践项目。