◆魏嵩 王天鑫 閆冉 黎茂林 宿世博 陳曉宇
基于地理位置信息的自動打卡簽到應(yīng)用研究
◆魏嵩 王天鑫 閆冉 黎茂林 宿世博 陳曉宇
(北京信息科技大學(xué) 北京 100083)
以往的紙質(zhì)簽到,浪費時間和資源,而且當(dāng)前大多簽到APP使用較為煩瑣,而針對簽到的功能設(shè)計比較單一,不能較好滿足使用需求。本款簽到APP面向所有簽到場景,用GPS獲取地理位置信息,從時間、位置、簽到碼三個方面來進(jìn)行簽到。
簽到;GPS定位;短信驗證碼;簽到碼
對于課堂、會議等各種形式下的簽到而言,方便、迅速、準(zhǔn)確成為用戶的首選,每次會議都采用紙質(zhì)簽到的方法,不僅很浪費時間和資源,而且不能保證簽到的有效性和正確性。當(dāng)前已有相關(guān)應(yīng)用實現(xiàn)在線簽到功能,但普遍存在操作較為煩瑣,針對簽到功能點的設(shè)計不夠完善等問題。本項目是面向“打卡簽到”需求設(shè)計的一款應(yīng)用,采用APP形式?;诘乩砦恢眯畔崿F(xiàn)無干涉自動打卡簽到。接下來解釋此應(yīng)用的研發(fā)。
基于實現(xiàn)方便、準(zhǔn)確的簽到需求,系統(tǒng)應(yīng)包括新建簽到、加入簽到、查看簽到記錄、手機(jī)驗證碼登錄等。
如圖1所示,此APP主要由四大模塊組成,即“簽到列表”、“加入簽到”、“新建簽到”和“我的”組成。其中“簽到列表”可以查看我加入和創(chuàng)建的簽到,在“我的”里可以查看簽到記錄和設(shè)置。
圖1 架構(gòu)圖
圖2 系統(tǒng)流程圖
如圖2所示,用戶在登錄后可以選擇“新建簽到”、“加入簽到”和“我的”。若選擇“加入簽到”,則輸入簽到碼“加入簽到”即可。若選擇“新建簽到”,則填寫簽到的信息,然后系統(tǒng)會自動生成一個簽到碼,并把簽到的信息存儲到數(shù)據(jù)庫中。若選擇“我的”,可從數(shù)據(jù)庫中調(diào)取簽到記錄并查看,或在“設(shè)置”中更改綁定的手機(jī)號,或退出登錄。
根據(jù)APP功能模塊的設(shè)計需求,建立了3個數(shù)據(jù)表,即用戶表(User)、發(fā)布簽到表(Sign)、簽到狀態(tài)表(State)。后端編寫采用的是nodejs中的express框架,用Sequelize操作mysql數(shù)據(jù)庫。前后端采用post傳輸數(shù)據(jù),數(shù)據(jù)格式為json格式。用戶表是用于存放用戶手機(jī)號,簽到發(fā)布表是用于存放發(fā)布簽到的信息,簽到狀態(tài)表是用于存放簽到記錄的信息。
表1 用戶表字段詳細(xì)信息
表2 簽到發(fā)布表字段詳細(xì)信息
表3 簽到狀態(tài)表字段詳細(xì)信息
如圖3所示,登錄模塊采用短信驗證碼進(jìn)行登錄,短信驗證碼服務(wù)采用阿里云的短信驗證服務(wù)。調(diào)用阿里云短信驗證的API,前端將用戶輸入的手機(jī)號用post方法傳給后端,調(diào)用API,返回是否成功的參數(shù)值,“驗證碼”則會發(fā)送到用戶手機(jī)中。用戶輸入驗證碼后會與后端數(shù)據(jù)庫中的驗證碼比較,驗證是否登錄成功。
如圖4所示,通過H5新增功能地理位置 Geolocation,來獲取可以較為準(zhǔn)確地獲取到經(jīng)緯度信息,在地圖中顯示出來,需要把它移植到Android中,這里借用的是Android中WebView控件,可以很好地展示出網(wǎng)頁中的內(nèi)容,這就能完成獲取地理位置信息了。
簽到模塊分為創(chuàng)建簽到、加入簽到、查看簽到情況這三個方面。如圖5所示,用戶點擊創(chuàng)建簽到后,填寫表單信息后,前端會把用戶填寫的表單發(fā)送給后端,后端把信息添加進(jìn)數(shù)據(jù)庫,并且隨機(jī)生成數(shù)字簽到碼存入數(shù)據(jù)庫,用json格式返回一個值表示創(chuàng)建成功。如圖6所示,加入簽到模塊,用戶輸入簽到碼,前端把用戶地理位置的經(jīng)緯度、當(dāng)前時間、“簽到碼”用post方式傳給后端。從時間是否在規(guī)定時間內(nèi),簽到的經(jīng)緯度與簽到地點是否在規(guī)定范圍來確定是否為有效簽到。如圖7所示,查看簽到記錄方面,后端查看數(shù)據(jù)庫即可完成此操作,以json格式傳給前端。
圖3 登錄模塊
圖4 獲取地理位置信息模塊
基于地理位置信息的自動打卡簽到應(yīng)用已經(jīng)完成基本簽到功能,已經(jīng)發(fā)布了第一版基于Android的APP,軟件性能良好,操作簡單便捷。本款A(yù)PP不僅解決了傳統(tǒng)紙質(zhì)簽到浪費資源、耗時的問題,還優(yōu)化了目前市場上簽到APP操作較為煩瑣的問題。在今后的研究中,將繼續(xù)對軟件的性能和定位的精度進(jìn)行優(yōu)化,讓用戶擁有更好的使用體驗。
圖5 新建簽到
圖6 加入簽到
圖7 簽到記錄
[1]馬炳周.基于Android的考勤系統(tǒng)的設(shè)計方案[J].中國新通信,2019,21(18):48-49.
[2]劉香燕,李揚. 智能簽到系統(tǒng)的設(shè)計與應(yīng)用[J]. 信息通信,2018(02):95-96.
本文由北京信息科技大學(xué)2020年大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項目資助