郑国凯,侯超钧
(仲恺农业工程学院计算科学学院,广州 510225)
基于iOS的学生考勤管理系统的设计与实现
郑国凯,侯超钧
(仲恺农业工程学院计算科学学院,广州510225)
开发基于iOS系统和ThinkPHP框架的高校学生考勤管理系统,系统包含学生端与后台服务端,学生端通过iOS手机进行考勤签到,使用Alamofire与SDWebImage与服务器交互数据。后台服务端提供课程课表与班级数据录入以及学生考勤等功能。采用了MySQL与ThinkPHP整合开发,并架构在腾讯云平台上。结果表明该系统能够有效提高教师点名效率以及学生出勤率。
iOS;PHP;考勤管理;Alamofire
高校考勤管理工作是高等教育管理的一个重要环节。教师为了掌握学生的出勤情况,大部分都在课堂上根据学生名册念读姓名,这种方式存在诸多不足:①随着招生规模的扩大,较多高校出现4个班以上的合班上课情况,传统点名方式将占用了较多的课堂时间,而且容易出错;②不能较好解决学生代点名的现象,例如学生之间帮忙举手应答,甚至花钱请人上课等;③考勤数据大多需要手工统计以计算学生的平时成绩,比较繁琐且容易出错。随着科技快速发展,文献[1-6]提出了使用软件技术辅助高校课堂考勤的方式,大大提高了考勤工作的管理效率和质量,如一些高校使用指纹识别、蓝牙系统[2]、NFC方式[3]、二维码[4]等手段进行点名,但是这些系统则存在一些不便之处,如指纹识别系统成本较高,蓝牙系统与NFC的距离受限不方便大量学生接入,二维码方式容易被拍照被发送到缺勤学生手机进行假点名。
本文提出一种基于iOS系统的学生考勤系统,学生的数据可以使用Excel提前导入后台服务器端,学生在手机输入正确的个人信息后完成绑定。服务器可根据课程课表自动在上课前10分钟开启勤,学生连入教师在教室配置好的无线局域网,如360wifi等,即可进行考勤签到。通过无线局域网的部署,可以实现避免学生考勤作弊。本开发团队也同步开发了基于Android的学生端考勤系统,但发现校内有相当部分学生 (超过18%的学生)使用iPhone设备,为了提供本考勤系统的适应性,我们通过开发iOS系统能完善我们考勤系统的适用范围。本系统设计与实现可为其他高校的考勤系统设计提供有效的参考。
1.1系统框架设计
本系统的后台服务端与iOS客户端通过JSON数据的解析完成数据交互,数据交互流程如图1所求,当学生在iOS客户端发起一个考勤请求时,后台服务端通过将学生的IP地址与子网掩码作与运算,来判断学生与教师是否在同个局域网内,如果在同个局域网内,并且尚未签到,则将学生的考勤数据插入MySQL数据库,保存到腾讯云平台,并返回签到成功信息;如果学生与教师不在同个局域网内,则学生将无法进行考勤。iOS客户端对返回的JSON数据进行解析并显示相应的提示信息。
图1 系统响应流程图
1.2实现技术
系统服务器端采用PHP技术,ThinkPHP框架整合实现,手机端功能采用Swift和Obejctive-C开发,使用JSON的数据形式实现系统的手机端与服务器端的数据交互。在手机端,我们采用Alamofire、SDWebImage作为网络请求的组件,来便捷数据的处理,其中Alamofire负责数据的解析,SDWebImage负责图片的解析。
(1)ThinkPHP框架
ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,能简化企业级应用开发和敏捷Web应用开发。它遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。ThinkPHP框架能够解决应用开发中的大多数需要,其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件。每个组件都是精心设计和完善的,应用开发过程仅仅需要关注业务逻辑。
(2)Alamofire
Alamofire是一个功能强大的Swift语言HTTP网络开发工具包,是iOS和OS X上最受欢迎的第三方库之一。支持各种HTTP Method、JSON、文件上传、文件下载和多种认证方法。示例代码如下:
2.1考勤交互流程
管理员先在后台服务端预先录入学期数据、教师数据等。教师通过教师端录入授课数据,学生上课名册,教师可以预先设置课表,服务器在上课时间前10分钟自动开启考勤,也可以由教师手动开启课程考勤。学生通过iOS设备连入局域网Wi-Fi,首次把学号、姓名、手机号以及手机唯一识别码等信息发给后台审核通过后,即完成手机的绑定。在课堂考勤时,教师先在教室布置局域网Wi-Fi,如360随身wifi。学生连入局域网后,通过iOS端即可完成考勤登录。为了防止手机代签到的情况,系统根据学生登陆信息中的局域网地址,判断学生手机是否通过教师部署的Wi-Fi局域网登录系统来判断学生手机的签到位置,并会随机选取部分学生并要求他们考勤点名时拍照,可以避免手机在而人不在课堂的情况。学生客户端的考勤的数据流程图如图2所示。
图2 学生客户端数据流程
2.2用户端模块
(1)手机绑定功能
分首次绑定与重新绑定两种,重新绑定主要是针对更换手机的学生。
①首次绑定,每个学生通过手机绑定个人账号,绑定信息包括手机号码、学生学号、姓名、手机设备的deviceToken,其中前三项需要手动输入,最后一项由程序获取。因为不同的iOS设备的deviceToken是不同的,所以可以用作手机唯一标识,使得每个学生只能注册一台手机,并且作为学生考勤的账号凭证。当绑定信息中的学生学号、姓名与数据库录入的学生名据匹配,并且手机号码和deviceToken在数据库中唯一出现时,则注册完成。学生可以选修多个教师的不同课程,但只需绑定一次手机,该手机信息将在他选修课程中通用。同样,后续学期的课程也不需要重新绑定,除非学生更换手机。
②重新绑定,学生更换手机时,手机设备的deviceToken会改变,学生需要提交以上绑定信息,需要等待教师验证核实后才能完成重新绑定。
(2)用户个人信息管理功能
①头像上传,用户可以选择拍照或者本地相册的照片,当用户确定好照片之后,可以对照片进行缩放裁剪,选择好照片之后上传。
②信息反馈,用户可以将对学院、班级、课程、系统等的建议反馈给管理员,用户在正确提交反馈信息后,可以查看自己的反馈记录。
(3)公告功能
公告将分为系统公告、课程公告、班级公告与学院公告4种。所有学生用户可以查看系统公告,相应课程的学生可以查看相应的课程公告,相应专业班级的学生可以查看相应的专业班级公告,相应学院的学生可以查看相应的学院公告。系统管理员可以将系统、学院、班级、课程的公告信息通过APNs推送给用户。具体的推送流程如下:
①iOS从APNS Server获取deviceToken,应用程序接收deviceToken。
②应用程序将deviceToken发送给程序的PUSH服务端程序,并将消息发送给iPhone应用程序。
(4)课程信息管理功能
学生可以浏览本学期需要上课的所有课程,每门课的详情信息显示上课具体时间,如第几周,星期几,学生可以在课程详情中完成考勤。如图3所示,在界面上显示了该学生的本学期的多门课程。
(5)考勤功能
考勤签到主要使用手机所在的相局域网进行判断,具体地,先通过iOS的底层框架获取到App的IP地址和子网掩码,并进行与运算,如果与教师机计算出来的结果相同,则可确定学生是在教师机搭建的无线局域网下进行考勤签到。如图4所示,显示了该课程的课表,通过点击界面中部的“签到”可以实现该课程的考勤签到。
图3 课程信息模块
图4 考勤模块
2.3教师端模块
教师端模块主要有教师账号登录,课程信息管理,班级课表信息管理,学生信息管理,考勤信息查询,考勤信息统计,在线考勤功能管理,问题回复,离线考勤数据导入,课程公告发布等主要功能。
(1)课程信息管理功能
教师选择在相应学期下开设课程,课程信息包括:课程代码、课程名称、学时、学分等基本数据。
(2)班级课表信息管理功能
教师可以输入课程的课表信息,课表信息包括上课周次、上课节次、上课班级等数据,考勤系统将根据课表时间,在上课前10分钟开放给学生iOS端考勤登入。教师可以对课表进行删除与修改等,如当发生节假日要调停节次时,教师可以选择是否补课,如不补课,该课表要设置为停课,如补课,则可修改补课周次与节次。此外。教师也可以不用录入课表,通过网页,手动开启相应课程的课堂考勤。
(3)学生信息管理功能
教师可以用Excel文件批量导入学生基本信息;可以查看学生信息,并对学生手机绑定与重新绑定提供审核功能。如图5所示,显示了学生信息管理的界面。
(4)考勤信息管理功能
①检索学生的考勤信息,如检索某门课程学生的考勤情况,查看某个指定学生在本学期本课程的全部考勤信息,如登录时间,缺勤次数等。查询结果可以导出Excel文件。
②课程考勤信息的管理,如当教师明确知道某学生是用手机代考勤,能够修改其考勤状态为“缺勤”;或者有学生手机确实损坏或丢失,能够设置其正常考勤状态;可以把补请假条的学生的“缺勤”状态修改为“请假”状态;当教师发现考勤班级出错的情况,可以整个班删除某次课的考勤记录,以重新启动考勤。
③考勤信息统计,提供根据课程的学生考勤信息,按班级以一个列表显示每个学生的总体情况。可以统计有多少人缺勤、迟到、旷课、请假、全勤。统计信息可以导出Excel文件。
(5)在线考勤功能管理功能
教师可以根据实际情况停止当前系统考勤,可以重新设置迟到时刻。系统通过滑动条形式动态显示最近登录考勤系统的学生,网页默认10秒钟周期刷新最新考勤学生,以列表形式显示。
学生考勤管理系统是根据仲恺教师在校多年的考勤经验,以及传统考勤方式的一些不足,从易用性和高效性的高度去设计和开发。主要目的是减少教师上课考勤时间,提高学生出勤率,方便教师作考勤统计。本系统在开发中,使用了目前比较流行的开源框架,如SDWebImage,Alamofire,ThinkPHP等,经过1年的试运行,本系统确实能够提供给教师一个方便快捷的考勤平台,同时本系统的设计与实现也作为其他高校考勤管理系统的改进提供一个有益考。
图5 学生信息管理
[1]王靖娜.基于Android的学生考勤管理系统设计与开发[J].现代电子技术,2014(8):99-101.
[2]葛艺潇,闵富红.基于Android和Arduino的蓝牙考勤系统实现[J].信息通信,2016(4):109-110.
[3]苏婕,王忠.基于NFC技术的智能考勤管理系统设计与实现[J].测控技术,2015,34(2):129-133.
[4]韩哲.基于Android平台的二维码网络考勤系统设计与实现[J].安徽科技学院学报,2013,27(5):63-66.
[5]张瑞,于潇榕.基于Android智能终端移动考勤系统的设计与实现[J].信息技术,2015(4):185-187,191.
[6]王金玲.基于移动手机平台的高校学生考勤与日常管理系统的设计与实现.电子科技大学,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-),男,广东汕头人,仲恺农业工程学院2013级本科生,研究方向为软件工程
侯超钧(1979-),男,广东广州人,讲师,博士,研究方向为智能信息处理
2016-07-28
2016-09-20