校园疫情防控

初学小程序,每天起床第一件事不是去看文档,而是打开班群接龙打卡信息,填写excel表(苦逼的大三狗每天群通知99+),所以萌生了写一款让学生报备信息的小程序。本来只是简单写了一个上报表单的程序,但是写完了之后又觉得好像缺了点什么,所以功能越写越多,项目不断重构,里面很多东西都是现学现用,陆陆续续写了10天左右,算是一滴都不剩了。。不对,是差不多写得没想法了,项目包含了一整套前后端的交互,由于很多数据前期和后期设计理念不一样,所以会有很多不完善的地方,希望大家轻喷。废话不多说,现在主要讲一下该项目的设计思路和一些功能的实现思路。

项目文件
项目文件 提取码y04t

校园疫情防控
校园疫情防控
本项目特点

  1. 绑定个人信息,填报时无需再填写
  2. 区分教师,学生,辅导员,院长四大用户(可设置管理员)
  3. 导出体温异常人员,用不同颜色标注

依赖

  1. 本项目使用云开发,无需部署服务器和域名
  2. 导出表格依赖exceljs库

部署说明

  1. 注册微信小程序(自行百度)
  2. 使用微信开发者工具导入项目,修改Appid
  3. 小程序后天创建订阅消息模板“打卡提醒”和“记录健康提醒”(分别用于提醒学生打卡和提醒辅导员打卡已完成)
    校园疫情防控
//checkin.js
const tmpId = '这里填订阅消息里面的模板id'  // 提醒学生消息模板  
const tmpIdt = '这里填订阅消息里面的模板id'  // 提醒辅导员消息模板 
  1. 数据库创建,格式如下:
    settings集合中数据id固定
    a. identi集合(用于身份验证)
    权限:所有用户可读
//学生
{
  "userInfo":{
    "no":"xxxxxxx",
    "name":"xxx",
    "class_":"信16xx-3",
    "phone":"xxxxx",
    "department":"信息科学技术学院",
    "type":"学生"
  }
}
//院长、辅导员
{
  "userInfo": {
    "department": "信息科学与技术学院",
    "manage_classes": [
      "xxxx",
      "xxxx",
      "xxxx"
    ],
    "name": "测试",
    "no": "20199999",
    "phone": "151xxxxx238",
    "type": "副院长"
  }
}

//教师
{
  "userInfo":{
    "no":"xxxxxxx",
    "name":"xxx",
    "phone":"xxxxx",
    "department":"信息科学技术学院",
    "type":"教师"
  }
}

b.settings集合(配置上报截止时间,注意:本条数据id固定,请勿修改)
权限:所有用户可读

{
  "_id": "deadline",
  "hours": "11",
  "minutes": "00"
}

c.classes集合(副院长身份用户会用到,注意:本条数据id固定,请勿修改)
权限:所有用户可读

推荐在https://www.json.cn/查看json结构

{"_id":"class_set","department":["信息科学与技术学院"],"major":{"信息科学与技术学院":["物联网工程","软件工程","电子商务"]},"class_":{"物联网工程":["2016级物联网","2017级物联网","2018级物联网"],"软件工程":["2016级软工","2017级软工","2018级软工","2019级软工"],"电子商务":["2016级电商","2017级电商","2018级电商","2019级电商"]}}

d.users集合(只需创建,无需手动添加数据)
权限:所有用户可读,仅创建者可读写

e.百度地图API配置(自行百度):
在微信开发者工具中的form.js,getLocation函数中替换ak:

//form/form.js
//  getLocation()
    //…………
          data: {
            ak: '填写自己的百度地图实例的ak', 
            location: `${res.latitude},${res.longitude}`,
            output: 'json'
          },
    //…………

开发人员
松哥一米九

bug反馈&学习交流
qq:1369268983
欢迎二次开发

上一篇:C++ STL——map和multimap


下一篇:ASP .NET Core 建立列表和表单View