基于微服务和微信小程序的门户系统设计

2020-07-04 08:53曹天泽潘家志
科学技术创新 2020年18期
关键词:模拟题页面框架

曹天泽* 潘家志

(杭州师范大学,浙江 杭州310000)

在杭州师范大学,最早基于数学建模的竞赛培训主要是数学类专业大二、大三的学生。近年,随着学生综合素质的提升和兴趣的发展,吸引了相当多非数学类的学生参加,培训的目标团体由最初的数学类专业的学生,扩展到包括物理、化学、生物、计算机、电子、经管等多学院和多专业的学生,成为一项覆盖全校的学生竞赛培训活动。为了向全校普及数学建模的基础知识,并且宣传参加数学建模的益处,迫切需要一款流行的网络媒介来整合这些信息。为解决这一需求,设计了一套小程序门户系统,对系统进行了针对性的功能分析。

1 系统设计的方法

本系统采用的软件开发模式为敏捷开发,不同于边做边改模型、瀑布模型、快速原型模型和增量模型等传统软件开发模型,敏捷开发在项目初期就将项目分割为很多的小项目,每个项目开发为2~6 周,每个项目都经过需求设计、评审、排期开发、测试以及发布上线等阶段,在开发过程中系统一直保持可用的状态,通过不断的迭代升级系统功能和开发新特性。

首先基于需求进行概要设计,然后基于概要设计进行1.0系统的详细设计,主要分析学生端和教师端的功能,基于需求分析实体间的关系,然后进行数据库设计,建立系统数据库,进行界面设计。然后进行后端的接口开发,接着基于界面进行小程序的前端开发,最后实现web 端的管理员界面。

2 相关技术概述

2.1 整体技术选型

本系统采用B/S 结构开发,数据库使用流行的开源数据库MySQL,服务端使用JAVA 编程语言开发,基于Git 进行源码的版本管理,基于Maven 进行代码的工程管理。在框架应用上,后端使用SpringBoot 及其附属的生态系统各个库包,前端Web 页面基于Bootstrap 及其配套生态系统中的插件完成开发工作。

2.2 SpringBoot

Spring[1]是JAVA 后端开发在业界最流行的框架,它提供控制反转(IOC)特性和AOP 特性,在开发过程中简化了事务配置和远程访问等功能的实现。有相当多的JAVA 框架提供了对Spring 的支持。但在以前,集成各种框架到Spring 往往需要很多额外的配置,而SpringBoot 就是为解决这一问题开发出的框架。通过其“开箱即用”和“约定大于配置”两大策略,尽可能的自动化进行配置,简化的安装Spring 应用的难度。

2.3 Swagger

Swagger 是一个开源的RESTful 风格在线文档生成框架。在SpringBoot 中通过springfox-swagger2 和springfox-swagger-ui 的库包,进行简单配置后,就可以基于注解自动识别Spring MVC中的Controller 服务,生成在可在线调试的RESTful 服务。

2.4 Bootstrap、Bootstrap-Validator 和Bootstrap-Markdown

Bootstrap 是基于HTML、CSS 和JavaScript 开发的前端框架,在引入Bootstrap 的CSS 和JavaScript 文件后,通过简单的HTML片段模板就可以生成漂亮的页面样式。

在Web 开发中,经常要进行大量的表单设计,表单的内容基于业务需要添加不同限制,以此来规范用户的输入。Bootstrap-Validator 就是为解决这一需求而开发的JavaScript 库包,它基于Bootstrap 开发,可以和Bootstrap 无缝集成,并且提供了本地化配置方案,对于中文的内容提示非常友好,如图1。库包内已经内置了base64、数值、日期、邮箱、文件、十六进制颜色值、IP 地址、MAC 地址、电话、正则、远程验证、字符串长度等验证功能,并且支持自定义规则和提示内容。

图1 Bootstrap-Validator 的中文提示功能

Markdown[2]是一种简单标记语法,它通过配合定制的渲染规则可以得到良好排版的文章。在系统中经常中部分模块需要实现发布文章的功能,对于使用该系统的教师和学生来说,Markdown 在日常教学中应用非常广泛,教师和学生可以直接应用来编辑文章。因此系统在前端编辑文章页面引入了Bootstrap-Markdown,它是一款基于Bootstrap 的富文本编辑器,支持在线编辑Markdown 文本和预览功能。

3 系统的功能设计

3.1 学生小程序端子模块设计

学生子模块的权限为学生输入学号和密码成功登陆后,学生可以浏览最新的通知,查看往年的试题和资料,查看教师发布的模拟练习题,提交模拟题的解答给系统。

3.1.1 新闻通知

学生登陆到小程序的默认首页就是通知和新闻的列表,以日期从近到远展示了通知的标题信息,学生可以通过上下滑屏来刷新和浏览不同时间的通知概要信息,通过点击通知的标题查看通知的详情信息。

3.1.2 学习资料

在小程序的第二个tab 展示的是历年的试题和资料,学生通过点击不同的标签可以分别浏览“常见模型”、“经典算法”、“实用工具”“历年真题”这几个不同类别的资料。

3.1.3 我的信息

在小程序的第三个tab 展示的是学生个人相关的数据,一个是“我的模拟”,展示教师发布的模拟题信息,对于已提交和为提交解答文档的模拟题,系统会有不同的信息标注。另一个是我的信息,学生可以通过该入口修改自己的密码。

3.2 教师子模块设计

教师子模块的权限为教师从web 端输入账号和密码登录后,教师可以发布静态文件资源,编辑发布通知,发布模拟题,有超级管理员权限的教师,还可以添加教师,设置管理员。

3.2.1 新闻管理

教师登录到系统后,默认首页就是新闻管理的页面,可以浏览已发布的新闻,修改、删除、发布新的新闻。新闻内容的编辑支持Markdown 功能。

3.2.2 文件管理

通过文件管理的tab 进入此功能,教师可以上传文件、音频和视频等资源。系统会生成对应文件在系统中的链接。

3.2.3 模拟题管理

通过模拟题管理的tab 进入此功能,可以按Markdown 格式编辑发布模拟题内容,选择接受的学生,使得只有特定的学生可以查看到模拟题。

3.2.4 学生管理

通过学生管理的tab 进入此功能,可以通过页面或者上传excel 文件批量导入学生信息进入系统,可以对学生进行重置密码操作。

3.2.5 教师管理

通过学生管理的tab 进入此功能,非超级管理员可以修改自身密码。超级管理员可以添加和删除教师,可以修改所有教师密码。

4 结论

通过docker 部署后端服务,使得运维更简单。通过本系统为扩大数学建模的影响范围,同时大大减轻了在组织竞赛培训时的人力和物力。

猜你喜欢
模拟题页面框架
刷新生活的页面
有机框架材料的后合成交换
框架
答案
让Word同时拥有横向页和纵向页
2020年高考数学模拟题选编(三)
2020年高考数学模拟题选编(四)
2020年高考数学模拟题选编(一)
关于原点对称的不规则Gabor框架的构造
我国在WYO框架下面对的贸易保护现状及应对