谷粒学院总结---基于vue+sprigboot的在线教育平台-


gitee源码地址
github源码地址

一、项目描述

  • 在线教育系统,系统分为前台用户系统和后台管理系统两部分。B2C模式。

  • 前台用户系统包括:首页、课程、名师、问答、文章。

  • 后台管理系统包括:讲师管理、课程分类管理、课程管理、统计分析、Banner管理、订单管理、权限管理等功能。

​ 后端的主要技术架构是:SpringBoot + SpringCloud + MyBatis-Plus + HttpClient + MySQL + Maven+EasyExcel+ nginx

​ 前端的架构是:Node.js + Vue.js +element-ui+NUXT+ECharts

​ 其他涉及到的中间件包括Redis、阿里云OSS、阿里云视频点播

​ 业务中使用了ECharts做图表展示,使用EasyExcel完成分类批量添加、注册分布式单点登录使用了JWT

项目前后端分离开发,后端采用SpringCloud微服务架构,持久层用的是MyBatis-Plus,使用Swagger生成接口文档,接入了阿里云视频点播、阿里云OSS。

二、系统中的角色

​ 前台:会员(学员)、游客

​ 后台:系统管理员、运营人员

三、后台管理系统功能描述

1、权限管理模块

  • 菜单管理:CRUD
  • 角色管理:CRUD、批量删除、为角色分配菜单
  • 用户管理:CRUD、为用户分配角色
  • 表和表的关系:使用五张表【用户表、角色表、菜单表、用户角色中间表、角色菜单中间表】

2、讲师管理模块

  • 多条件分页查询、CRUD

3、课程分类模块

  • 添加课程分类

​ 读取Excel里的课程数据,添加到数据库中,通过easyExcel

  • 课程分类列表

​ 使用树形结构显示课程分类列表

4、课程管理模块

  • 课程列表功能
  • 添加课程
  • 添加小节时,可以上传课程视频
  • 课程发布的流程:填写课程基本信息、添加课程大纲(章节和小节)、课程信息确认、最终发布

课程如何判断是否已经发布?

通过给数据库设置字段status来判断他现在的状态

课程添加过程中,中途把课程停止添加,重新去添加新的课程,如何找到之前没有发布完成的课程,继续发布呢?

到课程列表中选择未发布的课程状态,来查询,里面会有编辑看课程信息,然后去继续编辑发		布完成

四、视频点播实现

​ 直接接入了阿里云的云视频点播。云平台上的功能包括视频上传、转码、加密、智能审核、监控统计等。

​ 还包括视频播放功能,阿里云还提供了一个视频播放器。

五、前后端联调注意点

1、请求方式post、get

2、json、x-wwww-form-urlencoded混乱的错误

3、后台必要的参数,前端省略了

4、数据类型不匹配

5、空指针异常

6、分布式系统中分布式id生成器生成的id 长度过大(19个字符长度的整数),js无法解析(js智能解析16个长度:2的53次幂)

​ id策略改成 ID_WORKER_STR

六、需要注意的问题

6.1、主键问题

  • 分布式id生成器在前端无法处理,总是在后三位进行四舍五入。

  • 分布式id生成器生成的id是19个字符的长度,前端javascript脚本对整数的处理能力只有2的53次方,也就是最多只能处理16个字符

- 解决的方案是把id在程序中设置成了字符串的性质

6.2、cookie问题

项目迁移到Spring-Cloud的时候,经过网关时,前端传递的cookie后端一只获取不了,看了cloud中zuul的源码,发现向下游传递数据的时候,zull默认过滤了敏感信息,将cookie过滤掉了

- 解决的方案是在配置文件中将请求头的过滤清除掉,使cookie可以向下游传递

6.3、分布式系统的id生成策略

​ https://www.cnblogs.com/haoxinyue/p/5208136.html

6.4、前端渲染和后端渲染的区别

​ 前端渲染是返回json给前端,通过javascript将数据绑定到页面上

​ 后端渲染是在服务器端将页面生成直接发送给服务器,有利于SEO的优化

6.5、跨域问题

  • 访问协议+ip地址+端口号,三者有任何一个不一样,就会产生跨域问题
  • 解决方案:
    • 在controller添加注解@CrossOrigin
    • 通过Gateway网关解决,写一个配置类
    • 上面只能使用一个,不然会失效

6.6、413问题

  • 上传视频时,nginx有上传视频大小限制,如果超过,就会出现413错误
  • 413描述:请求体过大
- 解决方案:在Nginx里配置客户端提交文件大小
  • 响应状态码:413、跨域403、重定向302

6.7、Maven加载问题

  • Maven加载项目时,不会加载src-java文件夹里面的xml类型文件
解决方案:
- 1、复制xml文件到target目录
- 2、在maven中配置,与properties配置文件中指定xml文件夹
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Baucc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值