织梦CMS - 轻松建站从此开始!

abg欧博官网|登陆|游戏|

当前位置: abg欧博官网|登陆|游戏| > 欧博平台 > 文章页

OnlineEdu: 基于SpringBoot+Vue前后端分离的在线教育平台项目

时间:2024-05-22 03:24来源: 作者:admin 点击: 52 次
基于SpringBoot+Vue前后端分离的在线教育平台项目' itemprop='description


基于SpringBoot+Vue前后端分离的在线教育平台项目

赠给有缘人,希望能帮助到你!也请不要吝惜你的大拇指,你的Star、点赞将是对我最大的鼓励与支持!

开源传送门:

演示DEMO传送门:

前言

本项目是笔者毕设作品,肝了一周多时间赶出来的,后台写得比较垃圾,前端界面自我感觉还行,但笔者前端只是打辅助的。总的参考价值因人而言。

随心所欲,只为功能实现,没有规范,没有优化,不谈安全;

Service层没有接口,实现直接返回Controller结果,因而造成代码大量耦合,拓展性极差;

MyBatis-Plus直接面向对象Dao操作,没有写SQL语句,业务逻辑全部使用JAVA代码完成;

仍存在较多缺陷,但显示到的菜单功能基本都是完整的,除了支付功能。

关于项目演示:出于多种考虑,演示DEMO中关于修改的操作全部禁用。如果需要了解完整的项目演示效果,请本地测试运行项目,自行在配置文件配置阿里云OSS和VoD相关选项。

鸣谢:部分界面设计元素参考腾讯课堂与龙果学院。

项目介绍

基于SpringBoot+Vue前后端分离的在线教育平台项目,单体应用服务架构。

系统共设计三种角色:管理员、讲师和学员,三个角色分别对应一个操作端。也就是本系统1个后台项目,三个前端项目。管理员端没有引入角色和权限管理,只有一个角色。

已实现的功能列表展示:

管理员端:

数据统计

轮播图管理

课程管理

课程列表

课程审核

分类管理

讲师管理

讲师列表

讲师审核

学员管理

用户管理

订单管理

讲师端:

发布课程

课程管理

评论管理

消息接收

学员端(网站首页):

登录注册

分类与轮播图展示

课程列表展示

课程搜索(关键词、分类、讲师)

课程详情(播放器、课程介绍、评论、讲师简介、订阅)

订阅订单

讲师入驻

技术选型

开发环境

工具:IntelliJ IDEA

JDK 1.8

数据库:MySQL 8.0.15

项目构建:后端Maven、前端 webpack

后端

前端

数据库设计

ER图

数据库: online_edu,统一编码:utf8mb4

表格: acl_permission

索引:

名称 类型 属性 备注
主索引   id   unique    

字段:

名称 类型 空 默认值 属性 备注
id   int(11) unsigned     <auto_increment>     菜单权限表  
pid   int(11) unsigned         父级id  
type   tinyint(4) unsigned     1     菜单类型,0顶部菜单、1聚合菜单、2页面菜单、3接口  
name   varchar(255)         路由名称或接口名称  
path   varchar(255)         菜单路径(以http开头时,视为打开外部链接) 或 请求接口的地址  
component   varchar(255)         菜单组件,只有叶子菜单才可配置  
meta   varchar(1023)     <空>     菜单的route.meta配置项,json格式  
admin   tinyint(1) unsigned     0     0默认,1只有超级管理员才能使用  
enable   tinyint(1) unsigned     1     是否启用,0否1是  
update_time   datetime     <INSERT-TimeStamp>     更新时间  
create_time   datetime     <INSERT-TimeStamp>     创建时间  

表格: acl_role

备注: 角色

索引:

名称 类型 属性 备注
主索引   id   unique    

字段:

名称 类型 空 默认值 属性 备注
id   int(11) unsigned     <auto_increment>     角色id  
name   varchar(31)         角色名称  
permission_id   varchar(2048)         角色具有的权限ID串  
enable   tinyint(1)     1     是否启用,0否1是  
update_time   datetime     <INSERT-TimeStamp>     更新时间  
create_time   datetime     <INSERT-TimeStamp>     创建时间  

表格: acl_user

备注: 管理员用户表

索引:

