Hello,我是 Alex 007,一个热爱计算机编程和硬件设计的小白,为啥是007呢?因为叫 Alex 的人太多了,再加上每天007的生活,Alex 007就诞生了。

有一段时间没好好写文章了,可不是出去浪了,而是要做一个在线教育平台的项目,结果正好还赶上学校有一些课程要结课,忙里忙外的,今天也得交了,虽然不是很完善。
在线教育平台项目——需求分析_导航栏

内容比较多,分了三篇文章才介绍完:
需求分析
设计 & 接口定义
整体架构

一、需求提出
  1. 前后端完全分离,前端基于Vue框架,后端使用Django, 用restful API交互
  2. 前端展示课程,允许用户购买
  3. 为学员、导师、管理员分别设计3个平台,互不影响
  4. 学员角色功能:
    4.1 注册、登录、购买课程、支付宝接入
    4.2 在线视频播放、评价、提问题、交作业
  5. 导师角色功能(可参照crm中的实现方式):
    5.1 对学员进行跟进、上传批改作业过程、回复学员问题
  6. 管理员角色功能(可参照crm中的实现方式):
    6.1 查看用户注册趋势图、订单量报表
    6.2 增删改查课程
    6.3 为学员分配导师
    6.4 创建、管理资讯文章
    6.5 追踪学员学习进度
    6.6 导师跟进管理
    6.7 订单管理
  7. 为主要的功能开发单元测试
二、需求分析

顶部导航栏 Header

分析:

顶部导航栏分为四个部分,最左侧是Logo,其右是导航菜单,再右为一个搜索框,再往右是购物车。

最右边根据登录情况,未登录时显示登录|注册,登录时显示我的教室和头像

流程:
在线教育平台项目——需求分析_支付宝_02

设计图:
在线教育平台项目——需求分析_需求分析_03

首页 Home

分析:

首页主要分为三部分,首先是最上方的轮播图部分,前端页面从后端请求得到图片链接并渲染;其次是推荐免费课程、实战课程和就业班课程,为了快速开发就直接先在前端写死吧;最后是一些宣传介绍的部分,并不是很重要,也是直接在前端写死,有需求的可以自行实现。

流程:

在线教育平台项目——需求分析_redis_04

设计图:
在线教育平台项目——需求分析_redis_05
在线教育平台项目——需求分析_需求分析_06
在线教育平台项目——需求分析_需求分析_07

免费课 FreeLessons

分析:

免费课程页面也是包括三部分,顶部一个宣传Banner图,然后是免费课程的分类标签,最后是免费课程列表。根据选择不同的课程分类标签显示不同的分类里的课程列表。

每一个免费课程对应一个课程详情页,所有数据都需要从后端获取,所以前端写好模板,然后向后端获取数据渲染。

流程:
在线教育平台项目——需求分析_支付宝_08
在线教育平台项目——需求分析_增删改查_09

设计图:
在线教育平台项目——需求分析_导航栏_10

免费课程详情:
在线教育平台项目——需求分析_增删改查_11

实战课 PracticalLessons

分析:

实战课页面相对于免费课页面少了一个宣传Banner图,只需要获取实战课程分类标签和课程列表即可,只不过排版跟免费课程有所差异罢了。

每一个实战课程也对应一个课程详情页面,同上。

流程:
在线教育平台项目——需求分析_需求分析_12

设计图:
在线教育平台项目——需求分析_导航栏_13
实战课程详情:
在线教育平台项目——需求分析_增删改查_14

轻课 LightClass

分析:

轻课页面大部分都是介绍轻课形式和宣传,并没有什么新的功能,因此可以直接在前端写死。

设计图:
在线教育平台项目——需求分析_增删改查_15

就业班 EmploymentClass

分析:

就业班页面大部分都是介绍就业班形式和宣传,并没有什么新的功能,因此可以直接在前端写死。

设计图:
在线教育平台项目——需求分析_增删改查_16

购物车 ShoppingTrolley

功能:

购物车页面,直接从后端获取购物车里的内容然后渲染到页面即可,通过单选框选择不同的商品,可以执行删除和结算功能。

结算按钮跳转到结算页面自动计算价格,可以选择使用优惠券或者贝里等折扣,点击立即支付跳转到支付宝付款页面。

分析:

将价格策略+课程id+token认证存入Redis中,查询时检验课程是否存在,价格策略是否合适。

为什么选择Redis?

  1. 临时状态,购物车中的内容之后是要删除的,为了节省空间,可以用Redis定时删除。
  2. 价格策略可能经常修改,使用Redis可以避免对数据库进行重复操作。

流程:

在线教育平台项目——需求分析_支付宝_17

设计图:
在线教育平台项目——需求分析_导航栏_18
在线教育平台项目——需求分析_增删改查_19
在线教育平台项目——需求分析_需求分析_20

我的教室 Classroom

功能:

我的教室内容必须用户登录才能进入,前端编写模板,从后端获取用户的课程、贝里等信息直接渲染。

另外需求中还有一点,要根据学员、导师和管理员不同的角色显示不同的内容,比如学员打开我的教室显示的就是自己正在学习的课程之类的内容,老师打开的话显示自己的学生列表、学生提问列表、学生作业列表,管理员打开的活跳转到管理页面,可以实现对课程的增删改查、给学员分配导师等功能。

我做的时候呢,因为时间紧迫,只详细做了学生页面,老师页面直接搞了几个面板显示,管理员页面则是直接跳转,把之前的Matrix工作室CRM管理系统拿过来一番修修剪剪作为一个后台管理。

分析:

当使用者点击[我的教室]链接时

流程:

在线教育平台项目——需求分析_需求分析_21

设计图:
在线教育平台项目——需求分析_支付宝_22
在线教育平台项目——需求分析_导航栏_23