基于微信小程序的考研交流平台的设计与实现

3 系统需求分析与设计

3.1 系统需求分析

本系统基于微信小程序,实现教学互动软件系统是本文的目标,主要涉及到的系统角色分为学生、教师、管理员。系统角色主要有管理员,普通用户两种角色构成。

普通用户有如下几个核心需求:

  1. 学生用户可以在小程序登录,注册。
  2. 学生用户可以在小程序通过分类查看教学课程列表。
  3. 学生用户可以在小程序主页查看轮播图。
  4. 用户可以在小程序断签到、学习课程、参加作业练习等。
  5. 学生用户可以进行在线互动。

教师端有如下几个核心需求:

  1. 老师可以添加课程信息,发布课程学习的资料入视频或者PPT或者其他。
  2. 老师可以发布试卷给学生学习练习。
  3. 老师可以进行班级管理、学生管理。
  4. 系统管理员可以管理试卷。
  5. 系统管理员可以查看系统用户

根据上面的需求分析,结合具体实际情况,该系统主要由后台管理系统和教学互动小程序构成,通过分布式架构来构建此系统。

3.2 系统架构设计

分布式教学课程互动小程序系统采用分布式架构。整体上划分为小程序接口模块(为小程序提供接口服务)、后台管理接口模块(为后台管理提供接口服务)、静态资源模块(JS,CSS,HTML等页面资源,图片资源,小程序资源)。小程序代码储存在腾讯云由微信官方统一进行管理,其他静态资源储存在腾讯云COS对象储存中进行托管。当用户发出访问小程序或者后台管理接口的请求时,首先请求会到达网关(zuul),然后在zuul中进行请求的过滤,路由后通过zuul中的负载均衡算法,把请求交由对应的feign服务消费端进行处理, feign服务消费端通过负载均衡算法对服务集群中的服务进行消费,最终返回数据给用户。

3.3 业务功能模块设计

本平台是基于分布式构建的系统,所有采用模块化设计的理念进行开发,每个模块只管自己的业务,如果模块之间有联系的话,则通过暴露的接口传输,绝不在模块内部进行与其他模块的通信,降低系统的耦合度。本平台分为如下模块:小程序端的用户登录注册模块、教学课程学习模块、在线签到模块、在线互动模块、试题练习模块;PC管理端的用户管理模块、课程资源管理模块、试题试卷管理模块、系统管理模块。

图3.2系统功能设计图

下面我将分别为各模块作简单介绍。

(1)用户模块设计

本模块主要微信小程序用户的注册、登陆、用户信息和token的获取、用户收获地址的获取。

(2)教学课程模块设计

本模块主要是教师对教学课程维护之后、学生用户查看课程、对课程进行学习对学习资料的下载和在线阅览。

(3)在线签到模块设计

本模块具有如下功能:学生用户登录微信小程序端之后,点击签到。

(4)在线互动设计

本模块具有如下功能:学生用户登录系统之后,进行互动交流。

(5)试题练习模块设计

本模块具有如下功能:学生用户对练习习题的学习和反复练习。

(6)教师、管理员模块设计

本模块具有如下功能:管理员登陆、管理员分权、教师发布课程信息管理、班级管理、学生管理、练习试卷管理、系统管理等等。

3.4 系统数据库设计

针对以上的需求分析,得出主要表结构的关系,其中用户与课程是多对多的关系。课程与课程附件是一对多的关系,课程与评论是一对多的关系。其主要的ER图设计如下图所示。

根据该系统的逻辑功能,构建出的数据库系统表如下:

表3.1 Admin(管理员信息表)

字段名

类型

是否为空

说明

id

bigint(11)

NO

管理员Id

username

varchar(255)

NO

用户名

password

varchar(255)

NO

密码

role

varchar(255)

NO

权限

add_time

datetime

YES

添加时间

is_enable

tinyint(1)

NO

是否可用

nick_name

varchar(255)

YES

昵称

表3.2 Banner(轮播图表)