名称 类型 属性 备注
主索引   id   unique    
uk_username   username   unique    

字段:

名称 类型 空 默认值 属性 备注
id   int(11) unsigned     <auto_increment>     用户id  
username   varchar(31)         用户名  
password   varchar(255)         密码  
nickname   varchar(31)         昵称  
avatar   varchar(1023)         用户头像  
mark   varchar(255)         备注  
sign   varchar(255)         用户签名  
roleId   int(11) unsigned         角色id  
enable   tinyint(1) unsigned     1     是否启用,0否1是  
update_time   datetime     <INSERT-TimeStamp>     更新时间  
create_time   datetime     <INSERT-TimeStamp>     创建时间  

表格: edu_chapter

备注: 课程章节表

索引:

名称 类型 属性 备注
主索引   id   unique    

字段:

名称 类型 空 默认值 属性 备注
id   int(11) unsigned     <auto_increment>     章节ID  
course_id   int(11) unsigned         课程ID  
title   varchar(63)         章节名称  
sort   int(11)     0     显示排序  
update_time   datetime     <INSERT-TimeStamp>     更新时间  
create_time   datetime     <INSERT-TimeStamp>     创建时间  

表格: edu_chapter_tmp

备注: 课程章节临时表(用于存放二次修改的数据)

索引:

名称 类型 属性 备注
主索引   id   unique    
idx_id   oid      

字段:

名称 类型 空 默认值 属性 备注
id   bigint(20) unsigned     0     主键  
oid   int(11) unsigned     0     原章节ID  
course_id   int(11) unsigned         课程ID  
title   varchar(63)         章节名称  
sort   int(11)     0     显示排序  
update_time   datetime     <INSERT-TimeStamp>     更新时间  
create_time   datetime     <INSERT-TimeStamp>     创建时间  

表格: edu_comment

备注: 课程评论表

索引:

名称 类型 属性 备注
主索引   id   unique    
idx_course_id   course_id      
idx_member_id   member_id      
idx_member_id_course_id   member_id, course_id      
idx_teacher_id   teacher_id      

字段:

名称 类型 空 默认值 属性 备注
id   int(11) unsigned     <auto_increment>     评论ID  
course_id   int(11) unsigned         课程id  
teacher_id   int(11) unsigned         讲师id  
member_id   int(11) unsigned         会员id  
content   varchar(1023)         评论内容  
mark   double unsigned     5     评分(满分5.00)  
status   tinyint(1) unsigned     <空>     评论状态 0审核中 1通过  
update_time   datetime     <INSERT-TimeStamp>     更新时间  
create_time   datetime     <INSERT-TimeStamp>     创建时间  

表格: edu_course

备注: 课程表

索引:

名称 类型 属性 备注
主索引   id   unique    

字段:

名称 类型 空 默认值 属性 备注
id   int(11) unsigned     <auto_increment>     课程ID  
teacher_id   int(11) unsigned         课程讲师ID  
subject_id   int(11) unsigned         课程科目分类ID  
title   varchar(63)         课程标题  
price   double(10,2) unsigned     0.00     课程销售价格,设置为0则可免费观看  
lesson_num   int(11) unsigned     0     总课时  
cover   varchar(1023)       utf8, utf8_general_ci   课程封面图片路径  
description   text         课程描述  
buy_count   int(11) unsigned     0     销售数量  
view_count   int(11) unsigned     0     浏览数量  
sort   int(11)     0     显示排序  
enable   tinyint(1)     1     上架下架,0下架 1上架  
status   tinyint(4)     0     课程状态,草稿 审核 发表  
remarks   varchar(511)     <空>     备注  
update_time   datetime     <INSERT-TimeStamp>     更新时间  
create_time   datetime     <INSERT-TimeStamp>     创建时间  

表格: edu_subject

备注: 课程科目分类表

索引:

名称 类型 属性 备注
主索引   id   unique    
idx_parent_id   parent_id      

字段:

名称 类型 空 默认值 属性 备注
id   int(11) unsigned     <auto_increment>     课程类别ID  
title   varchar(15)         类别名称  
parent_id   int(11) unsigned     0     父ID  
sort   int(11) unsigned     0     排序字段  
enable   tinyint(1) unsigned     1     是否启用,0否1是  
update_time   datetime     <INSERT-TimeStamp>     更新时间  
create_time   datetime     <INSERT-TimeStamp>     创建时间  

