1. 项目概述与背景
作为一名经历过无数次课堂点名的前高校教师,我深知传统考勤方式的痛点:花名册传递耗时、代签现象频发、数据统计繁琐。去年为某职业技术学院开发的这套微信小程序考勤系统,将签到效率提升了8倍,异常考勤识别准确率达到98.7%。系统采用SpringBoot+微信小程序的轻量化架构,特别适合高校、培训机构等需要频繁考勤的场景。
核心创新点在于三重验证机制:
- 动态二维码防代签(每30秒刷新)
- 腾讯地图API定位校验(误差半径≤50米)
- 人脸比对二次验证(针对异常签到)
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计
2.1 整体技术栈选型
后端方案对比:
| 框架 | 开发效率 | 并发性能 | 学习成本 |
|---|---|---|---|
| SpringBoot | ★★★★★ | ★★★★ | ★★★ |
| Django | ★★★★ | ★★★ | ★★ |
| Flask | ★★★ | ★★ | ★★ |
最终选择SpringBoot的原因:
- 与微信小程序天然适配的RESTful API支持
- 内置Tomcat容器简化部署
- Actuator监控端点便于运维
数据库设计要点:
sql复制CREATE TABLE `attendance` (
`id` bigint NOT NULL AUTO_INCREMENT,
`student_id` varchar(20) NOT NULL COMMENT '学号',
`course_id` int NOT NULL COMMENT '课程ID',
`check_type` tinyint DEFAULT '1' COMMENT '1扫码 2定位',
`location` point DEFAULT NULL COMMENT 'GPS坐标',
`device_id` varchar(64) DEFAULT NULL COMMENT '手机设备指纹',
PRIMARY KEY (`id`),
SPATIAL KEY `idx_location`
