基于微信小程序原生框架与云开发构建的课堂签到系统。本项目通过 “动态二维码 + GPS 地理定位” 双重校验机制,有效解决了传统高校课堂中签到效率低、代签到现象严重的问题。
🎓 本项目为《高级程序语言课程设计》实践项目,获得了优秀的成绩评估。
- 👨🎓 严格的用户认证:强制绑定 10 位学号与真实姓名,支持用户上传并存储头像(依托云存储)。
- 📍 双重防作弊签到:
- 动态二维码:教师端一键获取当前 GPS 坐标,生成包含位置信息的加密二维码。
- 距离校验:结合微信
wx.getLocation接口,内置 Haversine 距离计算算法,精准计算球面两点最短直线距离,仅允许在签到中心 200 米范围内签到。
- 📊 实时考勤统计:发布者可随时查看自己发起的历史活动,实时统计已签到人数,并展示签到人的具体信息及签到距离。
- ☁️ 纯云端架构:采用微信云开发(Serverless),无需搭建本地后端服务器,数据存储于 NoSQL 云数据库。
- 前端界面:WXML, WXSS, JavaScript (微信小程序原生语法)
- 后端服务:微信云开发 (Cloud Database, Cloud Storage)
- 核心接口:
wx.getLocation,wx.scanCode - 第三方服务:QR Server API (用于动态生成二维码)
如果你想在本地运行此项目,请按照以下步骤操作:
- 克隆项目到本地
git clone [https://github.com/wanglingcai/Smart-Class-Sign-in.git](https://github.com/wanglingcai/Smart-Class-Sign-in.git)
2. **导入开发者工具**
打开 [微信开发者工具](https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html),选择“导入项目”,并选中你刚刚克隆的文件夹。
3. **配置 AppID**
在项目根目录找到 `project.config.json` 文件,将其中的 `appid` 替换为你自己的微信小程序 AppID。
4. **初始化云开发环境**
* 点击开发者工具顶部的“云开发”按钮,开通云开发服务。
* 在云数据库中创建三个集合 (Collections):`users`(用户表)、`activities`(活动表)、`records`(签到记录表)。
* 将 `app.js` 中的 `env` 替换为你自己的云开发环境 ID。
## 📸 运行截图 (Screenshots)
<img width="409" height="839" alt="image" src="https://github.com/user-attachments/assets/e77b1662-8cdc-46f5-97d0-e68709412d4f" />
* 个人中心与身份认证
* 教师端发起签到与二维码生成
* 签到距离校验成功/失败提示
* 考勤名单统计聚合列表
## 📄 许可证 (License)
本项目仅供学习与课程设计参考。