谷粒学院项目总结

项目概览

项目用的b2c模式,有前台管理系统和后台管理系统

后台系统的功能

  • 登录功能(集成SpringSecurity框架)

  • 权限管理模块

    (1) 菜单管理:列表,添加,修改,删除

    (2) 角色管理:列表,添加,修改,删除,为角色分配菜单

    (3) 用户管理:列表,添加,修改,删除,为用户分配角色

    (4) 权限管理表的关系

  • 讲师管理模块

    (1) 条件查询分页列表,添加,修改,删除

  • 课程分类模块

    (1)添加课程分类 (读取Excel中里面课程分类数据,添加到数据库中)

    (2)课程分类列表显示(使用树形结构实现课程分类列表)

  • 课程管理模块

    (1)添加课程

    • 第一步 填写课程基本信息
    • 第二步 添加课程大纲(章节和小节)
    • 第三步 课程信息确认,最终课程发布

    (2)课程列表(条件查询分页列表,增删改查已发布和未发布课程)

    (3)添加小节上传课程视频

  • 轮播图管理

  • 订单管理(有待补充)

前台系统的功能

  • 首页数据显示(redis缓存)

    (1) 显示幻灯片功能

    (2) 显示热门课程

    (3) 显示名师

  • 注册功能

    (1) 填写基本信息(加密密码)

    (2) 获取手机验证码(阿里云短信服务)

  • 登录功能

    (1) 手机账号登录

    • SSO(单点登录) JWT生成token实现

    • JWT为头信息,有效载荷(用户信息),签名哈希(防伪标志)组成

    • 登录调用登录接口返回token,把返回token放入cookie,创建前端拦截器进行拦截,

      如果有token,放入header,根据token获取用户信息,用户信息放入cookie,登录成功

    (2) 社交账号(微信)扫码登录

    • OAuth2

      针对特定问题的解决方案,主要两个问题:开发系统间的授权,分布式访问(JWT为OAuth

      2的具体实现之一)

    • 如何获取扫描人信息

      扫码之后微信接口返回code(临时票据),拿着code请求微信固定地址,得到两个值:

      access_token(访问凭证)和openid(微信唯一标识),拿着这两个值在请求固定地址,

      得到微信扫码人信息(比如昵称,头像等等)

  • 名师列表功能

    • 分页显示名师信息
  • 名师详情页

    • 点击名师跳转名师详情与他所教的课程
  • 课程列表功能

    • 更具课程分类分页查询课程
    • 根据销量,价格等排序课程
    • 课程列表分页显示
  • 课程详情页

    • 课程信息显示(课程基本信息,分类,讲师,课程大纲)
    • 判断课程是否需要购买
    • 课程评论
  • 课程视频在线播放

    • 整合阿里云视频播放器
    • 阿里云视频点播
  • 课程支付功能(微信支付)

    • 生成课程订单

    • 生成微信支付二维码

    • 微信扫码支付实现过程

      如果课程收费,点击购买,生成课程订单,向订单表加数据,点击订单页面中去支付,

      生成微信支付的二维码,用微信扫描二维码实现支付

    • 支付之后,每隔三秒查询是否支付成功,如果没有,等待,支付成功之后,改订单状态

      变为已支付,在支付记录表中加一条数据,把订单表中字段改为已支付,返回课程

      详情页面,可观看视频

项目使用的前端技术

  • vue

    • 基本语法

    • 指令

      v-bind() (单向绑定) v-model (双向绑定) v-if v-for v-html

    • 生命周期

      created(): 页面渲染之前执行

      mounted(): 页面渲染之后执行

    • ES6规范

  • Element-ui

  • nodejs

  • NPM

    • 包管理工具,类似Maven
  • Babel

    • 把es6转换成es5
  • 前端模块化

  • 后台系统使用vue-admin-template(基于vue加element ui)

  • 前台系统使用Nuxt(基于vue)

  • Echarts

    • 图表工具

项目使用的后端技术

  • 项目采用微服务架构

  • SpringBoot

    • SpringBoot本质上是Spring,只是快速构建Spring工程脚手架
    • 细节
      • 启动类包扫描机制
      • 设置扫描规则@ComponentScan(“包路径”)
      • 配置类
    • SpringBoot配置文件
      • 加载顺序: bootstrap application application-dev
    • 版本:2.2.1
  • SpringCloud

    • 很多框架的总称,使用这些框架实现微服务架构,基于SpringBoot实现
    • 项目使用Nacos替代了一些组件
    • Nacos
      • 使用Nacos作为注册中心
      • 使用Nacos作为配置中心
    • Feign
      • 服务调用
    • 熔断器
    • GateWay网关,不用zuul
    • 版本Hoxton
  • MybatisPlus

    • MybatisPlus是对Mybatis增强
      • 自动填充
      • 乐观锁
      • 逻辑删除
      • 代码生成器
  • EasyExcel

    • 阿里巴巴提供的excel工具
    • EasyExcel对poi进行封装,采用SAX方式解析
    • 项目应用在添加课程分类,读取excel数据
  • SpringSecurity

    • 整合实现权限管理

    • SpringSecurity组成认证和授权

    • 认证授权过程
      谷粒学院项目总结_第1张图片

    • 执行过程

谷粒学院项目总结_第2张图片

  • Redis

    • 首页Redis缓存
    • 其他一些数据缓存(验证码,授权)
  • Nginx

    • 反向代理服务器
    • 使用请求转发
  • QAuth2+JWT

    • 登录
  • HttpClient

    • 请求微信地址
  • Cookie

    • 存token,用户信息
  • 微信登录

  • 微信支付

  • 阿里云OSS

    • 文件存储(头像)
  • 阿里云视频点播

    • 视频生成,播放凭证播放,阿里云播放器
  • 阿里云短信服务

    • 发送短信验证码
  • Git

    • 上传码云
  • Docker

    • 部署
  • jekins

    • 部署

你可能感兴趣的:(项目,java,spring,spring,cloud,alibaba,vue.js)