大学校园疫情防控系统的设计与实现开题报告
1. 研究目的与意义
自新冠疫情发生以来,已经夺走许多人的生命,令人不胜惋惜,目前虽然国内已经将疫情控制,但是世界上其他国家新冠疫情却面临着失控局面,作为全球化中的一员,我国现在仍面连着巨大的疫情防控压力,校园防控仍是重中之重,针对目前新冠疫情现状,为了减轻管理人员工作 负担,提高校园疫情管理效率,设计并实现一款大学校园疫情防控系统
2. 课题关键问题和重难点
大学校园疫情防控系统一共分为三大模块:大学校园疫情防控系统的管理员模块,大学校园疫情防控系统的教职工模块,大学校园疫情防控的学生模块,分别对应这师生员工出入校管理及健康信息管理、访客入校审核管理、访客离开登记管理、 防疫物资管理、测温管理、核酸检测管理、疫情公告等功能模块
3. 国内外研究现状(文献综述)
三、文献综述(或调研报告) 此系统面向全市各校园、部分提供疫情管理服务,项目 功能比较多,牵涉面比较广,涉及人员组织多,以及时间紧 任务重,使用了调用B/S返回架构风格,面向对象和敏捷开发 方式。使用了 B/S 架构,缩短开发周期,节约开发成本,避免客户端安装,使系统迭代升级更加快捷容易;此系统设计充分考虑长远发展。遵循可扩展性,统一性, 先进性,高可靠性,开放性和安全性的设计原则进行开发从系统设计到开发在到部署各阶段使用了大量技术。后台基于Java编程语言开发,主要使用了主流的 SpringBoot 框架进行快速整合,持久层使用 MyBatis,缓存使用 Redis,报表导出使用 poi 和 Freemarker,使用 Eureka 实现服务注册 和服务发现,使用 Ecache 实现动态字典,Spring Gateway 实 现网关转发,日志搜索使用 ElasticSearch 框架。展示层使用 Vue2 和 IViewUI 组件实现,图表绘制使用了 ECharts 和 DataV,使用 VueX 状态管理器进行页面间交互数据,业务数据 存储使用 MySq,日志存储使用非关系型 MongoDB 数据库。 平台开发时统一环境,使用 Idea 开发集成环境进行开发。 并且设计了三个项目环境分别为开发、测试和生产,使用开 发环境进行开发,开发完成提交代码部署到测试,测试无问题后,投入到生产使用。 此平台前后端分离开发,以降低维护成本,提高工作效 率,使分工更加明确。客户端使用 https 协议进行请求,使请求数据更加安全。前后端使用 Json 格式的 RESTFul 风格进行数据交互。敏感数据加密主要使用 AES、MD5、SM2、 SM4 算法。 使用 Maven 进行包管理,搭建了云内私有仓库。在项目 打包时,为保证源码安全,代码进行混淆处理,防止带来安 全威胁。为方便版本管理和团队协作,使用 Git 和 SVN 进行版本 控制。SVN 和 Git 搭建在政务内网中,防止代码泄漏风险。 权限控制到每个人,既每个人的权限各不相同[2] 大学校园疫情防控系统里包含了全体师生的基本信息,数据的安全性、完整性要得到充分的保护,对系统的网络 结构设计就提出了更高的要求。当前,高职院校的师生可能分布在全国的各地,所有用户可直接通过 IE 浏览器访问本校 Web 服务器,进行系统的相关操作。由于疫情管理系统需要运行在互联网上,师生直接接入 承载网络后,其数据需要通过防火墙才能到达服务器,在接 入千兆承载网的路由器上配置 VPN,实现疫情管理系统在 内网的管理和维护,有利于对用户的访问控制和网络安全。 另外,Web 服务和数据库服务可以分开放置在不同服务器 上,这样更有利于数据的保护和恢复。[3] 本系统前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库使页面快速成型。后端部分:采用springboot作为开发框架,同时集成MyBatis、Redis等相关技术。 MVVM模式[4] MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。微软的WPF带来了新的技术体验,如Silverlight、音频、视频、3D、动画……,这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了 诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。[4] Mysql数据库[8] 科技的进步,给日常带来许多便利:教室的投影器用到了虚拟成像技术,数码相机用到了光电检测技术,比如超市货物进出库的记录需要一个信息仓库。这个信息仓库就是数据库,而这次的大学校园防疫与服务系统也需要这项技术的支持。 用MySQL这个软件,是因为它能接受多个使用者访问,而且里面存在Archive等。它会先把数据进行分类,然后分别保存在表里,这样的特别操作就会提高数据管理系统自身的速度,让数据库能被灵活运用。MySQL的代码是公开的,而且允许别人二次编译升级。这个特点能够降低使用者的成本,再搭配合适的软件后形成一个良好的网站系统。虽然它有缺点,但是综合各方面来说,它是使用者的主流运用的对象。[8] B/S结构[4] B/S(Browser/Server)比前身架构更为省事的架构。它借助Web server完成数据的传递交流。只需要下载浏览器作为客户端,那么工作就达到“瘦身”效果, 不需要考虑不停装软件的问题[9]。 spring boot框架介绍 Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。Spring框架具有面向切面编程(AOP)框架,SpringAOP框架基于代理模式,同时运行时可配置;AOP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满足基本需求。Spring框架下的事务管理、远程访问等功能均可以通过使用SpringAOP技术实现。Spring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在Java平台的任何环境中工作。Spring集成多种事务模板,系统可以通过事务模板、XML或Java注解进行事务配置,并且事务框架集成了消息传递和缓存等功能。Spring的数据访问框架解决了开发人员在应用程序中使用数据库时遇到的常见困难。它不仅对Java:JDBC、iBATS/MyBATIs、Hibernate、Java数据对象(JDO)、ApacheOJB和ApacheCayne等所有流行的数据访问框架中提供支持,同时还可以与Spring的事务管理一起使用,为数据访问提供了灵活的抽象。Spring框架最初是没有打算构建一个自己的WebMVC框架,其开发人员在开发过程中认为现有的StrutsWeb框架的呈现层和请求处理层之间以及请求处理层和模型之间的分离不够,于是创建了SpringMVC。 Vue.js 主要功能[7] Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。 Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。 Vue.js 自身不是一个全能框架——它只聚焦于视图层。因此它非常容易学习,非常容易与其它库或已有项目整合。另一方面,在与相关工具和支持库一起使用时,Vue.js 也能驱动复杂的单页应用。 疫情防控信息填报会聚集在某一时间段内完成, 所以对这套系统的并发量有一定的要求。[10] 该 系统分别有反向代理服务器、 应用服务器 (多台)、 上 传服务器、 数据库服务器组成。 各个服务器之间安装 AppNode 之后通过节点管理功能实现 Web 端的配置与 管理。反向代理服务器, 通过 AppNode 安装反向代理运 行环境之后, 设置上游服务器, 并配置对应的负载均衡策略, 实现用户在多个应用服务器之间的负载均衡。 应用服务器, 通过 AppNode 创建 PHP7.1 的运行环 境, 并建立网站, 通过 git 克隆命令将 Fastadmin 代码部 署至服务器, 并设置定时任务以便自动将新代码拉取到 本地, 为自动更新代码做准备。 上传服务器,通过 Fastadmin 的上传组件上传的图 片会存在于 public\uploads 文件夹中, 为了避免上传的 文件分散在各个应用服务器上, 需要特定一台应用服务 器作为上传服务器, 并在反向代理服务器上设置对应的 location 策略, 将访问图片的流量引流到上传服务器, 防止后台查询健康码和行程卡图片的请求被分发到其他 应用服务器导致上传或读取失败。数据库服务器, 通过 AppNode 安装 MySQL5.7、 Redis5.0 并针对应用服务器和上传服务器开放 3306 和6379 端口, 使其可访问数据库和缓存服务[4]
【参考文献】 [1] 朱新铭,刘海砚,卢宣蓓,徐青,张付兵.疫情防控常态化时期的高校人员态势感知系统设计与实现[J].北京测绘,2021,35(11):1479-1483 [2]温长松.基于PHP MySQL的疫情防控信息填报收集系统设计与实现[J].电脑编程技巧与维护,2022,(09):110-112 172 [3]关子良.疫情防控综合管理平台设计与实现[J].信息技术与信息化. 2022,(07):42-46 [4] 施珺,纪兆辉,赵雪峰. Java语言实验与课程设计指导 第三版[M] .南京:南京大学出版社,202101 [5] 杨种学, 王小正.Java EE框架技术与案例教程[M] .南京:南京大学出版社,201712 [6] 王新科,李凯.基于JAVA的高职院校师生疫情防控管理系统的研究[J].长江信息通信. 2022,35(05):156-158 [7]胡琨.基于微服务的校园疫情防空系统的设计与实现[D].武汉:武汉轻工大学硕士学位论文,2022. [8] 肖睿,程宁,田崇峰,金志雄,杜毅. MySQL数据库应用技术及实战[M].北京:人民邮电出版社,201801. [9] Xu Lingjingyuan,Yao Jianming. Supply Chain Scheduling Optimization in anAgricultural Socialized Service Platform Based on the Coordination Degree [J]. MDPI.SustainabilityVolume 14, Issue 23. 2022. PP 16290-16290 [10] Xiuru Jian,Xiutong Jian,Yanjiao Wei,Ziyue Liu,Xiaolong Wang. Application and Management of College EpidemicPrevention and Control Information Platform Based on Face Recognition andTemperature Measurement Technology[J]. Francis. Academic Journal of Computing amp; Information ScienceVolume 5.0, Issue 9.0. 2022. |
4. 研究方案
四、方案(设计方案、研制方案、研究方案)设计及论证(不少于900字) 1. 系统功能结构 系统总体功能结构如图1所示。
图1 大学校园疫情防控系统的总体功能结构图 用户管理模块:在本模块中可以实现注册登陆,选择不同的权限来登录账号,来实现各种功能需求。 出入校管理模块:在本模块中可以对学生和教职工出校和入校进行登记理由。 健康信息管理模块:教职工和学生可以上传当前体温和核酸报告到管理员界面,从而来进行健康管理。 访客等级管理模块:在本模块中可以对来校人员就行信息登记和查看。 防疫物资管理模块:在本模块中,可以对防疫物资进行管理,进行增删改查。 测温管理模块:和健康信息管理模块一样进行温度的管理。 核酸检测管理模块:和健康信息管理模块一样进行核酸的管理。 疫情公告模块:在该模块中可以编辑信息发布到各种用户的账号中来让他们知道信息。
2.核心功能流程图
图2登陆注册验证功能流程图
图3入校申请功能流程图
3.研究方案 大学校园疫情防控系统使用IDEA开发工具,采用Java 语言编写开发,使用了sringboot的结构,使用MySQL数据库提供数据存储功能。根据系统的整体功能设计,进行系统详细设计。 进行需求分析明确目标用户的真实需求,确定系统各个模块功能的设计方向,建立基本的系统模型并对校园疫情防控系统的数据库表进行概念设计和详细设计。根据系统功能的基本设计数据库 主要对于数据库进行设计从而来解决最基本的数据概念 从系统设计到开发在到部署各阶段使用了大量技术。后 台基于 Java 编程语言开发,主要使用了主流的 SpringBoot 框 架进行快速整合,持久层使用 MyBatis,缓存使用 Redis, 报表导出使用 poi 和 Freemarker,使用 Eureka 实现服务注册 和服务发现,使用 Ecache 实现动态字典,Spring Gateway 实 现网关转发,日志搜索使用 ElasticSearch 框架。展示层使用 Vue2 和 IViewUI 组件实现,图表绘制使用了 ECharts 和 DataV,使用 VueX 状态管理器进行页面间交互数据,业务数据 存储使用 MySql8,日志存储使用非关系型 MongoDB 数据库。 平台开发时统一环境,使用 Idea 开发集成环境进行开发。 并且设计了三个项目环境分别为开发、测试和生产,使用开 发环境进行开发,开发完成提交代码部署到测试,测试无问 题后,投入到生产使用。 此平台前后端分离开发,以降低维护成本,提高工作效 率,使分工更加明确。客户端使用 https 协议进行请求,使 请求数据更加安全。前后端使用 Json 格式的 RESTFul 风格 进行数据交互。敏感数据加密主要使用 AES、MD5、SM2、 SM4 算法。 使用 Maven 进行包管理,搭建了云内私有仓库。在项目 打包时,为保证源码安全,代码进行混淆处理,防止带来安全威胁 疫情防控填写的数据包含众多的个人隐私信息, 所 以后台管理和统计权限应最小化权限原则开放, 如教职 工管理员只能查看教工打卡数据, 学生管理员只能查看 学生数据, 学校管理员可查看师生全部数据, 采用多级 授权的方式赋予不同管理员不同的管理权限 在 高校 日 常 的 教学 科 研 活 动中 , 涉 及 到学 生 的 学 习情 况 、 教 师的 工 作 状 况等 与 学 校 相关 的 各 种 信 息。这些数据都是需要采集的,但是在获取这些数据之后,还需要进行相应的处理,比如将采集到 的图像转换成数字,再通过人脸识别技术实现对其的识别。基于这一需求,设计了一套人脸识别与 监控系统。该系统主要采用人脸识别技术,通过人脸识别系统提取图像中的信息,并根据相应的算 法实现数据处理的结果。同时,在本系统中设置了用户名和密码功能以及相应的权限设置。当有人 进入后台时,可 以选 择 添 加、 修 改或 删 除 相关 信 息等 操 作 ,从 而 对数 据 库 数据 进 行备 份 。 E-R图如图4所示:
图4系统E-R图
各实体类描述如下: 管理员表(admin):(编号id,管理员账号name,登陆密码password、性别sex、手机phone、权限level); 教职工表(employ):(编号id,教职工账号name,登陆密码password、性别sex、年龄age、手机phone、权限level); 学生表(student):(编号id,学生账号name,登陆密码password、性别sex、年龄age、手机phone、权限level); 公告表(advertiser):(系统编号id,公告标题name,内容content、时间time); 出入管理表(churu):(系统编号id,人物姓名name,添加日期time、理由reason); 访客登记表(dengji):(系统编号id,内容name、时间time); 健康管理表(jiakang):(系统编号id、温度name、时间time、提交filed、提交照片名称filename、用户sername 、权限level、上传账户uploaduserid ) 防疫系统文件表(nx_system_file):(系统编号id、物品名称originname、照片名称filename) 返校申请审核表(submit):(系统编号id、返校申请name、时间time、用户名称username、权限level、审核结构status、理由reason、同意人verifyname) 物资管理表(wuzi):(系统编号id、名称name、价格price、文件编号fileid、文件名称filename、用户名称username、权限level、上传账户uploaduserid)
|
5. 工作计划
五、工作计划(不少于300字)
2022-2023-1学期:
第15-16周:完成选题,查阅相关中英文资料,进行相关技术的学习。
课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。