结对第二次作业——某次疫情统计可视化的实现
在上一次的结对作业中,大家都针对疫情统计可视化做出了原型实现,而这一次作业就是结合寒假第二次作业的成果实现原型设计中的部分功能。因为了解到大家基本都有一定的web基础,本次作业便要求大家采用web技术来实现原型中的功能。
一、作业内容
-
功能1:实现通过地图的形式来直观显示疫情的大致分布情况,还可以查看具体省份的疫情统计情况。
可以选择具体的日期;
在全国地图上使用不同的颜色代表大概确诊人数区间
颜色的深浅表示疫情的严重程度,可以直观了解高危区域;
鼠标移到每个省份会高亮显示;
点击鼠标会显示该省具体疫情情况;
-
功能2:点击某个省份显示该省疫情的具体情况
可以选择具体的日期;
显示该省份对应的感染患者人数、疑似患者人数、治愈人数、死亡人数;
该省份到目前为止的新增确诊趋势、新增疑似趋势、治愈趋势和死亡趋势;
绘制该省份的趋势变化曲线图;
-
数据来源通过爬虫自动爬取对应的网站获得(网站可以自行查找),如果技术上存在难度可以直接将收集到的数据静态的写在文件里来使用。助教会提供一份收集好的旧的数据(来自徐助教),但是数据量较少。
-
推荐基于Web来开发,使用Web框架,如常见的JSP、Servlet、spring系列、flask、php、express等,如果技术存在难度也可以直接使用纯前端来进行开发**,数据写在代码中,持久化在storage。Web使用的持久化建议持久化在嵌入式数据库中,如sqllite或derby。采用的技术应该具有平台兼容性,不依托于具体的环境。本次作业以实现功能为主要目标,技术考量仅仅占一定的分数。切勿用原型工具生成代码,一经发现直接0分。可以尝试在云服务器上进行部署你的项目,并在博客给出访问的链接。
-
扩展你想扩展的功能,如查看国外疫情实况,显示省市县疫情情况等,扩展功能会被记入作为附加分(具体参考作业评分项和评分规则)。
二、编码要求
1、github使用
本次作业继续沿用Github,相比寒假作业二考察基础git使用,这一次主要考察Git的合作。
- 建立结对仓库,仓库命名为InfectStatisticWeb并至少进行20次以上的commit修改,两人至少分别提交10次以上,commit记录应该符合项目实情,如果虚构会被扣去所有分数。仓库目录结构没有硬性要求,但要保证可以依靠此仓库提供的代码来构建项目。
- 对于非仓库要求的代码,如编译器生成的项目文件、输出文件、class、jar包、exe等,应该使用.gitignore进行忽略,并确保不会提交到github上。
- 为自己的仓库编写README.md,内容包括,作业链接、结对学号、项目介绍、以及详细的介绍项目如何构建和运行。
- 在这次编程合作中学习使用Git分支、Release发布及其他高级功能。建立一条dev分支,让你的队友和你在dev分支上开发,开发结束后再合并到main分支。在基本功能开发完成后发布release包,标注版本为1.0.0,后边完成更多功能可以继续发布新的release包。
2、代码规范制定
寒假第二次作业中很多同学制定的代码规范不符合主流,偏自定义化,这在团队协作和开源项目中是极不推荐的。
这一次作业仍然需要编写一份codestyle.md作为代码规范,但是要求该代码规范来自于主流的官方规范或者大公司推荐的规范,并在代码规范顶部标注来源。
3、技术和框架
本次作业不限制语言,也不限制库的使用,但要确保你的项目包含作业所需的功能,并且可以通过你的README.md所描述的构建教程来成功构建。
(采用maven、gradle、pip、npm...)均可。前端图表可以通过echarts。
三、博客撰写要求
-
在文章开头给出Github仓库地址和代码规范链接。
-
展示你的成品,要求提供10张以上的图片,或者采用GIF或者视频嵌入的方式来展示作业要求的功能。如果部署到云服务器上,可以一并给出链接。
-
结对讨论过程描述,即刚开始拿到题目后,和队友怎么讨论,解决问题和查找资料的过程,并提供两人结对讨论的截图。。
-
描述设计实现过程,给出功能结构图。
-
代码说明。展示出项目关键代码,300行左右,并解释思路。
-
阅读《构建之法》第四章至第五章的内容,结合在构建之法中学习到的相关内容,结对伙伴分别撰写结对开发项目的心路历程与收获,并评价结对队友。
五、作业评分项和评分规则
本次作业总分100分
- 博客 折算40分
- 博客排版【10%】:是否采用markdown排版,排版是否整齐,博客是否美观大方
- 成品展示【30%】:提供10张以上的图片介绍,或者采用GIF或者视频嵌入的方式展示,展示的效果好,能够通过展示清晰了解主要的功能。如果部署到云服务器该项可以加5分,加满到该项满分为止。
- 结对讨论过程描述和设计实现过程【30%】:讨论过程描述不笼统,提供结对讨论截图,未提供结对讨论截图该项扣5分。设计合理,实现过程描述不笼统;提供功能结构图,未提供功能结构图该项扣5分;
- 代码说明【10%】:展示出项目关键代码,并解释思路。
- git仓库链接、代码规范链接【5%】
- 心路历程和收获&评价结对队友【15%】:不笼统,有意义,图文兼备。
- 仓库 折算60分
- 代码规范的制定和遵守【15%】:符合所使用语言的官方规范或者行业规范,代码规范至少攘括寒假作业(2)中所要求的内容。需要严格在编码中执行。
- Github commit满足多于20次,要求两人均多于10次,且commit时间合理,使用分支、release、issues、pr等其它功能【15%】
- 助教根据仓库提供的README.md进行构建,确认是否满足作业所要求的功能【70%】:
- (1)实现通过地图的形式来直观显示疫情的大致分布情况,还可以查看具体省份的疫情统计情况等功能1要求【50%】。
- (2)点击某个省份显示该省疫情的具体情况等功能2要求【50%】。
- 如果采用爬虫爬取加3分,采用后端框架加3分,扩展了相应功能加3分,加满到该项满分为止。
规则&格式
1、为了方便其他学校的老师或者助教了解课程实况,请大家在作业开头添加格式描述:(必做)
这个作业属于哪个课程 | <班级的链接> |
---|---|
这个作业要求在哪里 | <作业要求的链接> |
这个作业的目标 | <写上具体方面> |
结对学号 | <写上两个结对同学的学号> |
作业正文 | .... |
其他参考文献 | ... |
markdown代码
|这个作业属于哪个课程|<班级的链接>|
|-- |-- |
|这个作业要求在哪里|<作业要求的链接>|
|结对学号 |<写上两个结对同学的学号>|
|这个作业的目标|<写上具体方面>|
|作业正文|.... |
|其他参考文献|... |
2、提交规则
- 在deadline前交,得实际得分 * 100%;
- 补交:在deadline 后两天内提交视为补交,得实际得分 * 50%;
- 缺交:在deadline 之后两天未补交视为博客缺交,分数为0分;
(忘记提交作业和补交扣分一致)
3、计分规则
每次作业的基准分为100分,根据作业难度会对作业的实际分数进行换算,
比如:
对同一次作业,统计得分时为满分100分,换算权重为25%
小李此次作业得分85分,作业在deadline前提交,那么他的实际得分为85*100%*25% = 21.25
小张此次作业得分85分,并是在deadline后的两天内补交,那么实际得分为85*50%*25% = 10.625
小王在作业deadline两天后还未补交,作业提交已经关闭,此次作业得0分
...
4、其它规则
- 作业抄袭:当助教发现两篇博客文字/图片/代码相似度超过50%时,判定两篇博客都为抄袭,分数都为-100%;
- 伪造提交:虽然作业博客没有完成,但是先提交到作业占位置,判定为伪造提交,分数得0分;
- 微信班级群如果发布相关通知也是作业要求一部分,请及时查看群通知;
- 若需要在微信群填写相关信息,未能在deadline之前完成填写的,扣实际得分的50%;
- 如对作业存在疑问,请在deadline之前三天在班级群提出;
- 若助教对作业要求有修改,会在群内公告,请务必查看并按新的要求完善作业;