|
4 years ago | |
---|---|---|
epidemic_web | 4 years ago | |
images | 4 years ago | |
wu-school-adminweb-app | 4 years ago | |
.DS_Store | 4 years ago | |
LICENSE | 4 years ago | |
README.md | 4 years ago | |
vue.sql | 4 years ago |
README.md
美国新冠疫情数据可视化
疫情的爆发对全球都造成了极大的影响,本项目初衷是进行疫情拐点的预测,但现有数据量只有16万条,且预测有很多其它因素,只能展现数据的可视化界面,使数据以报表和折线图展现。
序言
我也是一个在校小菜鸡,如果大家有什么好的意见或批评,请务必issue
下
如果想直接体验该项目,可以clone
该项目
本项目使用前后端分离,使用vue作为前端框架,使用了element-ui,echarts等组件作为可视化和网站快速成型的工具,后端使用springboot+mybatis+redis+xxljob作为后端框架,本项目使用xxljob为单节点的定时任务搭配redis实现数据的快速展现。若直接使用mysql访问的数据将会变得特别慢,特别慢!!!
特性
-
几乎所有需要展现的数据都存入到了redis中,并且定时更新
-
前后端分离,后端对跨域提供支持
-
xxljob的定时可直接在界面中操作定时时间
准备工作
在开始运行项目的过程前,请保证已经配置了一下几点
-
前端代码在epidemic_web,后段代码在wu-school-adminweb-app,images中为项目运行截图
-
本项目使用redis作为缓存,需要用户在本机已经安装和已经启动了redis
-
Maven配置好,更改在自己本机的setting.xml和仓库的地址
-
本项目中有两个启动项,一个为定时任务xxl-job,另一个为new-crown-outbreak
-
首先来说第二个,该模块内为项目的数据展示的后端,在配置文件中更改mysql的密码和xxljob的日志路径
-
再来说第一个,该模块为定时任务的模块,在子模块xxl-job-admin中也需要更改mysql的密码,其中mysql里面出现的一个新库为xxl_job该库为xxljob的多节点需要的库,本任务中不必管,可在xxl-job/doc/db中找到该.sql文件,回到xxl-job-admin中,配置文件下面有一个logback.xml其中有一个路径需要更改,而且该文件需要自己创建
<property name="log.path" value="/Users/wuzhengzhuo/Downloads/xxl-job/log/xxl-job-admin.log"/>
-
最后项目就可以启动了,数据展示模块的启动项为XxljobSpringbooDemo,定时任务的启动项为XxlJobAdminApplication
-
注意,程序的端口号分别为8600和9000,端口占用程序会启动失败
-
数据库结构
data county State Cases Deaths 日期 区 州 感染人数 死亡人数
新增
- 为实现前后端对接的可视化文档,线已经添加knife4j组件,对前端使用者调用更加友好,使用该可视化界面只需启动XxljobSpringbooDemo访问http://localhost:8600/doc.html 即可对可视化接口进行测试和访问
程序逻辑
-
前端为独立启动,启动后会自动调用后端接口,程序启动请先运行后端,否则前端无数据显示
-
前端调用后端接口,在service层中,会查询redis,此时redis中是没有数据的,只有启动的定时任务,让程序运行几分钟,键就会全部加载到redis中,这里没有采用显示和缓存同时进行,因为同时进行仍需要等待。所以先启动端口为9000的定时任务,打开界面账号为admin密码为123456
在执行器中启动所有的任务,数据将导入到redis中,程序中大多数数据都是通过redis存储,根据定时任务定时更新。
-
程序执行正常执行显示图如下
总结
这个程序很多东西可以进行改进
- 首先就是一些死数据可以直接在程序中定义出来,比如全部州名,不需要再在redis中去取
- 程序的功能单一,没有特别注目的点。
- 有什么值得交流可以通过qq:1993441338交流