字段名

类型

是否为空

说明

id

bigint(11)

NO

轮播图Id

img_url

varchar(255)

NO

图片URL

link_url

varchar(255)

YES

链接URL

add_time

datetime

YES

添加时间

type

varchar(255)

YES

类型

sort_order

int(9)

YES

排序

banner_desc

varchar(255)

YES

轮播图描述

表3.3 Att_class(教学课程属性字段名表)

字段名

类型

是否为空

说明

id

bigint(11)

NO

属性Id

name

varchar(30)

NO

名字

sort_order

int(4)

YES

排序

表3.4 Cart(课程分类表)

字段名

类型

是否为空

说明

id

bigint(11) unsigned

NO

购物车Id

goods_id

bigint(11)

NO

教学课程Id

user_id

bigint(11)

NO

用户Id

goods_name

varchar(255)

NO

教学课程名字

goods_price

float unsigned

NO

教学课程价格

goods_number

int(9)

NO

教学课程库存

goods_attr

varchar(255)

YES

教学课程属性

goods_attrs_id

varchar(255)

YES

教学课程属性Id

add_time

datetime

YES

添加时间

goods_attrs_price

varchar(255)

YES

教学课程附加价格

表3.5 Category(教学课程分类表)

字段名

类型

是否为空

说明

id

bigint(11)

NO

分类Id

name

varchar(30)

NO

分类名

c_desc

varchar(255)

YES

分类描述

pid

varchar(30)

NO

分类Pid

sort_order

int(4)

YES

排序

is_show

tinyint(1)

NO

是否展示


表3.6 Freight_model(试卷表)

字段名

类型

是否为空

说明

id

bigint(11)

NO

模板ID

name

varchar(100)

NO

模板名

is_free

tinyint(1)

NO

是否免费

province

varchar(20)

NO

position

varchar(50)

NO

位置坐标

local_json

varchar(500)

YES

本地运输json

remote_json

varchar(500)

YES

远程运输json

city

varchar(20)

NO

城市

county

varchar(20)

NO

区县

detail

varchar(100)

YES

详细信息

表3.7 Message(后台消息提示表)

字段名

类型

是否为空

说明

id

bigint(11)

NO

消息Id

is_read

tinyint(1)

NO

是否阅读

message

varchar(1000)

NO

消息内容

add_time

datetime

YES

添加时间

message_type

varchar(255)

YES

消息类别

sender

varchar(255)

YES

发送者

表3.8 Sys_config(系统配置表)

字段名

类型

是否为空

说明

id

int(9)

NO

配置Id

variate_name

varchar(255)

NO

配置名字

variate_value

varchar(255)

NO

配置值

variate_desc

varchar(255)

YES

配置描述

表3.9 Users(用户表)

字段名

类型

是否为空

说明

id

bigint(11)

NO

用户ID

openid

varchar(100)

NO

OpendID

nick_name

varchar(100)

NO

昵称

avatar_url

varchar(255)

NO

头像链接

gender

tinyint(1)

NO

性能

province

varchar(50)

NO

省份

city

varchar(50)

NO

城市

Country

varchar(50)

NO

国家

add_time

datetime

YES

添加时间

3.5 本章小结

本章主要介绍了系统的分析和设计。详细介绍了系统架构设计,业务功能模块设计和数据库设计,并用图表的方式辅助展示。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-31 05:16:04       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-31 05:16:04       97 阅读
  3. 在Django里面运行非项目文件

    2024-03-31 05:16:04       78 阅读
  4. Python语言-面向对象

    2024-03-31 05:16:04       88 阅读

热门阅读

  1. React学习总结(三)之React探索

    2024-03-31 05:16:04       36 阅读
  2. 【算法】基数排序

    2024-03-31 05:16:04       37 阅读
  3. Git命令使用

    2024-03-31 05:16:04       37 阅读
  4. 服务器不支持PUT和DELETE请求处理

    2024-03-31 05:16:04       39 阅读