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