1. 项目概述
作为一名经历过多次疫情封控的程序员,我深知一个高效的居家健康监测系统对个人和社会的重要性。去年我指导了一位学生的毕业设计,开发了一套基于微信小程序的疫情居家检测管理系统,这个项目获得了学校优秀毕业设计的荣誉。今天我就把这个项目的完整实现过程分享给大家,希望能为有类似需求的开发者提供参考。
这个系统的核心价值在于:通过微信这个国民级应用平台,实现疫情信息的实时同步、个人健康数据的便捷上报、智能风险评估以及防控知识的精准推送。相比传统的纸质登记或单一功能App,我们的方案具有以下优势:
- 零安装成本:直接使用微信小程序,无需额外下载安装
- 极低的使用门槛:界面简洁,操作符合微信用户习惯
- 实时数据同步:疫情动态和个人健康数据都能及时更新
- 智能分析预警:基于规则引擎的风险评估模型
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统架构设计
2.1 技术选型考量
在技术栈选择上,我们主要考虑了以下几个因素:
前端技术:
- 微信小程序原生开发:相比uniapp等跨平台方案,原生开发能获得更好的性能和兼容性
- WXML+WXSS+JS:标准的小程序开发语言组合
- ECharts for WeChat:用于疫情数据可视化展示
后端技术:
- Node.js + Koa2:轻量级后端框架,适合快速开发
- MySQL 8.0:关系型数据库,存储结构化数据
- Redis:缓存热点数据,提升系统响应速度
云服务:
- 腾讯云开发(TCB):提供一站式后端服务,包括数据库、存储和云函数
- 腾讯云API网关:管理后端接口
提示:选择腾讯云系产品是因为它们与微信生态有深度整合,在鉴权、支付等环节可以省去很多适配工作。
2.2 系统模块划分
整个系统分为以下核心模块:
- 用户管理模块:处理注册登录、个人信息维护
- 疫情数据模块:聚合展示官方疫情统计数据
- 健康上报模块:记录用户每日健康状态
- 风险评估模块:基于规则引擎分析感染风险
- 消息通知模块:推送重要疫情通知和个人风险预警
- 知识库模块:提供权威防疫指南
- 管理后台模块:供管理员查看数据统计和用户管理
3. 数据库详细设计
3.1 核心表结构
我们设计了符合第三范式的数据库结构,主要包含以下表:
用户表(users)
sql复制CREATE TABLE `users` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`openid` varchar(32) NOT NULL COMMENT '微信openid',
`nickname` varchar(50) DEFAULT NULL,
`avatar_url` varchar(255) DEFAULT NULL,
`phone` varchar(20) DEFAULT NULL,
`gender` tinyint(1) DEFAULT '0' COMMENT '0-未知 1-男 2-女',
`age` tinyint(3) DEFAULT NULL,
`region_code` varchar(12) DEFAULT NULL COMMENT '行政区划代码',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`user_id`),
UNIQUE KEY `idx_openid` (`openid`),
KEY `idx_region` (`region_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
健康记录表(health_records)
sql复制CREATE TABLE `health_records` (
`record_id` bigint(20) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`report_date` date NOT NULL COMMENT '上报日期',
`temperature` decimal(3,1) DEFAULT NULL COMMENT '体温',
`symptoms` varchar(255) DEFAULT NULL COMMENT '症状,逗号分隔',
`is_contact` tinyint(1) DEFAULT '0' COMMENT '是否接触过确诊/疑似病例',
`health_s
