研究背景与意义

随着信息技术的飞速发展和教育信息化的深入推进,传统教育模式正面临深刻变革,疫情以来,“线上+线下”混合式教学成为常态,在线教育以其突破时空限制、资源共享便捷、学习方式灵活等优势,逐渐成为教育体系的重要组成部分,现有在线教育平台仍存在功能单一(如仅支持视频点播)、互动性不足、教学管理流程分散等问题,难以满足个性化学习、精准化教学、智能化管理等需求。

本毕业设计旨在开发一个功能完善、交互友好的在线教育系统,通过整合课程管理、实时教学、作业互动、数据统计等核心功能,构建覆盖“教、学、管”全流程的数字化平台,该系统不仅能为学生提供自主学习的环境,为教师提供高效的教学工具,为管理员提供便捷的系统管理手段,还可为教育机构探索信息化教学新模式提供实践参考,具有重要的理论价值与现实意义。

需求分析

在线教育系统的用户角色主要包括学生、教师和管理员三类,其需求分析如下:

(一)学生端需求

  1. 课程学习:支持视频课程在线播放(含倍速、字幕、进度记忆)、课件下载(PDF/PPT)、课程目录浏览。
  2. 互动参与:实时参与教师直播课堂(弹幕、举手、连麦)、课程讨论区发帖/回帖、向教师提问。
  3. 作业管理:查看作业要求、在线提交作业(支持文件上传)、查看教师批改意见与成绩。
  4. 个人中心:查看学习进度(已学/未学课程、时长统计)、个人信息管理(头像、昵称、密码)、成绩查询。

(二)教师端需求

  1. 课程管理:创建课程(上传封面、填写简介、设置大纲)、发布/下架课程、管理课程资源(视频、课件、资料)。
  2. 教学互动:发起直播课堂(支持屏幕共享、白板、录播)、设置课堂测验、管理学生互动(禁言、连麦邀请)。
  3. 作业管理:发布作业(设置截止时间、评分标准)、批改作业(在线评阅、打分、写评语)、统计作业提交情况。
  4. 学生管理:查看选课学生列表、导出学生名单、管理学生权限(如禁言课程)。

(三)管理员端需求

  1. 用户管理:添加/删除教师/学生账户、重置用户密码、设置用户角色(权限分级)。
  2. 系统维护:课程资源审核(过滤违规内容)、系统日志查看(操作记录、异常监控)、数据备份与恢复。
  3. 数据统计:生成平台使用报表(课程数量、用户活跃度、学习时长分布)、导出统计数据(Excel格式)。

(四)非功能性需求

  • 性能:支持100+并发用户访问,视频加载延迟≤3s,页面响应时间≤2s。
  • 安全:用户密码加密存储(BCrypt)、接口防SQL注入/XSS攻击、敏感数据传输HTTPS加密。
  • 易用性:界面简洁直观,操作流程符合用户习惯,提供帮助文档与客服入口。

系统设计

(一)总体架构设计

系统采用B/S(浏览器/服务器)架构,基于Spring Boot + Vue + MySQL技术栈开发,实现前后端分离,便于维护与扩展,具体架构分为四层:

  1. 表现层:Vue.js构建前端界面,负责用户交互与数据展示,支持PC端与移动端自适应。
  2. 业务逻辑层:Spring Boot处理后端业务逻辑(如用户认证、课程管理、权限控制),通过RESTful API与前端交互。
  3. 数据访问层:MyBatis作为ORM框架,操作MySQL数据库存储业务数据(用户信息、课程资源、作业记录等)。
  4. 基础设施层:Nginx作为反向代理服务器,Redis缓存热点数据(如课程列表、用户登录状态),MinIO存储视频、课件等大文件。

(二)数据库设计

根据需求分析,系统核心数据表包括:

  • 用户表(user):存储用户ID、账号、密码(加密)、角色(学生/教师/管理员)、注册时间等。
  • 课程表(course):存储课程ID、标题、简介、封面图、教师ID、创建时间、状态(发布/下架)等。
  • 课程资源表(resource):存储资源ID、课程ID、资源类型(视频/课件)、文件路径、上传时间等。
  • 作业表(homework):存储作业ID、课程ID、标题、要求、截止时间、总分、发布时间等。
  • 作业提交表(homework_submit):存储提交ID、作业ID、学生ID、文件路径、提交时间、教师评语、分数等。
  • 直播表(live):存储直播ID、课程ID、教师ID、直播主题、开始时间、状态(未开始/进行中/结束)、录播地址等。

(三)核心模块设计

  1. 用户认证模块

    • 基于JWT(JSON Web Token)实现无状态认证,用户登录成功后生成Token,前端请求时携带Token,后端通过拦截器验证权限。
    • 角色权限控制:通过Spring Security的@PreAuthorize注解实现接口级权限(如教师可发布课程,学生仅可提交作业)。
  2. 课程学习模块

    • 视频播放:集成DPlayer播放器,支持HLS格式(适应不同网络环境),通过Redis记录用户学习进度,实现“断点续播”。
    • 课件下载:前端通过<a>标签触发后端文件流接口,后端验证用户权限后返回文件资源。
  3. 实时教学模块

    直播功能:集成WebSocket实现实时通信,教师端通过`Media