一、后台管理系统
1、登录注册功能(SpringSecurity框架)
2、权限管理功能
- 菜单管理:CRUD
- 角色管理:
* CRUD、批量删除;
* 为角色分配菜单- 用户管理:
* CRUD;
* 为用户分配角色- 表和表的关系
* 使用五张表
* 用户表、角色表、菜单表、用户角色关系表、角色菜单关系表
3、讲师管理模块
- 多条件分页查询、CRUD
4、课程分类模块
- 添加课程分类
* 读取Excel里的课程数据,添加到数据库中,通过easyExcel进行导入
- 课程分类列表
* 使用树形结构显示课程分类列表
5、课程管理模块
- 课程列表功能
- 添加课程
- 课程发布流程:
* 填写课程基本信息
* 添加课程大纲(章节和小节)
* 课程信息确认
* 最终发布- 课程如何判断是否已经发布?
* 通过给数据库设置字段status来判断现在的状态- *课程添加过程中,中途把课程停止添加,重新去添加新的课程,如何找到之前没有发布完成的课程,继续发布呢?
* 到课程列表中选择未发布的课程状态,来查询,里面会有编辑看课程信息,然后去继续编辑发布完成- 添加小节时,可以上传课程视频
* 使用阿里云的视频点播服务
6、统计分析模块
- 生成统计数据
* 统计某一天的注册、登录人数- 统计数据的图表显示
7、走马灯模块
- 添加和删除
二、前台用户系统功能
1、首页数据显示
- 显示走马灯功能(轮播图)
- 显示热门课程
* 按播放量降序,显示前5条- 显示名师
2、注册功能
- 获取手机验证码
* 整合阿里云的短信服务模块
3、登录功能
- 你项目使用的是SSO(单点登录)实现登录的吗?是怎么实现的?
我使用的是token的方式,用户登录成功后,根据相关的信息生成token,然后返回给cookie,他每次访问的时候都会从请求头中获取token的值,并解析获取用信息,判断是否已经登录
- 你使用什么方式生成Token的?
* 使用Jwt生成token字符串- Jwt有几部分组成,分别为什么?
* 三部分组成;
* 分别为:jwt头、有效载荷(用户信息)、签名哈希(防伪标志)
- 你登录功能的实现流程是什么?
* 调用登录的接口,会返回一个token字符串,把token字符串放到cookie中,创建前端拦截器进行判断,如果cookie里包含token字符串,把token放到header中。调用接口会从header中取值到token,根据token值获取到用户信息,然后在页面中进行显示
(2)微信扫码登录
- OAuth2是什么?
只是一种解决方法,按照一种规则,但是具体是什么规则,没有规定它是一种方案,但不是一种协议。
- 开放系统间授权
- 分布式访问
- 你是如何获取扫码人微信信息的?
扫码后,微信会返回两个值code和state;然后拿着这个code去请求微信的固定地址,获得两个值access_token访问凭证和openid每个微信的唯一表示;然后拿着这两个再去请求微信的一个固定地址获取到扫码人的信息。
4、名师列表功能
5、名师详情功能
6、课程列表功能
多条件查询分页列表功能
7、课程详情功能
- 课程信息显示(包含基本信息、讲师信息、分类信息、大纲信息)
- 判断课程是否需要购买
8、课程详细视频在线播放功能
- 阿里云视频点播、阿里云播放器
9、课程支付功能
- 生成课程订单
- 生成微信支付二维码
- 微信最终支付
微信支付功能的流程?
* 如果课程是收费课程,点击立即购买,生成课程订单;点击订单页面中的去支付,生成微信支付二维码;
* 使用微信区扫描二维码实现支付;支付之后,每隔3秒查询支付状态(是否支付成功),
* 如果没有支付成功就等待,如果支付成功之后,修改订单状态,向支付表中添加记录,跳转页面。