主要内容:
本系统是以疫情期间疫情数据为样本,对其进行编码分析,并将之与国家卫健委发布的疫情数据进行分析统计,实现了对疫情的多维度分析,首先宏观分析了全国疫情的分部情况,各省的疫情情况,然后分析了境外输入的各省分部情况,全国现有确诊趋势分析,全国疫情新增趋势、全国现有疫情构成分析以及全国各省自治区直辖市现有确诊、累计确诊、治愈、死亡情况的统计。
目标和要求:
通过登录平台,让用户对全国疫情以及各省的疫情情况进行更直接的了解,通过后台可以了解发布的新闻以及数据化的管理
完成课题需要条件:
开发工具及技术
IntelliJ IDEA开发环境
MySql数据库管理系统
SpringBoot框架
JavaScript脚本语言
Ajax服务器刷新技术
一、 绪论
1.1 项目开发背景
在今天,病毒依然存在,在人们不知不觉中遍布各个角落,其传播的严重性令人堪忧,并且衍生出的次生问题和灾害也陆续出现。旧的习惯和界限并没有消失,新的话题和议题也相继而涌。自从新冠肺炎疫情爆发,一时间给许多国家和人民带来了严重的生命健康问题,同时对经济发展产生了重大影响,人员的来回流动也加剧了疫情传播,感染风险不断增高。这次疫情虽然采取了较为严厉的防控措施,但短期内人们的生活必将受到空前冲击。
新冠疫情爆发后,全球疫情形势依然严峻,对人们的生命健康造成了巨大的影响。在大数据的背景下,网络总能生成大量的信息数据。通过对这些数据进行整理和展示,可以让人们更直接的地了解疫情情况。
1.2 项目开发意义
本系统是以新冠疫情期间数据为样本,对数据样本进行分析,并将之与国家卫健委发布的疫情数据进行分析统计,实现了对疫情的多维度分析,首先宏观分析了全国疫情的分部情况,各省的疫情情况,然后再分析境外输入各省分公司的情况。全国现有确诊趋势分析,全国疫情新增趋势、全国现有疫情构成分析以及全国各省自治区直辖市现有确诊、累计确诊、治愈、死亡情况的统计。
疫情可视化页面提供了快速直观的实时洞察,以了解疫情的发展以及感染、治愈和死亡人数的每日增长。充分利用日益成熟的互联网环境,通过B/S架构建立可视化管理平台。收集和展示可视化疫情数据,跟踪疫情。通过数据收集、分类分析,对突发性事件进行预报和监测。对于战胜疫情至关重要。
通过可视化能够及时准确评估疫情传播情况,根据每日疫情数据了解疫情形势并分析疫情趋势。使人们能及时接收到疫情的情况,这对正在影响我们的生活、旅行、通讯、教育和经济的全球疫情危机,提高人们的自我防范意识和及时产生应对防控措施具有重要意义。
1.3 论文组织结构
第一部分:引言,描述了疫情可视化查看系统的开发背景及意义。
第二部分:工具与技术内容的开发。简单介绍了疫情可视化系统的开发工具与技术。
第三部分:系统分析,对疫情可视化系统的开发进行可行性分析,以及需求和性能。
第四部分:介绍了系统的内容,疫情可视化系统的各种功能设计的系统模块,以及数据库和表的结构。
第五部分:对疫情可视化查看系统的详细设计与实现。包括系统各部分的具体设计和代码实现。
第六部分:系统测试,测试疫情可视化查看系统,以验证系统是否正常工作并满足需求。
第七部分:综述可视化查看系统。
参考文献:展示本次研制过程中所参考的材料。
最后是致谢。
二、开发环境及技术介绍
2.1 开发环境
项目运行环境:
系统:Windows 10
后端开发环境:IDEA、JDK1.8.0_181
数据库:MYSQL 8.0
2.2 开发技术介绍
2.2.1 Spring Boot
Spring Boot是Pivotal团队提出的一种新结构,用于简化新的Spring应用程序的初始创建和开发。框架采用了一种特定的配置方法,无需开发人员定义典型的配置。由于这些特性,它现在是主要框架之一。
Spring Boot 主要特征是:
(1)快速创建独立运行的 Spring 项目以及与主流框架集成。
(2)使用嵌入式的 Servlet 容器,应用无需打成 WAR 包跑在servlet上。
(3)提供了大量的“starter”自动依赖与版本控制。
(4)大量的自动配置,简化开发的同时也可以自定义修改默认配置。
(5)提供产品级的功能。
(6)无需配置 XML,无代码生成,开箱即用。
总之,Spring Boot 是基于 Spring 框架,提供了更加便捷化的配置与开发体验的开源应用框架。
2.2.2 MySQL数据库
MySQL是目前最流行的关系型数据库管理系统,在WEB应用方面,MySQL是RDMS(关系数据库管理系统:Relational Database Management System)的最佳应用软件之一。
它的优势包括:
MySQL 数据库管理系统主要的系统特性如下:
(1)MySQL 开放源代码,无需支付额外费用,开发成本较低。
(2)性能卓越,支持多线程,服务相对稳定。
(3)支持大型的数据库,可以处理拥有上千万条记录的大型数据库。
(4)软件体积较小,使用相对简单,并且易于维护。
(5)可以安装在不同的操作系统,并且提供多种编程语言的操作接口。
(6)历史悠久,社区用户活跃,遇到问题便于寻求帮助。
(7)经过了时间以及市场的验证,是目前市场上公司选择的数据库之一。
2.2.3 MyBatis-Plus 框架
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。其特性有:
(1)无侵入:只做增强不做改变,引入它不会对现有工程产生影响。
(2)损耗小:启动会自动注入基本 CURD,性能基本无损耗,直接面向对象操作。
(3)内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求。
(4)支持Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错。
(5)支持主键自动生成:支持多达4种主键策略(内含分布式唯一 ID 生成器-Sequence),可自由配置,完美解决主键问题。
(6)支持Active Record 模式:支持 Active Record 形式调用,实体类只需继承Model 类即可进行强大的操作。
(7)内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询。
(8)分页插件支持多种数据库:支持 MySQL、Maria DB、Oracle、DB2、H2、HSQL、SQLite、SQL Server 等多种数据库。
(9)内置性能分析插件:可输出 SQL 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询。
(10)内置全局拦截插件:提供全表Delete、Update 操作智能分析阻断,也可自定义拦截规则,预防误操作。
总的来说 MyBatis-plus 是在 MyBatis 的基础上再增强的数据库框架,可以使开发人员更加便捷的完成对数据库的系列操作。
2.2.4 Ajax
AJAX是一个局部刷新技术,通过向服务器发送和获取请求来刷新某个局部界面,而非整个界面的刷新。它使用XML和JavaScript向服务器发送和接收数据。服务器用于HTML页面,可以实现局部刷新和异步刷新页面。
(1)页面无刷新更新数据。
(2)异步服务器通信。
(3)前端和后端负载平衡。
(4)基于标准被广泛支持。
(5)界面与应用分离。
2.2.5 ECharts
ECharts是一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE9/10/11,Chrome,Firefox,Safari等),底层依赖矢量图形库,提供直观,交互丰富,可高度个性化定制的数据可视化图表。
ECharts的优点:
(1)体积小,免费、上手快
(2)国人开发,文档全,便于开发和阅读文档。
(3)图表丰富,可以适用各种各样的功能。
三、系统分析
3.1 可行性分析
3.1.1 技术可行性
这款基于Spring Boot的可视化查看系统是使用Java Web作为主要开发技术、IntelliJ IDEA作为集成开发环境、HTML5和CSS用于显示静态页面和用于动态呈现界面的JavaScript开发的。框架Spring Boot关注业务逻辑问题。MyBatis-Plus用于做与数据库交互的问题。
3.1.2 经济可行性
从成本角度考虑,项目的开发工具是免费的,因此成本不高,经济成本低,需要投入人力和时间。此外,由于项目开发难度较小,预计两个月内完成的工作较少。由于目标客户都是群体,平台上线后,用户群体会更大,客户质量更高,可以用于系统维护、系统新功能开发等方面。
3.1.3 操作可行性
本系统对各种数据展示情况都简单明了。都有明显的用户提示,输入错误也都有正确引导,用户只需要会PC的基本操作。该系统的可视性很好,在使用上不会有很大困难。
3.2 需求分析
3.2.1 系统需求分析
本系统对与多人群群体,各种数据展示情况都简单明了。有明显的用户提示,输入错误也都有正确引导,用户只需要会PC的基本操作。该系统的可视性很好,在使用上不会有很大困难。
3.2.2 系统安全性
基于Spring Boot的疫情数据查看系统数据取自国家卫健委,通过ajax加密请求互联网数据。通过前端thymeleaf框架和ECharts图表库实现数据展示。
四、系统概要设计
4.1 系统结构模块与功能模块设计
4.1.1 系统结构模块
本系统主要是应用于大众群体的主要用户。对于用户来说,实现的主要功能包括,浏览全国疫情的分部情况、各省的疫情情况、境外输入的各省分部情况、全国现有确诊趋势分析、全国疫情新增趋势、全国现有疫情构成分析以及全国各省自治区直辖市现有确诊、累计确诊、治愈、死亡情况。如图
疫情可视化查看系统 |
登录 |
可视端平台 |
后台管理 |
疫情新闻关键字 |
近两月新增确诊 |
国内疫情死亡率 |
全国疫情曲线 |
国内外疫情分布 |
城镇与确诊关系 |
风险地区情况 |
各省确诊 的占比 |
国内数据删除 |
省内数据删除 |
疫情新闻删 查 |
风险地区增删改 |
用户状态监测 |
大屏可视化跳转 |
图4-11 国内近两月集合关系
4.2.2 数据库表设计
(1)疫情信息表包含用户表、区域历史表、区域当天表、区域关系表、新闻表、腾讯新闻表、风险区域表以及风险区域当日表、国内累计表,来对数据进行存储管理。
表4-2 用户表
Field | Type | PRIMARY | Comment |
id | int | yes | 用户id |
name | varchar | no | 账号 |
password | varchar | no | 密码 |
| varchar | no | 邮箱 |
表4-3 区域历史表
Field | Type | PRIMARY | Comment |
area | bigint | no | 地区 |
yeardate | datetime | no | 时间 |
表4-4 区域当天表
Field | Type | PRIMARY | Comment |
area | text | no | 地区 |
confirmed | text | no | 确诊 |
crued | text | no | 治愈 |
confirmedRelative | text | no | 确诊比例 |
curConfirm | text | no | 治愈统计 |
curedRelative | text | no | 治愈率 |
asymptomaticRelative | text | no | 感染率 |
asymptomatic | text | no | 无症状感染 |
nativeRelative | text | no | 确诊率 |
表4-5 区域关系表
Field | Type | PRIMARY | Comment |
areaname | text | no | 地区名称 |
cityrate | double | no | 城镇关系 |
gdp | double | no | GDP关系 |
doctor | double | no | 卫生人员 |
students | bigint | no | 学生 |
表4-6 新闻表
Field | Type | PRIMARY | Comment |
new_id | int | yes | 新闻id |
publish_time | datetime | no | 发布时间 |
news_title | varchar | no | 新闻标题 |
news_summary | varchar | no | 新闻内容 |
news_source | varchar | no | 新闻来源 |
sourceUrl | varchar | no | 新闻地址 |
表4-7 腾讯新闻表
Field | Type | PRIMARY | Comment |
title | text | no | 标题 |
publish_time | text | no | 发布日期 |
news_url | text | no | 地址 |
srcfrom | text | no | 网址 |
shortcut | text | no | 快速浏览 |
sms_id | text | no | 新闻id |
表4-8 风险地区表
Field | Type | PRIMARY | Comment |
area_name | text | no | 地区名称 |
address | text | no | 地址 |
areas_degree | text | no | 风险等级 |
geo | text | no | 地理位置 |
表4-9 风险地区当日表
Field | Type | PRIMARY | Comment |
area_name | text | no | 地区名称 |
address | text | no | 地址 |
areas_degree | text | no | 风险等级 |
表4-10 国内累计表
Field | Type | PRIMARY | Comment |
nowtime | text | no | 时间 |
confirm | bigint | no | 确诊 |
nowConfirm | bigint | no | 当日确诊 |
importedCase | bigint | no | 境外输入 |
dead | bigint | no | 死亡 |
heal | bigint | no | 治愈 |
noInfect | bigint | no | 无症状感染 |
local_acc_ confirm | bigint | no | 本地确诊 |
suspect | bigint | no | 疑似确诊 |
nowSevere | bigint | no | 当前等级 |
showLocalConfirm | bigint | no | 本土确诊 |
showlocalinfection | bigint | no | 本土感染 |
NoInfectH5 | bigint | no | 无感染 |
五、 系统功能详细设计与实现
5.1 系统页面实现
5.1.1 登录页面
登录界面:可以用已注册账号登录,未注册账号的可以点击去注册,填写邮箱、动态验证码、自定义用户名和密码就可以注册并成功登录。
图5-1 登录页面
5.1.2可视化页面
可视化页面:这里可以通过可视化界面对新闻关键字、全国累计、境外输入、城镇化关系、风险地区情况、死亡率、各省确诊的占比、全国疫情变化曲线以及新增人数趋势进行直观性展示。
图5-2 疫情可视化页面
5.1.3 后台管理页面
后台管理页面:后台管理可以对国内数据输入、省内数据、疫情数据、疫情新闻、风险地区、用户状态监测以及可视化跳转进行核对数据和修改删除等操作。
图5-3 后台管理页面
5.2 系统页面实现
5.2.1 全国累计确诊分布
(1)该系统基于美观的配置文件设计原则。主页实现了地图区域。用户可以根据自己的需求,在不同的地区看到不同时间的感染人数使数据更直观的展示。
(2)程序运行效果如下图所示:
图5-4 全国累计确诊分布界面
5.2.2 境外输入的各省分部查询
(1)用户可以查看境外输入全国各省市情况,系统展示不同时间的输入途径,鼠标浮动后可以看到具体输入的感染人数。
(2)程序运行效果如图所示:
图5-5 境外输入确诊分布界面
5.2.3 城镇化率与确诊数量关系
(1)用户可以查看全国现有确诊人数与城镇化率、各省GDP、在校学生人数的关系,按照确诊人数展示各省的人数分布走势。
(2)程序运行效果图如下图所示
图5-6 城镇化率与确诊数量关系
图5-7 感染数量与各省关系
5.2.4 新闻关键字
(1)新闻关键字展示了疫情新闻的高频出现词汇,并且点击可以看到出现的关键字词汇所占比例。
(2)程序运行效果图如下图所示
图5-8 最新疫情新闻关键字
5.2.5 近两月新增确诊(本土/境外输入)分布
(1)可以动态看到所统计数据每日的境外新增确诊人数和本土新增确诊人数的曲线图和折线图。
(2)程序运行效果图如下图所示:
图5-9 近两月新增确诊分布
5.2.6 全国新冠疫情死亡率
(1)用户可以更直面的查看全国疫情死亡人数占感染病例人数的死亡比率。
(2)程序运行效果图如下图所示:
图5-10 国内新冠疫情死亡率
5.2.7 风险地区情况
(1)用户可以查看风险地区的风险地区名和风险等级程度。
(2)效果图如下图所示:
图5-11 风险地区情况
5.2.8 全国各省疫情确诊人数占比
(1)用户可以查看全国各省的疫情确诊人数在全国范围内的占比情况
(2)效果图如下图所示:
图5-12 各省确诊占比
5.2.9 全国疫情人数变化曲线和全国新增人数堆叠条形图
(1)用户可以查看全国疫情累计确诊人数、治愈总人数、死亡总人数、现存确诊、在全国范围内的变化情况,以及全国各省的确诊新增人数趋势。
(2)效果图如下图所示:
图5-13 全国疫情人数变化曲
图5-14 全国新增人数条形图
六、 系统测试目的与意义
软件测试作为整套系统最后的质量检测过程,其重要性不亚于前期的需求分析阶段。通过软件测试,检测系统中还存在的错误,判断开发的系统在界面、功能、性能等方面是否满足用户的需求。
为了发现和报告疫情可视化的错误和缺陷。通过测试确保本系统的功能、互操作性等符合软件的设计要求。通过分析错误产生的原因和错误的分布特征,可以帮助项目发现当前所采用的软件过程的缺陷,以便对系统进行改进。
6.1 测试过程
6.1.1 测试环境
操作系统:windows10
浏览器:Chrome浏览器
IP地址:127.0.0.1
运行工具:IDEA
数据库:MYSQL 8.0
网络环境:宿舍校园网络
6.1.2 测试项目名称及测试内容
1.测试内容:
表6-1 测试内容
测试项目名称: | 单元测试 |
测试目的: | (1)安全性 (2)正确性 (3)规范化问题 |
测试内容: | (1)用户登录验证 (2)可视化图表显示 (3)后台管理操作 |
2.系统登录功能测试
(1)测试要点:用户名和密码,是否可以正常注册登录。
(2)测试过程:登录系统,观察用户名和密码是否为真,验证是否正确以及观察用户登录后的界面显示。若为真,进入系统;若为假,提示重新输入信息。
表6-2 登录功能测试
测试项 | 登录功能测试 |
登录 | 用户账号必须在数据库存在,并且正确才能登录 |
注册 | 用户注册需要输入正确邮箱和动态验证码,才能注册 |
标准 | 界面友好显示,不显示错误信息 |
3.系统可视化端功能测试
(1)测试要点:是否正常进入可视化大屏界面且各模块图表是否正常显示。
(2)测试过程:登入系统,进入疫情可视化大屏界面,点击各个模块图表看是否显示正常数据和百分率,点击模块是否正常弹出图表,是否正常切换显示。
表6-3 可视化端功能测试
测试项 | 可视化显示功能测试 |
最新疫情新闻关键字 | 点击关键字显示高频词汇所占百分比 |
近两月新增确诊 | 显示境外新增确诊折线图和本土新增确诊条形图 |
国内疫情死亡率 | 死亡人数相对于感染人数的死亡指针数据百分率 |
全国和境外输入确诊 | 显示境外国家向国内省份输入路线以及人数 |
城镇化率与确诊关系 | 显示感染与学生,城镇化和GDP以及卫生水平关系 |
风险地区情况 | 显示风险地区名和风险等级程度 |
各省确诊的占比 | 各省确诊人数在全国范围内所占百分比及数据 |
全国疫情趋势 | 显示全国疫情人数曲线图和新增确诊人数条形图 |
4.系统后台管理功能测试
(1)测试要点:进入后台管理是否可以对各个数据管理进行正常查看、监测和进行添加,修改和删除操作。
(2)测试过程:可视化切换后台管理,进入后台界面,点击各个数据列表,查看是否可以正常显示各部分数据并对其操作。
表6-4 后台管理功能测试
测试项 | 后台管理操作测试 |
国内疫情数据管理 | 疫情数据总计、历史、新增数据删除操作 |
省份疫情数据管理 | 省份当日、历史累计、新增数据删除操作 |
省份各类数据管理 | 省份各类数据添加、修改、删除操作 |
疫情新闻管理 | 疫情新闻数据浏览和删除操作 |
风险地区管理 | 风险地区数据的添加、修改、删除操作 |
用户管理 | 监测用户的登录信息 |
大屏管理 | 后台正常跳转可视化大屏展示 |
6.2 测试结果
经过实际测试,在测试过程中用户登录功能、注册功能正常。进入系统后,界面功能显示与各图表的功能显示相对应,点击相对于图标的详细数据也显示正常,新增的图表弹出界面和切换图表格式能正常同步显示,说明系统操作正常。同时后台管理对数据的增加、删除、修改以及对用户的设备登录IP,登陆时间,和登录的浏览器,地址所在地和操作系统登录检测正常。
七、结 论
基于Spring Boot的疫情数据查看系统以IDEA为开发工具,MYSQL数据库。JDK 1.8.0_181作为一个运行环境,Java Web相关技术。基本实现了系统的所有功能。前后端均采用目前流行的框架MVC和MyBits-Plus。提高开发效率。
本系统采用Spring Boot技术。读取互联网最新疫情数据,实现了对疫情的多维度分析,首先宏观分析了全国疫情的分部情况,各省的疫情情况,然后再分析境外输入各省分公司的情况。全国现有确诊趋势分析,全国疫情新增趋势、全国现有疫情构成分析以及全国各省自治区直辖市现有确诊、累计确诊、治愈、死亡情况。同时,疫情期间数据分析的传播在公共卫生等领域起到了不可替代的作用,其亮眼的表现也让更多的人关注并接受了数据分析这一分析体裁,并给予了较为正向的反馈,积极与生产者进行互动,为进一步开展数据分析工作创造了良好的读者基础。样本取新冠疫情资料。对其进行编码分析,并将之与国家卫健委发布的疫情数据进行分析统计,实现了对疫情的多维度分析,首先宏观分析了全国疫情的分部情况,各省的疫情情况,然后再分析境外输入各省分公司的情况。全国现有确诊趋势分析,全国疫情新增趋势、全国现有疫情构成分析以及全国各省自治区直辖市现有确诊、累计确诊、治愈、死亡情况的统计。
本系统界面美观整洁,本着方便用户的宗旨,在页面的设计上偏向于人性化,操作起来比较顺手。界面清晰,协调一致,相同功能使用相同图形。错误提示清晰错误提示错误操作后,系统有针对性地提供提示基本实现了功能需求。性能需求,安全需求,但是缺点和弊端同时也是存在的,比如开发技术方面没有采用前后端分离开发技术,课程信息不够详细等,需要进一步完善。
八、谢 辞
在经过这段时间完成毕业设计和毕业论文的同时,也让我收获颇丰。首先,在我接到指导老师的毕业设计题目的时候,当时我是很为难的。因为在外面实习的缘故,指导老师很相信我们的能力能够独立自主的完成设计。接下来在我们开始着手工作的时候,才知道一切是多么的不容易。但是,最终在老师的帮助下和我们同学的合作下,完成了我的毕业设计。
在这个过程中,我首先要感谢的就是刁文广老师,也是我们的毕业设计指导老师,刁文广老师虽然仅仅只是教过我一学期的课程,但这一学期当中确实让我受益匪浅。并且,他也给了我一个很好的机遇。并且在毕业设计上也是我的指导老师,在毕业论文和毕业设计上也给了我很大的帮助。
然后,在这我要感谢的还有一位就是我的辅导员老师。首先,老师虽然是我的辅导员,在大学的期间里没有给我上过一节课,但是她在这两年的时间里对我的指导和帮助,不会低于任何一位任课老师。最后,感谢我的母校洛阳理工学院,不仅仅在这里学到了更多的知识,也让我交到了知心的兄弟。感谢所有的任课老师,不仅仅让我学到了更多的知识,丰富了自己,也让我懂得如何更好的去约束自己。
在这我还要感谢我的同学,是有了他们和我在一起,是我们之间的相互支持和帮助,完成了我的毕业设计。虽然一开始的我手足无措,但是在我和老师同学的不断努力下,最终完成了任务。在整个过程虽然有些曲折,但是我相信大家的目的都是一样的,那就是更好的完成我们的毕业设计。
由于我的学术水平有限,缩写论文难免会有不足之处,恳请各位老师和学友批评和指正。