表格: edu_teacher

备注: 讲师表

索引:

名称 类型 属性 备注
主索引   id   unique    
uk_mobile   mobile   unique    
uk_name   name   unique    

字段:

名称 类型 空 默认值 属性 备注
id   int(11) unsigned     <auto_increment>     讲师ID  
mobile   char(11)         手机号  
email   varchar(127)         邮箱地址  
password   varchar(255)         密码  
name   varchar(63)         讲师姓名  
intro   varchar(1023)         讲师简介  
avatar   varchar(1023)         讲师头像  
resume   varchar(1023)         讲师简历链接  
division   tinyint(4)     80     分成比例,0-100  
sort   int(11)     0     排序  
enable   tinyint(1) unsigned     1     是否启用,0否1是  
status   tinyint(4)     0     讲师状态:审核通过;审核不通过;待审核  
update_time   datetime     <INSERT-TimeStamp>     更新时间  
create_time   datetime     <INSERT-TimeStamp>     创建时间  

表格: edu_video

备注: 课程视频

索引:

名称 类型 属性 备注
主索引   id   unique    
idx_chapter_id   chapter_id      
idx_course_id   course_id      

字段:

名称 类型 空 默认值 属性 备注
id   int(11) unsigned     <auto_increment>     视频ID  
course_id   int(11) unsigned         课程ID  
chapter_id   int(11) unsigned         章节ID  
title   varchar(63)         视频显示名称  
video_id   varchar(63)         云端视频资源  
sort   int(11)     0     排序字段  
play_count   int(11) unsigned     0     播放次数  
free   tinyint(1) unsigned     1     是否可以试听:0免费 1收费  
duration   varchar(15)     0     视频时长(秒)  
size   bigint(20) unsigned     0     视频源文件大小(字节)  
update_time   datetime     <INSERT-TimeStamp>     更新时间  
create_time   datetime     <INSERT-TimeStamp>     创建时间  

表格: edu_video_tmp

备注: 课程视频表(用于存放二次修改的数据)

索引:

名称 类型 属性 备注
主索引   id   unique    
idx_chapter_id   chapter_id      
idx_course_id   course_id      
idx_id   oid      

字段:

名称 类型 空 默认值 属性 备注
id   bigint(20) unsigned     0     主键(视频ID)  
oid   int(11) unsigned     0     原视频ID  
course_id   int(11) unsigned         课程ID  
chapter_id   bigint(20) unsigned         章节ID  
title   varchar(63)         视频显示名称  
video_id   varchar(63)         云端视频资源  
sort   int(11)     0     排序字段  
play_count   int(11) unsigned     0     播放次数  
free   tinyint(1) unsigned     1     是否可以试听:0免费 1收费  
duration   varchar(15)     0     视频时长(秒)  
size   bigint(20) unsigned     0     视频源文件大小(字节)  
update_time   datetime     <INSERT-TimeStamp>     更新时间  
create_time   datetime     <INSERT-TimeStamp>     创建时间  

表格: hm_banner

备注: 首页banner表

索引:

名称 类型 属性 备注
主索引   id   unique    

字段:

名称 类型 空 默认值 属性 备注
id   int(11) unsigned     <auto_increment>     ID  
title   varchar(63)         标题  
image_url   varchar(1023)         图片地址  
link_url   varchar(1023)         链接地址  
sort   int(11) unsigned     0     排序  
enable   tinyint(1) unsigned     1     是否启用,0否1是  
update_time   datetime     <INSERT-TimeStamp>     更新时间  
create_time   datetime     <INSERT-TimeStamp>     创建时间  

表格: rel_course_member

备注: 课程订阅-学员关系表

索引:

名称 类型 属性 备注
主索引   id   unique    
idx_course_id   course_id   unique    
idx_member_course   member_id, course_id     联合索引(member_id, course_id)  
idx_member_id   member_id   unique    

字段:

名称 类型 空 默认值 属性 备注
id   int(10) unsigned     <auto_increment>     主键  
course_id   int(10) unsigned     0     课程Id  
member_id   int(10) unsigned     0     学员Id  
update_time   datetime     <INSERT-TimeStamp>     更新时间  
create_time   datetime     <INSERT-TimeStamp>     创建时间  

