架构:微服务架构(独立模块独立运行)
总结在线教育项目功能点
准备:后端接口启动(gateway网关,nacos),启动前端项目(前台系统,后台系统)
一、项目后台管理系统功能
- 登陆注册功能(SpringSecurity框架)
- 权限管理模块:
(1)菜单管理:列表,添加,修改,删除。
(2)角色功能:列表显示,添加,修改,删除,批量删除,为角色分配菜单功能。
(3)用户管理: 列表,添加,修改,删除,为用户分配角色功能。
(4)权限管理表和关系:五张表(角色表,用户表,菜单表,角色菜单表,用户角色表) - 讲师管理模块:实现讲师的增删改查,包括查询分页。
- 课程分类模块:
(1)导入添加课程分类:EasyExcel
(2)课程分类的基本显示:树形结构显示课程分类列表 - 课程管理模块:
(1)课程列表功能:
(2)添加课程:
--------1------- 填写课程基本信息
--------2------- 添加课程大纲(章节,小节)
--------3------- 课程信息确认与发布
(3)添加小节时上传视频:阿里云视频点播 - 统计分析模块:
(1)生成统计数据
(2)统计数据的图表显示:echarts
提问
- 如何判定是否已经发布?答:课程表中有状态字段(status),如果发布设为Normal,没发布设为Draft。
- 课程添加过程中如果中途停止添加,之后如何找到未发布完成课程? 答:在每一次保存时会把已输入的信息存在数据库的课程表中,只需要在课程列表找到该课程并编辑课程信息进行修改即可。
二、项目前台用户系统功能
-
首页数据显示:
(1)首页显示幻灯片banner
(2)显示热门课程
(3)显示名师大咖 -
注册功能,登陆功能:
(1)注册中获取手机验证码:整合阿里云短信服务,发送验证码。**********待补全
(2)登陆功能(day12):
普通登陆:
--------SSO单点登录如何实现:
本项目使用的是JWT生成token字符串方式实现,详细介绍:
JWT由几部分组成:1.头信息 2.有效载荷 (有效信息)3.签名哈希(加密)
登陆步骤如下:微信扫码登录
OAuth2:主要解决两个问题。
1.开放系统间授权。(不同系统不能访问,授权访问)
2.分布式访问。(单点登录)
如何获取扫码人信息
流程:
扫码之后微信接口返回code,用code请求微信固定地址,得到两个值access_token和openid,再去请求微信固定地址得到扫描人的信息(头像,id等),然后再加入数据库。 -
名师功能:
点击名师包括讲师的分页列表。
点进单个讲师显示讲师详情。 -
课程功能:
1.课程条件查询(根据分类)。
2.课程分页列表显示。
3.课程视频在线播放功能
4.课程详情页面:- 没登录显示登录后观看
- 如果需要收费则显示购买
- 已购买或免费显示立即观看
5.点购买后跳转到课程支付功能
- 生成订单
- 点击支付后生成微信支付二维码
- 微信支付成功后回显可以播放
****** 微信支付实现流程 *****
如果课程是收费课程,立即购买后生成课程订单,点击订单页面去支付,根据设定的价格生成支付二维码。支付后,每隔3秒查询一次支付状态,如果没有支付成功则等待,支付成功后,将SQL里的订单状态表中status状态改为1(已支付),向支付日志表添加一条完成的订单信息。