一、项目来源
2020年疫情的到来,使得很多学校对学生的身体健康更加关注,因此每天学校都要收集学生体温数据,以便做好疫情防控工作。在我们学校,体温收集工作需要经过很多人收集,比如学生A要把体温报给学生负责人B,学生负责人要把体温报给指导老师A,指导老师A要把学生体温数据报给小组老师B,小组老师B要把体温报给院系负责老师C,院系负责老师C要把体温数据报给校负责老师D,不仅步骤繁杂,而且学生数量也多,就拿我们学校来说,两万多的师生,体温统计无疑是一个巨大的工作量,同时也给同学老师带来了巨大的工作量,由此我们开发了一款可以帮助老师同学完成体温统计的微信小程序。
二、应用场景
这是一款上报体温数据的小程序,可以应用在学校以及其他需要统计体温的地方,主要功能为:
1.输入体温,进行体温上报。
2.查看每天上报体温记录。
3.管理小组成员 添加小组成员、删除成员操作。
4.查看小组成员上报的体温数据。
目前正在开发中的功能:
1.体温上报提醒:用户设置时间点,每天到点微信小程序向用户发送体温上报提醒消息。
2.生成excel表格功能:用户拿到小组成员体温并导出excel表格并上报至学校。
3.体温数据可视化:将用户最近上报的体温以图表折线图的形式展现。
三、目标人群
学生以及其他需要每天上报体温的群体。
四、实现思路
1)整体规划:做项目之前完成了对项目的整体规划,完成功能设计和数据库设计,采用微信小程序云开发的方法,使用云数据库存储学生信息和用户信息。
2)数据库设计:数据库共有两个数据表,一个是管理员提前上传的student信息表,另一个是用来存放用户绑定信息之后产生的数据信息的user表,权限设置为所有用户可读仅创建者可读写。
3)功能设计:小程序的目标就是解决体温上报的统计问题,减少人工统计时间,所以必不缺少的就是体温上报和小组成员管理模块,为了可以查看到自己当天上报的记录,添加了查看当天体温上报的模块。
4)用户绑定:拿到用户输入的账号和密码,向student表中查询是否存在该用户并判断密码是否正确,正确就用student表的个人信息在user表中创建记录,该记录用来存放账号信息(如每天上报的体温、小组成员等),这时创建的记录有openid字段,用来标识小程序用户的身份。
5)提交:拿到输入框输入的体温数据后,进行判断,如果该用户输入的体温数据不符合规范,那么给出提示,如果用户没有绑定信息,那么给出引导绑定账号。没有问题后将体温数据和日期封装成对象push进report字段(类型为数组)中。
6)个人信息:包含姓名name、学号number、身份idntity、专业major、授权码id,其中授权码是用于他人将该用户添加到小组中用的。
7)查看上报记录:放在onshow函数中,每次进来时根据openid查询该用户下report数组,并将report字段数组的对象(时间和体温)以表格的形式渲染出来。
8)小组成员管理:添加小组成员时输入对方用户学号姓名授权码(授权码实际上是字段”_id”),根据这三个字段在user表中查询,如果存在该用户那么将用户的姓名学号专业封装成一个对象并push进该用户的member字段(数组类型)中。页面下方直接将member数组中的内容渲染出来即可。
9)小组成员体温:首先拿到该用户对应openid下记录的member字段,拿到小组成员信息,根据小组成员信息去查询该成员的report字段数组中最后一个元素的日期,如果和当天一致那么说明以及上报,否则没有上报,将其放在两个不同的数组中并渲染出来。
五、小程序框架图
六、作品体验二维码
注:因为该小程序只能指定人群可以使用,体验之前联系微信j1967760537 申请体验资格方可使用,谢谢配合。
七、团队简介及分工
姜英豪:2018级物联网工程专业,曾获得2020年中国高校计算机大赛系列微信小程序应用开发赛华北赛区三等奖,以及2020年中国高校计算机大赛系列网络技术挑战赛华北赛区一等奖并晋级国赛,擅长后端数据库技术,在项目中主要负责数据库的设计以及对项目总体设计规划。
张连龙:2018级电商专业,擅长web前端开发,对css样式有点独特的理解,在项目中负责界面的ui设计以及前端程序设计。