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

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 本章小结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/501699.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JUC:synchronized优化——锁的升级过程(偏向锁->轻量级锁->重量级锁)以及内部实现原理

文章目录 锁的类型轻量级锁重量级锁自旋优化偏向锁偏向锁的细节偏向锁的撤销批量重偏向批量撤销锁消除 锁的类型 重量级锁、轻量级锁、偏向锁。 加锁过程:偏向->轻量级->重量级 轻量级锁 轻量级锁的使用场景:如果一个对象虽然有多线程要加锁&am…

Django详细教程(一)

文章目录 一、安装Django二、创建项目1.终端创建项目2.Pycharm创建项目(专业版才可以)3.默认文件介绍 三、创建app1.app介绍2.默认文件介绍 四、快速上手1.写一个网页步骤1:注册app 【settings.py】步骤2:编写URL和视图函数对应关…

sort函数对vector一维或者二维数组排序

目录 sort对一维数组排序 1、sort对一位数组升序排序 2、sort对一维数组降序排序 sort对二维数组排序 1、sort默认对横坐标进行升序排序,如下: 2、使用自定义排序对纵坐标进行升序排序: 额外知识: 对横坐标进行降序排列,当…

【全栈小5】我的创作纪念日

目录 前言机缘收获粉丝和原创个人成就六边形战士 回顾文章原代码代码优化 憧憬 前言 全栈小5 ,有幸再次遇见你: 还记得 2019 年 03 月 29 日吗? 你撰写了第 1 篇技术博客: 《前端 - 仿动态效果 - 展开信息图标》 在这平凡的一天&…

CSS(三)---【盒子模型、边框、外边距合并】

零.前言 本篇主要介绍CSS中最重要的一种概念模型:“盒子模型”。 关于CSS的更多内容,可以查看作者之前的文章: CSS(一)---【CSS简介、导入方式、八种选择器、优先级】-CSDN博客 CSS(二)---【常见属性、复合属性使用】-CSDN博客 一.盒子模…

基于AI网关的光伏电站在线监测方案

光伏电站作为利用太阳能的重要方式,凭借其环保、高效和可持续性的优势,在全球范围内得到广泛应用。然而,光伏电站的运营和维护也面临着诸多难点和痛点。在这一背景下,AI智能网关的应用为光伏电站的运营和维护带来了新的突破。 光伏…

天梯算法Day3整理

浮点数解析 炸鱼题掠过 冲突值 题面 解析 方法一 —— 并查集 按照边值排序,然后按边值从大到小遍历,通过并查集判断能否将所有点无冲突地归于两个集合。在判断时,若有两个点不得不产生冲突,则输出这两个点之间的边值并结束。…

linux 网卡配置 vlan/bond/bridge/macvlan/ipvlan/macvtap 模式

linux 网卡模式 linux网卡支持非vlan模式、vlan模式、bond模式、bridge模式,macvlan模式、ipvlan模式等,下面介绍交换机端及服务器端配置示例。 前置要求: 准备一台物理交换机,以 H3C S5130 三层交换机为例准备一台物理服务器&…

变分信息瓶颈

变分信息瓶颈和互信息的定义 1 变分信息瓶颈 定义:变分信息瓶颈(Variational Information Bottleneck)是一种用于学习数据表示的方法,它旨在通过最小化输入和表示之间的互信息来实现数据的压缩和表示学习。这种方法通常用于无监…

OpenHarmony:全流程讲解如何编写ADC平台驱动以及应用程序

ADC(Analog to Digital Converter),即模拟-数字转换器,可将模拟信号转换成对应的数字信号,便于存储与计算等操作。除电源线和地线之外,ADC只需要1根线与被测量的设备进行连接。 一、案例简介 该程序是基于…

Java基础语法(三)| 循环语句

前言 Hello,大家好!很开心与你们在这里相遇,我是一个喜欢文字、喜欢有趣的灵魂、喜欢探索一切有趣事物的女孩,想与你们共同学习、探索关于IT的相关知识,希望我们可以一路陪伴~ 1. if语句 1.1 格式一 if (关系表达式) …

探讨企业邮箱安全问题:必须关注的四个关键要点

近年来,虽然出现了微信、企微等沟通方式,但电子邮件无疑仍然是公司对内对外沟通的首选方式。根据Statista的研究,每天大约有3330亿封电子邮件被发送和接收,预计这一数字在未来几年还会增长。然而,邮件诈骗的问题也一直…

SiameseRPN原理详解(个人学习笔记)

参考资源: 视觉目标跟踪SiamRPNSiameseRPN详解CVPR2018视觉目标跟踪之 SiameseRPN 目录) 1. 模型架构1.1 Siamese Network1.2 RPN 2. 模型训练2.1 损失函数2.2 端到端训练2.3 正负样本选择 3. 跟踪阶段总结 SiamRPN是在SiamFC的基础上进行改进而得到的一…

web布局——说清楚fixed布局

极限省流 想要fixed做导航页面:指定清楚top、left、right、bottom,没指定清楚布局位置就会采用默认的方式: 0)父元素的padding:fixed元素相对位移 1)同级元素是fixed元素:覆盖 2&#xff09…

unrealbuildtool 无法找到,执行 Generate Visual Studio Project 错误

参考链接 Generate cpp project Couldnt find UnrealBuildTool - Pipeline & Plugins / Plugins - Epic Developer Community Forums (unrealengine.com) 错误提示如下图: 解决方案: 打开 UnrealBuildTool,生成解决方案就可以了

解决Veeam做replication复制或备份任务时速度很慢问题

在网络层面配置无问题,比如都是万兆网情况下,发现对一个10T大小Linux虚拟机执行replication复制任务时,每次都需要30几个小时才可以跑完。如下图: 如何能让它更快一点跑完任务呢? 解决方法:登录Veeam,进入…

Verilog语法回顾--门级和开关级模型

目录 门和开关的声明 门和开关类型 支持驱动强度的门 延迟 实例数组 and,nand,nor,or,xor,xnor buf,not bufif1,bufif0,notif1,notif0 MOS switches Bidirecti…

Ubuntu20.04LTS+uhd3.15+gnuradio3.8.1源码编译及安装

文章目录 前言一、卸载本地 gnuradio二、安装 UHD 驱动三、编译及安装 gnuradio四、验证 前言 本地 Ubuntu 环境的 gnuradio 是按照官方指导使用 ppa 的方式安装 uhd 和 gnuradio 的,也是最方便的方法,但是存在着一个问题,就是我无法修改底层…

2013年认证杯SPSSPRO杯数学建模A题(第一阶段)护岸框架全过程文档及程序

2013年认证杯SPSSPRO杯数学建模 A题 护岸框架 原题再现: 在江河中,堤岸、江心洲的迎水区域被水流长期冲刷侵蚀。在河道整治工程中,需要在受侵蚀严重的部位设置一些人工设施,以减弱水流的冲刷,促进该处泥沙的淤积&…

在Windows中部署redis

下载redis Windows版redis在GitHub开源,由microsoftarchive维护,项目地址为 https://github.com/microsoftarchive/redis 找到releases,然后在latest中选择msi,或者zip进行下载 安装 msi安装包安装 下载完成后双击运行,同意协…