# 本科毕设-基于SpringBoot+Vue的蓝天在线考试系统 **Repository Path**: nllg2002/exam_system ## Basic Information - **Project Name**: 本科毕设-基于SpringBoot+Vue的蓝天在线考试系统 - **Description**: 我的本科阶段毕设-基于SpringBoot+Vue的蓝天在线考试系统。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-20 - **Last Updated**: 2025-10-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: Java, SpringBoot, Vue ## README # 📚 在线考试系统 ## 🖥️ 项目概述 本项目是一个基于SpringBoot + Vue.js的前后端分离在线考试系统,旨在为教育机构提供一套完整的在线考试管理解决方案。系统支持多角色(教师、学生、管理员)操作,具备用户管理、考试管理、试题管理、成绩管理、通知管理等核心功能,并通过JWT认证机制确保系统安全性。 ## 🛠️ 技术栈 ### 后端技术 - **框架**: SpringBoot 2.5.6 - **ORM框架**: MyBatis-Plus 3.5.6 - **数据库**: MySQL 8.0+ - **认证**: JWT (JSON Web Token) - **API文档**: Swagger 2.9.2 - **工具库**: Hutool 5.7.20, Lombok, Commons-IO - **构建工具**: Maven ### 前端技术 - **框架**: Vue.js 2.6.11 - **路由**: Vue Router 3.2.0 - **UI组件库**: Element UI 2.15.9 - **HTTP请求**: Axios 0.27.2 - **富文本编辑器**: WangEditor - **构建工具**: Vue CLI 4.5.13 ## 📁 项目结构 ``` exam_system/ ├── src/ # 后端源码 │ ├── main/java/com/project/template/ │ │ ├── common/ # 公共组件(Result、PageVO等) │ │ ├── config/ # 配置类(CORS、MyBatisPlus、Swagger等) │ │ ├── controller/ # 控制器层 │ │ ├── entity/ # 实体类 │ │ ├── mapper/ # 数据访问层 │ │ ├── service/ # 业务逻辑层 │ │ ├── dto/ # 数据传输对象 │ │ ├── exception/ # 异常处理 │ │ ├── interceptor/ # 拦截器 │ │ └── utils/ # 工具类 │ └── resources/ # 配置文件 ├── web/ # 前端源码 │ ├── src/ │ │ ├── components/ # 公共组件 │ │ ├── views/ # 页面视图 │ │ ├── router/ # 路由配置 │ │ ├── assets/ # 静态资源 │ │ ├── App.vue # 根组件 │ │ └── main.js # 入口文件 │ ├── .env.dev # 开发环境变量 │ ├── .env.prod # 生产环境变量 │ └── vue.config.js # Vue配置 ├── sql/ # 数据库脚本 ├── pom.xml # Maven配置 └── README.md # 项目说明 ``` ## 🔍 核心功能模块 ### 👥 用户管理模块 - 用户注册、登录、个人信息管理 - JWT认证与授权 - 角色权限控制 ### 📝 考试管理模块 - 考试创建、编辑、发布 - 考试列表查询与筛选 - 考试时间和时长设置 - 考试状态管理 ### 📊 试题管理模块 - 多种题型支持(单选、多选、判断、简答等) - 试题批量导入导出 - 试题分类管理 - 试题随机抽取组卷 ### 📈 成绩管理模块 - 自动评分与手动评分 - 成绩统计与分析 - 成绩查询与导出 - 错题集生成 ### 📢 通知管理模块 - 系统公告发布 - 考试通知推送 - 消息提醒 ### 📂 文件管理模块 - 文件上传下载 - 头像管理 - 资源文件存储 ## 🚀 快速开始 ### 环境要求 - JDK 1.8+ - MySQL 8.0+ - Node.js 14.0+ - npm 6.0+ ### 后端部署 1. **数据库配置** - 创建数据库 `exam_system` - 执行 `sql/exam_system.sql` 脚本导入初始数据 2. **配置修改** - 修改 `src/main/resources/application.properties` 中的数据库连接信息 3. **启动项目** ```bash # 方式1:使用Maven命令 mvn spring-boot:run # 方式2:打包后运行 mvn clean package java -jar target/exam_system.jar ``` ### 前端部署 1. **安装依赖** ```bash cd web npm install ``` 2. **开发环境运行** ```bash npm run serve-dev ``` 3. **生产环境构建** ```bash npm run build-prod ``` 4. **配置说明** - 开发环境配置:`.env.dev` - 生产环境配置:`.env.prod` ## 🌐 访问地址 - **后端API**: http://localhost:8080 - **Swagger文档**: http://localhost:8080/swagger-ui.html - **前端页面**: http://localhost:8081 (开发环境) ## 🛡️ 安全配置 ### JWT认证流程 1. 用户登录成功后,后端生成JWT令牌 2. 前端存储令牌并在后续请求中携带 3. 后端拦截器验证令牌有效性 4. 令牌过期后需要重新登录 ### CORS配置 系统已配置跨域支持,允许前端跨域访问后端API,配置位于 `CorsConfig.java` ## 📊 数据库设计 ### 主要表结构 - **sys_user**: 用户信息表 - **sys_role**: 角色信息表 - **exam**: 考试表 - **exam_question**: 试题表 - **exam_record**: 考试记录表 - **score**: 成绩表 - **notice**: 通知表 - **banner**: 轮播图表 ## 💡 功能特性 ### 1. 多角色权限管理 支持管理员、教师、学生三种角色,每种角色拥有不同的操作权限 ### 2. 智能组卷系统 支持按题型、难度、知识点等条件随机组卷,也支持手动选择试题组卷 ### 3. 实时监控考试 教师可以实时监控学生的考试状态,包括在线人数、答题进度等 ### 4. 自动评分系统 客观题自动评分,主观题支持教师在线评分 ### 5. 数据分析统计 提供考试成绩分析、学生成绩排名、知识点掌握情况等统计报表 ## 📝 使用说明 ### 管理员操作 1. 登录系统后,进入用户管理页面添加用户 2. 在角色管理页面配置用户权限 3. 管理系统公告和通知 ### 教师操作 1. 创建和管理考试 2. 添加和编辑试题 3. 发布考试并设置考试参数 4. 查看和管理学生成绩 ### 学生操作 1. 查看可参加的考试列表 2. 参加在线考试 3. 查看历史考试成绩 4. 查看错题集和学习建议 ## 🔧 常见问题 ### 1. 前端启动后无法连接后端? - 检查后端服务是否正常运行 - 确认 `.env` 配置文件中的API地址正确 - 查看浏览器控制台的网络请求错误信息 ### 2. 数据库连接失败? - 检查数据库服务是否启动 - 确认数据库用户名、密码和数据库名正确 - 检查数据库驱动版本是否兼容 ### 3. JWT令牌失效? - 令牌默认有效期为2小时,过期后需要重新登录 - 检查JWT密钥配置是否一致 ## 🤝 贡献指南 欢迎提交Issue和Pull Request! ## 📄 许可证 [MIT](https://opensource.org/licenses/MIT) ## 📧 联系方式 QQ:2206419334(同微信)