随着信息技术的飞速发展和教育信息化的深入推进,在线教育已成为现代教育体系的重要组成部分,特别是在后疫情时代,突破时空限制、整合优质资源的在线学习模式逐渐成为常态,现有在线教育平台仍存在互动性不足、个性化推荐缺失、教学管理效率低等问题,基于此,本毕业设计以“构建智能化、交互式学习平台”为目标,设计并实现一个集课程学习、师生互动、教学管理、数据分析于一体的在线教育网,旨在为用户提供更高效、便捷、个性化的学习体验,同时为教育机构提供数字化教学管理工具。

需求分析

1 用户角色定义

在线教育网的核心用户分为三类:学生、教师和管理员,其需求差异显著:

  • 学生:需要便捷的课程浏览、视频学习、课件下载、作业提交、在线答疑、学习进度跟踪等功能,同时期望平台根据学习行为推荐个性化课程。
  • 教师:需要课程创建与管理(上传视频、课件、发布作业)、学生学情统计、在线互动(答疑、直播)、作业批改等功能,以提升教学效率。
  • 管理员:负责用户管理(注册审核、权限分配)、系统维护(数据备份、故障修复)、课程审核、数据可视化(平台用户活跃度、课程完成率等)等全局性功能。

2 功能需求

基于用户角色,平台核心功能模块包括:

  • 用户模块:支持学生、教师、管理员注册登录,角色权限区分(如学生无法进入后台管理),个人信息修改(头像、密码等)。
  • 课程模块:课程分类(按学科、难度、热度)、课程搜索(关键词、标签)、课程详情页(介绍、大纲、教师信息、学习人数)、课程订阅/购买(可选付费课程)。
  • 学习模块:视频播放(支持倍速、暂停、进度记忆)、课件下载(PDF、PPT等格式)、作业提交(在线编辑/文件上传)、学习笔记(云端保存、分享)。
  • 互动模块:课程讨论区(学生发帖、教师回复)、实时问答(学生提问,教师或助教解答)、直播课堂(教师端推流,学生端观看+弹幕互动)。
  • 管理模块:教师端(课程管理、学生名单、作业批改、数据统计);管理员端(用户审核、课程上架/下架、系统日志、数据看板)。

3 非功能需求

  • 性能:支持500+并发用户访问,视频加载延迟≤3s,页面响应时间≤1s。
  • 安全性:用户密码加密存储(BCrypt),敏感数据(如身份证、支付信息)脱敏处理,防止SQL注入、XSS攻击。
  • 易用性:界面简洁直观,操作流程符合用户习惯(如课程分类清晰、登录入口醒目),提供新手引导。

系统设计

1 总体架构

平台采用B/S(浏览器/服务器)架构,前后端分离设计,确保系统可扩展性和维护性,具体技术栈如下:

  • 前端:Vue.js 3(组件化开发)、Element Plus(UI组件库)、Axios(HTTP请求)、WebRTC(直播功能)。
  • 后端:Spring Boot(Java框架)、MyBatis-Plus(ORM框架)、Spring Security(权限控制)、JWT(用户认证)。
  • 数据库:MySQL 8.0(关系型数据存储,如用户信息、课程数据)、Redis(缓存热点数据,如课程详情、用户登录状态)。
  • 服务器:Nginx(反向代理、负载均衡)、FFmpeg(视频转码)、腾讯云COS(视频/课件文件存储)。

2 功能模块设计

(1)用户模块

  • 注册登录:支持手机号/邮箱注册,短信/邮箱验证码登录;登录后生成JWT token,后续请求携带token进行身份校验。
  • 权限控制:基于Spring Security实现RBAC(基于角色的访问控制),如“学生”只能访问课程学习页面,“教师”可进入课程管理后台,“管理员”拥有最高权限。

(2)课程模块

  • 课程创建:教师端支持上传视频(自动转码为H.264格式)、课件(PDF/PPT)、设置课程价格(免费/付费)、课程标签(如“编程入门”“考研数学”)。
  • 课程展示:前端通过轮播图展示热门课程,分类页按“学科-难度”二级分类,搜索框支持模糊匹配课程名称/教师姓名。

(3)学习模块

  • 视频学习:前端使用Video.js播放器,支持倍速播放(0.5x-2x)、进度记忆(下次登录自动续播),学习记录存入MySQL(用户ID、课程ID、进度百分比、学习时间)。
  • 作业提交:学生可在线编辑文本作业(支持Markdown格式)或上传文件(最大50MB),教师端可在线批阅(打分+文字评语)。

(4)互动模块

  • 讨论区:每个课程