Skip to content
This repository has been archived by the owner on Mar 22, 2020. It is now read-only.

Latest commit

 

History

History
37 lines (20 loc) · 2.22 KB

README.md

File metadata and controls

37 lines (20 loc) · 2.22 KB

wifi考勤程序

这是一个利用WIFI来考勤的小程序。不需要在用户的手机上安装什么APP,也不需要给每个手机分配静态地址。程序会默默的周期性扫描连接到公司WIFI的所有设备,并将已登记的设备的在线历史记录下来。 此外,程序还提供了Web形式的操作界面,供成员登记设备和查询记录。

适用场景

小团队围圈撸代码,所有人的手机都连接到同一个无线路由器上。

项目由来

我所在的团队需要在规定的时间进行打卡,用于考勤。可是同学们常常忘记打卡,影响到大家的全勤奖。所以通过技术手段出一个方案来自动记录上下班时间作为忘记打卡时的证明的呼声很高。于是,本着为人民服务的精神,这个程序就诞生了。

实现思路

为了不在手机上安装什么APP,也不与特定的路由器相关(一次性代码我表示不想写),最好的方法就是通过ping来探测手机是否在线,然后通过ARP获取MAC地址。只需要在与WIFI同一个网段的一台机器上跑一个服务器程序,定时扫描内网设备就可以了。思路很简单!但是实际做起来还是遇到了一些困难,比如IOS的WIFI休眠。IOS在暗屏的时候,过了几分钟就ping不通了,这个问题我暂时还没想到解决方案。不过,现在的程序员们,通常情况下,打卡可能会忘记,玩手机会忘记的概率是很小的!所以作为一个打卡机的后备方案的话,应该够用了,麻烦的问题后面再慢慢想办法。

运行环境

一台Linux机器即可。暂时不考虑支持Windows,有需要的自行fork然后修改下。

部署

  1. 准备好MySQL数据库
  2. 执行script/sql/create_db.sql创建好数据库和用户(自行修改用户名和密码)。
  3. 创建好虚拟环境,并进入虚拟环境。
  4. 按Django部署的常规流程配置好服务器(记得修改settings.py中的配置)。
  5. 执行script/shell/init_env.sh
  6. 启动服务器

后续计划

这是我利用业余时间写的小项目,目前感觉够用就行,暂时不想花太多时间去美化。后面如果有空余时间的话,会考虑给这个程序美化下,并添加些功能。