鄭國(guó)凱,侯超鈞
(仲愷農(nóng)業(yè)工程學(xué)院計(jì)算科學(xué)學(xué)院,廣州 510225)
基于iOS的學(xué)生考勤管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
鄭國(guó)凱,侯超鈞
(仲愷農(nóng)業(yè)工程學(xué)院計(jì)算科學(xué)學(xué)院,廣州510225)
開發(fā)基于iOS系統(tǒng)和ThinkPHP框架的高校學(xué)生考勤管理系統(tǒng),系統(tǒng)包含學(xué)生端與后臺(tái)服務(wù)端,學(xué)生端通過iOS手機(jī)進(jìn)行考勤簽到,使用Alamofire與SDWebImage與服務(wù)器交互數(shù)據(jù)。后臺(tái)服務(wù)端提供課程課表與班級(jí)數(shù)據(jù)錄入以及學(xué)生考勤等功能。采用了MySQL與ThinkPHP整合開發(fā),并架構(gòu)在騰訊云平臺(tái)上。結(jié)果表明該系統(tǒng)能夠有效提高教師點(diǎn)名效率以及學(xué)生出勤率。
iOS;PHP;考勤管理;Alamofire
高??记诠芾砉ぷ魇歉叩冉逃芾淼囊粋€(gè)重要環(huán)節(jié)。教師為了掌握學(xué)生的出勤情況,大部分都在課堂上根據(jù)學(xué)生名冊(cè)念讀姓名,這種方式存在諸多不足:①隨著招生規(guī)模的擴(kuò)大,較多高校出現(xiàn)4個(gè)班以上的合班上課情況,傳統(tǒng)點(diǎn)名方式將占用了較多的課堂時(shí)間,而且容易出錯(cuò);②不能較好解決學(xué)生代點(diǎn)名的現(xiàn)象,例如學(xué)生之間幫忙舉手應(yīng)答,甚至花錢請(qǐng)人上課等;③考勤數(shù)據(jù)大多需要手工統(tǒng)計(jì)以計(jì)算學(xué)生的平時(shí)成績(jī),比較繁瑣且容易出錯(cuò)。隨著科技快速發(fā)展,文獻(xiàn)[1-6]提出了使用軟件技術(shù)輔助高校課堂考勤的方式,大大提高了考勤工作的管理效率和質(zhì)量,如一些高校使用指紋識(shí)別、藍(lán)牙系統(tǒng)[2]、NFC方式[3]、二維碼[4]等手段進(jìn)行點(diǎn)名,但是這些系統(tǒng)則存在一些不便之處,如指紋識(shí)別系統(tǒng)成本較高,藍(lán)牙系統(tǒng)與NFC的距離受限不方便大量學(xué)生接入,二維碼方式容易被拍照被發(fā)送到缺勤學(xué)生手機(jī)進(jìn)行假點(diǎn)名。
本文提出一種基于iOS系統(tǒng)的學(xué)生考勤系統(tǒng),學(xué)生的數(shù)據(jù)可以使用Excel提前導(dǎo)入后臺(tái)服務(wù)器端,學(xué)生在手機(jī)輸入正確的個(gè)人信息后完成綁定。服務(wù)器可根據(jù)課程課表自動(dòng)在上課前10分鐘開啟勤,學(xué)生連入教師在教室配置好的無線局域網(wǎng),如360wifi等,即可進(jìn)行考勤簽到。通過無線局域網(wǎng)的部署,可以實(shí)現(xiàn)避免學(xué)生考勤作弊。本開發(fā)團(tuán)隊(duì)也同步開發(fā)了基于Android的學(xué)生端考勤系統(tǒng),但發(fā)現(xiàn)校內(nèi)有相當(dāng)部分學(xué)生 (超過18%的學(xué)生)使用iPhone設(shè)備,為了提供本考勤系統(tǒng)的適應(yīng)性,我們通過開發(fā)iOS系統(tǒng)能完善我們考勤系統(tǒng)的適用范圍。本系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)可為其他高校的考勤系統(tǒng)設(shè)計(jì)提供有效的參考。
1.1系統(tǒng)框架設(shè)計(jì)
本系統(tǒng)的后臺(tái)服務(wù)端與iOS客戶端通過JSON數(shù)據(jù)的解析完成數(shù)據(jù)交互,數(shù)據(jù)交互流程如圖1所求,當(dāng)學(xué)生在iOS客戶端發(fā)起一個(gè)考勤請(qǐng)求時(shí),后臺(tái)服務(wù)端通過將學(xué)生的IP地址與子網(wǎng)掩碼作與運(yùn)算,來判斷學(xué)生與教師是否在同個(gè)局域網(wǎng)內(nèi),如果在同個(gè)局域網(wǎng)內(nèi),并且尚未簽到,則將學(xué)生的考勤數(shù)據(jù)插入MySQL數(shù)據(jù)庫,保存到騰訊云平臺(tái),并返回簽到成功信息;如果學(xué)生與教師不在同個(gè)局域網(wǎng)內(nèi),則學(xué)生將無法進(jìn)行考勤。iOS客戶端對(duì)返回的JSON數(shù)據(jù)進(jìn)行解析并顯示相應(yīng)的提示信息。
圖1 系統(tǒng)響應(yīng)流程圖
1.2實(shí)現(xiàn)技術(shù)
系統(tǒng)服務(wù)器端采用PHP技術(shù),ThinkPHP框架整合實(shí)現(xiàn),手機(jī)端功能采用Swift和Obejctive-C開發(fā),使用JSON的數(shù)據(jù)形式實(shí)現(xiàn)系統(tǒng)的手機(jī)端與服務(wù)器端的數(shù)據(jù)交互。在手機(jī)端,我們采用Alamofire、SDWebImage作為網(wǎng)絡(luò)請(qǐng)求的組件,來便捷數(shù)據(jù)的處理,其中Alamofire負(fù)責(zé)數(shù)據(jù)的解析,SDWebImage負(fù)責(zé)圖片的解析。
(1)ThinkPHP框架
ThinkPHP是一個(gè)快速、兼容而且簡(jiǎn)單的輕量級(jí)國(guó)產(chǎn)PHP開發(fā)框架,能簡(jiǎn)化企業(yè)級(jí)應(yīng)用開發(fā)和敏捷Web應(yīng)用開發(fā)。它遵循Apache2開源協(xié)議發(fā)布,從Struts結(jié)構(gòu)移植過來并做了改進(jìn)和完善,同時(shí)也借鑒了國(guó)外很多優(yōu)秀的框架和模式,使用面向?qū)ο蟮拈_發(fā)結(jié)構(gòu)和MVC模式,融合了Struts的思想和TagLib(標(biāo)簽庫)、RoR的ORM映射和ActiveRecord模式。ThinkPHP框架能夠解決應(yīng)用開發(fā)中的大多數(shù)需要,其自身包含了底層架構(gòu)、兼容處理、基類庫、數(shù)據(jù)庫訪問層、模板引擎、緩存機(jī)制、插件機(jī)制、角色認(rèn)證、表單處理等常用的組件。每個(gè)組件都是精心設(shè)計(jì)和完善的,應(yīng)用開發(fā)過程僅僅需要關(guān)注業(yè)務(wù)邏輯。
(2)Alamofire
Alamofire是一個(gè)功能強(qiáng)大的Swift語言HTTP網(wǎng)絡(luò)開發(fā)工具包,是iOS和OS X上最受歡迎的第三方庫之一。支持各種HTTP Method、JSON、文件上傳、文件下載和多種認(rèn)證方法。示例代碼如下:
2.1考勤交互流程
管理員先在后臺(tái)服務(wù)端預(yù)先錄入學(xué)期數(shù)據(jù)、教師數(shù)據(jù)等。教師通過教師端錄入授課數(shù)據(jù),學(xué)生上課名冊(cè),教師可以預(yù)先設(shè)置課表,服務(wù)器在上課時(shí)間前10分鐘自動(dòng)開啟考勤,也可以由教師手動(dòng)開啟課程考勤。學(xué)生通過iOS設(shè)備連入局域網(wǎng)Wi-Fi,首次把學(xué)號(hào)、姓名、手機(jī)號(hào)以及手機(jī)唯一識(shí)別碼等信息發(fā)給后臺(tái)審核通過后,即完成手機(jī)的綁定。在課堂考勤時(shí),教師先在教室布置局域網(wǎng)Wi-Fi,如360隨身wifi。學(xué)生連入局域網(wǎng)后,通過iOS端即可完成考勤登錄。為了防止手機(jī)代簽到的情況,系統(tǒng)根據(jù)學(xué)生登陸信息中的局域網(wǎng)地址,判斷學(xué)生手機(jī)是否通過教師部署的Wi-Fi局域網(wǎng)登錄系統(tǒng)來判斷學(xué)生手機(jī)的簽到位置,并會(huì)隨機(jī)選取部分學(xué)生并要求他們考勤點(diǎn)名時(shí)拍照,可以避免手機(jī)在而人不在課堂的情況。學(xué)生客戶端的考勤的數(shù)據(jù)流程圖如圖2所示。
圖2 學(xué)生客戶端數(shù)據(jù)流程
2.2用戶端模塊
(1)手機(jī)綁定功能
分首次綁定與重新綁定兩種,重新綁定主要是針對(duì)更換手機(jī)的學(xué)生。
①首次綁定,每個(gè)學(xué)生通過手機(jī)綁定個(gè)人賬號(hào),綁定信息包括手機(jī)號(hào)碼、學(xué)生學(xué)號(hào)、姓名、手機(jī)設(shè)備的deviceToken,其中前三項(xiàng)需要手動(dòng)輸入,最后一項(xiàng)由程序獲取。因?yàn)椴煌膇OS設(shè)備的deviceToken是不同的,所以可以用作手機(jī)唯一標(biāo)識(shí),使得每個(gè)學(xué)生只能注冊(cè)一臺(tái)手機(jī),并且作為學(xué)生考勤的賬號(hào)憑證。當(dāng)綁定信息中的學(xué)生學(xué)號(hào)、姓名與數(shù)據(jù)庫錄入的學(xué)生名據(jù)匹配,并且手機(jī)號(hào)碼和deviceToken在數(shù)據(jù)庫中唯一出現(xiàn)時(shí),則注冊(cè)完成。學(xué)生可以選修多個(gè)教師的不同課程,但只需綁定一次手機(jī),該手機(jī)信息將在他選修課程中通用。同樣,后續(xù)學(xué)期的課程也不需要重新綁定,除非學(xué)生更換手機(jī)。
②重新綁定,學(xué)生更換手機(jī)時(shí),手機(jī)設(shè)備的deviceToken會(huì)改變,學(xué)生需要提交以上綁定信息,需要等待教師驗(yàn)證核實(shí)后才能完成重新綁定。
(2)用戶個(gè)人信息管理功能
①頭像上傳,用戶可以選擇拍照或者本地相冊(cè)的照片,當(dāng)用戶確定好照片之后,可以對(duì)照片進(jìn)行縮放裁剪,選擇好照片之后上傳。
②信息反饋,用戶可以將對(duì)學(xué)院、班級(jí)、課程、系統(tǒng)等的建議反饋給管理員,用戶在正確提交反饋信息后,可以查看自己的反饋記錄。
(3)公告功能
公告將分為系統(tǒng)公告、課程公告、班級(jí)公告與學(xué)院公告4種。所有學(xué)生用戶可以查看系統(tǒng)公告,相應(yīng)課程的學(xué)生可以查看相應(yīng)的課程公告,相應(yīng)專業(yè)班級(jí)的學(xué)生可以查看相應(yīng)的專業(yè)班級(jí)公告,相應(yīng)學(xué)院的學(xué)生可以查看相應(yīng)的學(xué)院公告。系統(tǒng)管理員可以將系統(tǒng)、學(xué)院、班級(jí)、課程的公告信息通過APNs推送給用戶。具體的推送流程如下:
①iOS從APNS Server獲取deviceToken,應(yīng)用程序接收deviceToken。
②應(yīng)用程序?qū)eviceToken發(fā)送給程序的PUSH服務(wù)端程序,并將消息發(fā)送給iPhone應(yīng)用程序。
(4)課程信息管理功能
學(xué)生可以瀏覽本學(xué)期需要上課的所有課程,每門課的詳情信息顯示上課具體時(shí)間,如第幾周,星期幾,學(xué)生可以在課程詳情中完成考勤。如圖3所示,在界面上顯示了該學(xué)生的本學(xué)期的多門課程。
(5)考勤功能
考勤簽到主要使用手機(jī)所在的相局域網(wǎng)進(jìn)行判斷,具體地,先通過iOS的底層框架獲取到App的IP地址和子網(wǎng)掩碼,并進(jìn)行與運(yùn)算,如果與教師機(jī)計(jì)算出來的結(jié)果相同,則可確定學(xué)生是在教師機(jī)搭建的無線局域網(wǎng)下進(jìn)行考勤簽到。如圖4所示,顯示了該課程的課表,通過點(diǎn)擊界面中部的“簽到”可以實(shí)現(xiàn)該課程的考勤簽到。
圖3 課程信息模塊
圖4 考勤模塊
2.3教師端模塊
教師端模塊主要有教師賬號(hào)登錄,課程信息管理,班級(jí)課表信息管理,學(xué)生信息管理,考勤信息查詢,考勤信息統(tǒng)計(jì),在線考勤功能管理,問題回復(fù),離線考勤數(shù)據(jù)導(dǎo)入,課程公告發(fā)布等主要功能。
(1)課程信息管理功能
教師選擇在相應(yīng)學(xué)期下開設(shè)課程,課程信息包括:課程代碼、課程名稱、學(xué)時(shí)、學(xué)分等基本數(shù)據(jù)。
(2)班級(jí)課表信息管理功能
教師可以輸入課程的課表信息,課表信息包括上課周次、上課節(jié)次、上課班級(jí)等數(shù)據(jù),考勤系統(tǒng)將根據(jù)課表時(shí)間,在上課前10分鐘開放給學(xué)生iOS端考勤登入。教師可以對(duì)課表進(jìn)行刪除與修改等,如當(dāng)發(fā)生節(jié)假日要調(diào)停節(jié)次時(shí),教師可以選擇是否補(bǔ)課,如不補(bǔ)課,該課表要設(shè)置為停課,如補(bǔ)課,則可修改補(bǔ)課周次與節(jié)次。此外。教師也可以不用錄入課表,通過網(wǎng)頁,手動(dòng)開啟相應(yīng)課程的課堂考勤。
(3)學(xué)生信息管理功能
教師可以用Excel文件批量導(dǎo)入學(xué)生基本信息;可以查看學(xué)生信息,并對(duì)學(xué)生手機(jī)綁定與重新綁定提供審核功能。如圖5所示,顯示了學(xué)生信息管理的界面。
(4)考勤信息管理功能
①檢索學(xué)生的考勤信息,如檢索某門課程學(xué)生的考勤情況,查看某個(gè)指定學(xué)生在本學(xué)期本課程的全部考勤信息,如登錄時(shí)間,缺勤次數(shù)等。查詢結(jié)果可以導(dǎo)出Excel文件。
②課程考勤信息的管理,如當(dāng)教師明確知道某學(xué)生是用手機(jī)代考勤,能夠修改其考勤狀態(tài)為“缺勤”;或者有學(xué)生手機(jī)確實(shí)損壞或丟失,能夠設(shè)置其正常考勤狀態(tài);可以把補(bǔ)請(qǐng)假條的學(xué)生的“缺勤”狀態(tài)修改為“請(qǐng)假”狀態(tài);當(dāng)教師發(fā)現(xiàn)考勤班級(jí)出錯(cuò)的情況,可以整個(gè)班刪除某次課的考勤記錄,以重新啟動(dòng)考勤。
③考勤信息統(tǒng)計(jì),提供根據(jù)課程的學(xué)生考勤信息,按班級(jí)以一個(gè)列表顯示每個(gè)學(xué)生的總體情況。可以統(tǒng)計(jì)有多少人缺勤、遲到、曠課、請(qǐng)假、全勤。統(tǒng)計(jì)信息可以導(dǎo)出Excel文件。
(5)在線考勤功能管理功能
教師可以根據(jù)實(shí)際情況停止當(dāng)前系統(tǒng)考勤,可以重新設(shè)置遲到時(shí)刻。系統(tǒng)通過滑動(dòng)條形式動(dòng)態(tài)顯示最近登錄考勤系統(tǒng)的學(xué)生,網(wǎng)頁默認(rèn)10秒鐘周期刷新最新考勤學(xué)生,以列表形式顯示。
學(xué)生考勤管理系統(tǒng)是根據(jù)仲愷教師在校多年的考勤經(jīng)驗(yàn),以及傳統(tǒng)考勤方式的一些不足,從易用性和高效性的高度去設(shè)計(jì)和開發(fā)。主要目的是減少教師上課考勤時(shí)間,提高學(xué)生出勤率,方便教師作考勤統(tǒng)計(jì)。本系統(tǒng)在開發(fā)中,使用了目前比較流行的開源框架,如SDWebImage,Alamofire,ThinkPHP等,經(jīng)過1年的試運(yùn)行,本系統(tǒng)確實(shí)能夠提供給教師一個(gè)方便快捷的考勤平臺(tái),同時(shí)本系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)也作為其他高??记诠芾硐到y(tǒng)的改進(jìn)提供一個(gè)有益考。
圖5 學(xué)生信息管理
[1]王靖娜.基于Android的學(xué)生考勤管理系統(tǒng)設(shè)計(jì)與開發(fā)[J].現(xiàn)代電子技術(shù),2014(8):99-101.
[2]葛藝瀟,閔富紅.基于Android和Arduino的藍(lán)牙考勤系統(tǒng)實(shí)現(xiàn)[J].信息通信,2016(4):109-110.
[3]蘇婕,王忠.基于NFC技術(shù)的智能考勤管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].測(cè)控技術(shù),2015,34(2):129-133.
[4]韓哲.基于Android平臺(tái)的二維碼網(wǎng)絡(luò)考勤系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].安徽科技學(xué)院學(xué)報(bào),2013,27(5):63-66.
[5]張瑞,于瀟榕.基于Android智能終端移動(dòng)考勤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].信息技術(shù),2015(4):185-187,191.
[6]王金玲.基于移動(dòng)手機(jī)平臺(tái)的高校學(xué)生考勤與日常管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).電子科技大學(xué),2013(1):7-48.
[7]楊雯.于Swift語言研究.電子技術(shù)與軟件工程,2015(11):253-255.
[8]王俊芳,李隱峰,王池.基于MVC模式的ThinkPHP框架研究.電子科技,2014,(4):151-158.
Design and Implement of Student Attendance Management System Based on iOS
ZHENG Guo-kai,HOU Chao-jun
(College of Computational Science,Zhongkai University of Agriculture and Engineering,Guangzhou 510225)
Presents the design of the student attendance management system based on iOS and ThinkPHP,this system is composed of student and server platform.The student platform provides the function of attendance check,which is developed with Alamofire and SDWebImage. The server platform provides the curriculum and student management,and attendance manipulation and so on,which is developed with the MySQL and ThinkPHP and published on the Tencent development platform.This system can effectively improve the efficiency of teachers and attendance.
iOS;PHP;Attendance Management;Alamofire
1007-1423(2016)27-0068-05DOI:10.3969/j.issn.1007-1423.2016.27.017
鄭國(guó)凱(1995-),男,廣東汕頭人,仲愷農(nóng)業(yè)工程學(xué)院2013級(jí)本科生,研究方向?yàn)檐浖こ?/p>
侯超鈞(1979-),男,廣東廣州人,講師,博士,研究方向?yàn)橹悄苄畔⑻幚?/p>
2016-07-28
2016-09-20