1. 项目概述与设计背景
作为一名计算机专业的学生,毕业设计是检验四年学习成果的重要环节。我选择开发一个"前端课程在线考核系统",主要基于以下考虑:首先,线上考试已成为教育领域的重要趋势;其次,现有的一些在线考试系统功能单一,缺乏针对性;最后,我希望通过这个项目全面锻炼自己的全栈开发能力。
系统采用前后端分离架构,后端使用SpringBoot框架提供RESTful API接口,前端使用Vue.js实现用户交互。这种架构的优势在于:
- 前后端开发可以并行进行,提高开发效率
- 接口定义清晰,便于后期维护和扩展
- 前端组件化开发,代码复用率高
- 响应式设计,适配不同终端设备
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统功能模块设计
2.1 用户功能模块
2.1.1 登录注册功能
登录注册是系统的门户,安全性至关重要。我们实现了以下关键点:
- 验证码校验:使用Kaptcha生成图形验证码,防止暴力破解
- 密码加密:采用BCrypt加密算法,即使数据库泄露也不会暴露明文密码
- 会话管理:使用Sa-Token框架管理用户会话,确保登录状态安全
注意:密码加密一定要使用专业的加密库,切勿自行实现加密算法。BCrypt算法会自动处理盐值(salt),比MD5等传统哈希算法更安全。
2.1.2 考试功能
考试模块是系统的核心,主要流程包括:
- 考试列表展示:按科目分类展示可用考试
- 考试控制:限制考试时间,防止超时提交
- 自动评分:客观题自动评分,主观题预留人工评分接口
- 错题记录:自动记录答错题目,便于学生复习
实现难点在于处理高并发下的考试提交,我们采用Redis缓存减轻数据库压力,确保系统稳定性。
2.1.3 联系客服功能
实时通讯功能使用WebSocket协议实现,关键点包括:
- 消息持久化:所有聊天记录存入数据库
- 消息状态:标记已读/未读状态
- 通知提醒:新消息实时提醒
2.2 管理员功能模块
2.2.1 系统管理
管理员可以:
- 修改密码:定期更换密码保障安全
- 轮播图管理:首页轮播图动态配置
- 数据库备份:定期备份防止数据丢失
- 操作日志:记录关键操作便于审计
2.2.2 考试管理
管理员可以:
- 创建/编辑考试:设置考试时间、题
