# gpssignin **Repository Path**: chuqq/gpssignin ## Basic Information - **Project Name**: gpssignin - **Description**: 用gps地理位置进行打卡签到。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-11-07 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # gpssignin 用gps地理位置进行打卡签到。 ## 需求和场景 * 前台需求: * ~~注册:手机号+用户名+密码+确认密码。只校验密码,先不校验手机号,由后台审批~~ * ~~登录:手机号+密码~~ * ~~上班打卡:会话ID+gps~~ * ~~下班打卡:同上~~ * ~~打卡成功或失败后弹TOAST,并更新展示当天的第一次打卡和最后一次打卡~~ * ~~每1小时上报一次gps位置(目前定位需要,2分钟一次),用后台服务互相拉起的方式确保在后台不被杀掉。MIUI需要设置后台运行,这样4分钟上报一次~~ * ~~增加休息时间不上报的逻辑:暂时先注释掉,不启用~~ * 整理出app的使用注意事项 * 安装app要有获取位置信息的权限 * 上下班时要打卡 * 上班过程中要保证有网络(WIFI或4G均可) * 需要设置这个应用后台运行(例如MIUI怎么设置) * 后台需求: * ~~对接mongodb~~ * TODO:使用gorilla/session来对浏览器端鉴权后的状态进行保存 * TODO:使用html/template对静态的页面进行处理 * 管理员可以在手机上查看某用户某时间(段)的位置信息:可以在地图上标注位置,也可以把gps转化成文字 * 预制一个后台管理员账户 * 审批注册:核对手机号、用户名 * 增加和删除后台账户 ## API * ~~客户端app支持上报gps~~ * ~~服务端接收上报请求~~ * 客户端 * ~~客户端增加注册和登录能力~~ * ~~增加一个rest接口类,和userdata类似,专门负责后台和服务器通信。保证和服务器真正交互~~ * ~~打卡页面优化一下,helloworld展示出打卡的时间点~~ * 合入上报gps的逻辑 * 限制上报gps的时间段:周一全天到周六上午 * 合入后台互相拉起的逻辑 * 登录页面增加忘记密码的说明 * 偶现:有时会在一分钟内上报两条gps,初步猜测应该是存在了两个timertask * 必现:MIUI上灭屏后有时就不上报了;而且有时上报时报505错误 * ~~服务端支持注册和登录接口~~ * 服务端保存上报的位置信息 * 服务端能够查询和展示某人在某段时间内的位置 * 客户端:增加为两个service互相拉起 ## 操作 ``` nohup mongod --dbpath . --bind_ip 127.0.0.1 >> mongod.log & nohup ./server >> gps.log & ```