表格: stat_daily

备注: 网站统计日数据

索引:

名称 类型 属性 备注
主索引   id   unique    
statistics_day   date      

字段:

名称 类型 空 默认值 属性 备注
id   int(11) unsigned     <auto_increment>     主键  
date   datetime         统计日期  
visit_count   int(11) unsigned     0     访客数量  
register_count   int(11) unsigned     0     注册人数  
login_count   int(11) unsigned     0     活跃人数  
video_view_count   int(11) unsigned     0     视频播放数  
course_buy_count   int(11) unsigned     0     购买数量  
update_time   datetime     <INSERT-TimeStamp>     更新时间  
create_time   datetime     <INSERT-TimeStamp>     创建时间  

表格: sys_message

备注: 消息表

索引:

名称 类型 属性 备注
主索引   id   unique    
idx_to_id   to_id      

字段:

名称 类型 空 默认值 属性 备注
id   int(11) unsigned     <auto_increment>     消息id  
from_id   int(11) unsigned     0     发送者Id  
from_role   tinyint(4)     0     发送者角色(管理员、讲师...)  
to_id   int(11) unsigned     0     接受者id  
to_role   tinyint(4) unsigned     0     接受者角色(教师、学员...)  
title   varchar(127)         消息标题  
content   varchar(511)         消息内容  
has_read   tinyint(1) unsigned     0     是否已读(0未读 1已读)  
update_time   datetime     <INSERT-TimeStamp>     更新时间  
create_time   datetime     <INSERT-TimeStamp>     创建时间  

表格: t_order

备注: 订单表

索引:

名称 类型 属性 备注
主索引   id   unique    
idx_course_id   course_id      
idx_member_id   member_id      
idx_member_id_course_id   member_id, course_id      
ux_order_no   order_no   unique    

字段:

名称 类型 空 默认值 属性 备注
id   int(11) unsigned     <auto_increment>      
order_no   varchar(18)         订单号(datetime+unsigned int)  
course_id   int(11) unsigned         课程id  
member_id   int(11) unsigned         会员id  
total_fee   double(10,2)     0.01     订单金额(分)  
pay_type   tinyint(4) unsigned     0     支付类型(0 未支付 1:微信 2:支付宝)  
transaction_num   varchar(31)         交易流水号  
pay_time   datetime     <空>     支付完成时间  
update_time   datetime     <INSERT-TimeStamp>     更新时间  
create_time   datetime     <INSERT-TimeStamp>     创建时间  

表格: uctr_member

备注: 会员表

索引:

名称 类型 属性 备注
主索引   id   unique    
uk_mobile   mobile   unique    
uk_nickname   nickname   unique    

字段:

名称 类型 空 默认值 属性 备注
id   int(11) unsigned     <auto_increment>     会员id  
mobile   char(11)         手机号  
email   varchar(127)         邮箱地址  
password   varchar(255)         密码  
nickname   varchar(31)         昵称  
sex   tinyint(4) unsigned     0     性别 1 女,2 男  
age   tinyint(3) unsigned     0     年龄  
avatar   varchar(1023)         用户头像  
sign   varchar(127)         用户签名  
enable   tinyint(1)     1     是否启用,0否1是  
update_time   datetime     <INSERT-TimeStamp>     更新时间  
create_time   datetime     <INSERT-TimeStamp>     创建时间  
实现效果

更多实现效果图请看附件README.assets

管理员端:

admin

讲师端:

teacher

学员端:

app

总结与展望

事实说明,毕设工作量完全超出了答辩的正常范围,这点我是没想到的,因为只演示了系统一小部分功能就拿了答辩优秀。最后也是希望本项目可以给到有需要的人一些帮助。谢谢大家。

展望:

代码重构,解决前言中的问题。

功能完善,完善支付模块、权限管理等功能。

架构升级,微服务拆分,引入前沿技术。

当然,这一切的前提是我心情不错且拥有足够的空闲时间。

MIT License Copyright (c) 2022 Myles Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

(责任编辑:)
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:
发布者资料
查看详细资料 发送留言 加为好友 用户等级: 注册时间:2025-05-18 00:05 最后登录:2025-05-18 00:05
栏目列表
推荐内容