今天来论坛自荐一下我一直在维护的开源项目 SignWave(原名check-in)。这是一款桌面+Web双端互通的课堂签到系统,既支持教室电子白板一键打卡,也支持远程发起签到任务、学生扫码签到。
项目地址:https://github.com/liuyuchen012/check-in (目前最新 v2.7 分支)


为什么要做这个项目?
我注意到市面上很多签到工具存在几个痛点:
要么太复杂,面向企业考勤,老师根本用不明白;
要么太简陋,只有一个手动点名表,没有任何数据留存;
要么太依赖单一场景——有的只能手动点,有的只支持手机扫码,无法兼顾。
所以我写了这套方案:教室场景下,教师点一下鼠标即可完成签到;远程/课后场景下,教师发起任务,学生扫码即可打卡,两端数据实时同步。一个产品,覆盖两种场景。
v2.7 核心功能一览
| 功能 | 说明 |
| 一键打卡 | 鼠标左键点击学生姓名完成签到,右键可撤销 |
| 扫码签到 | 教师创建签到任务,生成短链接/二维码,学生手机扫码打卡,无需安装App |
| 打卡排行榜 | 实时显示前3名最早打卡的学生,激励课堂参与 |
| 实时统计 | 出勤率、已签/未签人数、最早/最晚签到时间 |
| 多任务管理 | 一个客户端内同时管理多个打卡任务(标签页切换) |
| 后台同步 | 未激活的标签页在后台自动同步数据,不怕丢 |
| Web管理面板 | 浏览器访问服务器,远程查看所有教室打卡数据 |
| CSV导入导出 | 一键导出Excel表格,方便留存和统计 |
| RSA加密通信 | 客户端与服务器通信加密,防止篡改 |
两种签到模式,按需切换
| 模式 | 适用场景 | 操作方式 |
| 白板模式 | 小学低年级、晨读、无手机课堂 | 学生到电子白板前点击自己姓名打卡 |
| 扫码模式 | 高中/大学课堂、课后考勤、手机普及场景 | 教师发起任务,大屏展示二维码,学生手机扫码打卡 |
两种模式数据互通——无论通过哪种方式签到,数据实时汇总到同一后台,老师可在 Web 管理面板/客户端统一查看。(连接集控系统情况下)
关于 v2.7 分支的说明
目前 GitHub 上我主要维护的是 v2.7 分支,这个分支最大的亮点是重构了多任务管理模块,同时正式加入了扫码签到支持。左侧用文件夹+任务树的方式组织(比如按“年级/班级”或“学科”分组),每个任务独立标签页运行,互不干扰。
建议大家拉取 v2.7 分支使用,默认主分支可能因为历史遗留原因不是最新的,后续我会考虑将 v2.7 合并回 main。
为什么能覆盖小学到大学?
论坛里应该有小学、初中、高中、大学的老师,我这套系统的配置非常灵活:
学校信息层级:配置里直接支持 学校名称、年级、班级、课程,无论小学的“三年级二班”还是大学的“计科2023级1班”都能完美适配。
自适应网格布局:按钮行数和列数可以自由调整,30人的小班可以设 5×6,60人的大班可以设 6×10。
多任务应对走班制:高中和大学常有的走班/选课,可以按不同课程创建独立任务,老师切换标签页就能搞定不同班级的签到。
扫码/白板双模式:低年级无手机场景用白板点击,高年级手机普及场景用扫码,一套系统通吃。
技术栈与部署
客户端:WPF(.NET),运行于 Windows 系统(教室一体机/教师笔记本)
服务器:ASP.NET Core,跨平台(Win/Linux/macOS 均可部署)
数据库:SQLite + EF Core,轻量免配置
通信安全:RSA-2048 签名验证
快速启动(Windows版):
bash
$$
解压后进入文件夹
cd Server && CheckIn.Server.exe # 启动服务器,浏览器访问 http://localhost:5000
cd Client && CheckIn.Client.exe # 启动客户端,填入服务器IP和密码(默认admin123)
$$
扫码签到流程:
教师在客户端创建一个签到任务
点击“发起签到”,生成签到二维码/短链接
学生使用手机扫描二维码,输入姓名即可完成签到
教师端和学生端数据实时同步
未来维护计划
既然在论坛发了贴,也跟大家同步一下后续计划:
继续优化多任务稳定性和扫码签到体验;
后续考虑增加更丰富的签到统计图表;
如果有老师提好的需求,我会优先排期开发;
会尝试学习或使用ai制作手机端数据查看软件(因为集控系统手机打开有大问题)
所以欢迎大家多多提 Issue 或者直接在这个帖子下反馈!
适用场景清单
小学班主任:晨读/午自习点名(白板模式)
初中科任老师:每堂课参与度统计(白板/扫码均可)
高中走班制:不同选科组合的考勤(扫码模式更高效)
大学辅导员/助教:大课签到(扫码模式)
课外辅导机构:多班级统一管理
写在最后
这个项目我一直利用业余时间在维护,虽然不敢说做到完美,但确实能帮到不少一线老师减轻点名负担。如果你觉得有用,欢迎到 GitHub 点个 Star 支持一下,遇到任何 BUG 或想加的功能,直接提 Issue 即可,我会看得到。
项目地址:https://github.com/liuyuchen012/check-in (v2.7分支)