基于Android的学生考勤管理系统设计与开发
2014-09-27王靖娜
王靖娜
摘要: 高校学生考勤管理存在着人工管理效率低、信息分散、实时性差、难于统计、利用率低的问题,对学生出勤信息的动态掌握造成了困难。提出一种包含Android移动客户端(Android端)、PC Web客户端(PC端)和Web服务端(服务端)混合而成的学生考勤管理系统。使用基于Android平台的移动设备实现电子点名功能,通过3G网络将学生考勤数据实时上传至服务器,并用J2EE实现考勤数据的动态管理和查看。通过实验表明,系统部署后确能实时、宏观的掌握学生出勤信息,为高校学生安全管理提供了有力的支持。
关键字: 学生安全管理; 考勤管理; Android; J2EE
中图分类号: TN964⁃34 文献标识码: A文章编号: 1004⁃373X(2014)08⁃0099⁃03
Design and development of student attendance management system based on Android
WANG Jing⁃na
(Shaanxi Radio & TV University, Xian 710119, China)
Abstract: A student attendance management system including Android end, PC end and Web server end is proposed to solve the problems of low efficiency, information dispersion, bad real⁃time property, difficult statistics and low use ratio ofmanual management in the attendance management system of college students. The mobile devices based on Android platform is used in the attendance system to realize electronic roll call function. The attendance data of the students is acquired by Android devices and uploaded to server by 3G network. Dynamical management and looking up of attendance data are implemented by J2EE framework. The experimental results show that it can dynamically analyze the attendance information and provide a strong support for the current security management system of college students.
Keywords: student security management; attendance management; Android; J2EE
0引言
近年来,高校学生安全事故频发,安全管理问题日益突出[1]。而其中有相当一部分安全事件又发生在教学时段,除了加强常规手段[2]外,教师在教学时段对学生的考勤也应该发挥重要的作用。但是传统教学中,学生的考勤信息仅作为教师课程总评结果中对学生日常表现的评价依据。而且还存在以下一些问题:
(1) 考勤信息由教师人工操作、管理,效率低下;
(2) 不同教师所掌握的考勤信息分散、缺乏联系;
(3) 信息汇总往往发生在期末总评期间,实时性差;
(4) 记录形式不规范统计困难;
(5) 教师对教学期间的缺勤信息缺乏及时的处理,利用率低下。笔纸记录,分析整理在学校的日常管理中发挥的作用微乎其微,从而导致考勤信息在高校安全管理中无法发挥重要作用。
目前智能移动设备普及率日益提高,特别是基于Google Android系统[3]的移动平台,市场占有率极高。Android相关硬件种类丰富且价格相对较为低廉,平台应用数量也十分庞大,整个生态系统非常成熟。为了充分利用教师的考勤信息,提出首先以Android平台为出发点建立学生考勤管理系统辅助高校安全管理。系统由Android端提供点名、数据上传等基础功能;由PC端实现信息的高级管理;由服务端实现数据的存储及安全管理。系统部署阶段的实验表明,系统能实时、宏观地掌握学生出勤信息,可及时将信息反馈给安全管理人员,有效地辅助高校学生安全管理工作。
1系统设计与实现
基于android的学生考勤管理系统主要由Android端、PC端和服务器端3部分组成。Android端负责考勤数据的采集以及较为简单的数据查询。任课教师使用安装有Android客户端软件的智能设备进行电子点名,并通过网络将数据上传到服务器端,完成考勤数据的采集。PC端则提供较为完整的考勤数据管理和系统安全管理功能。用户通过PC端界面登录到服务端读取数据库服务器中的数据,实时查看全校学生考勤的汇总信息,发现其中存在的问题,指导进一步的管理工作。
1.1服务器及PC端
服务器端与PC端构成完整的Web应用,在开发过程中充分使用MVC模式和面向对象思想进行设计来提高系统的灵活性和扩展性。采用了分层的系统架构(架构图见图1),主要由 表示层、控制层、业务逻辑层和数据持久层4个层次组成。其中,表示层为Android端和PC端提供交互界面和请求响应,采用Freemarker作为模板引擎。控制层用Struts2[4]框架处理客户端请求组织业务逻辑,并实现服务端有效性检验、国际化等非功能需求。业务逻辑层通过基于接口的编程方法将系统业务分解成细粒度的服务,大大提高了代码的重用度。数据持久层则采用Mybatis3[5]作为ORM框架实现系统与数据库之间的交互,降低了系统对数据库的依赖,提高数据存储的灵活性。而各层次对象间的依赖关系由Spring3[6]框架管理。分层架构的使用有利于团队成员的分工合作,降低了系统集成难度,提高了项目开发生产效率。
图1 服务端架构
服务端对外提供的服务以REST风格进行组织,这样所有服务都以标准的HTTP请求的方式提供给客户端。当PC端或Android端向服务器端发送HTTP请求时,Struts2框架的FilterDispatcher过滤器根据配置文件将请求映射至相应的Action入口方法。在Action的服务入口函数中根据业务需求将由业务逻辑层提供更小粒度的服务单元进行整合。业务逻辑层涉及到数据存取部分的功能则又交由数据持久层的ORM框架完成。数据持久层完成数据操作后将结果反馈给业务逻辑层并进一步由后将结果传递到控制层,再由控制层根据服务执行结果选择相应的表示层模板将结果输出至客户端。若结果为纯数据则使用JSON格式进行数据打包,而其他数据则是由Freemarker代码和客户端代码混合而成。
主要功能实现:
(1) 登录验证:所有用户必须为已注册的管理人员和教师。管理员可以进行全部的系统管理操作,而教师则在课程管理的模块,只能对自己的课程信息进行相关修改。在开发时使AOP编程思想实现,用Struts2中的Intercepter拦截系统的所有请求并进行验证,这样业务代码就避免了被非功能代码的污染同时提高了系统的灵活性。考虑到系统的用户量、访问量,为了提高系统性能,将全部用户基本信息表缓存在服务内存当中。
(2) 学生信息管理模块:主要是对学生的相关信息进行增删改查。全体学生信息在系统部署时,由系统管理员从学校的相关系统中一次性导入,后期仅需要少量的日常维护。
(3) 课程信息模块:这里主要是对教师所授的课程信息进行增删改查,管理员可以对所有教师进行操作,而教师只能对和自己有关的课程信息进行操作。
(4) 点名信息管理模块:主要对从移动客户端上传的点名信息进行处理。考勤数据中的基本信息生成后,后续就无法进行更改,避免的考勤信息的人为干预。用户可以根据授课教师,课程,以或授课班级,对某一班的点名信息进行统计分析。在PC端数据分析界面中,引入了HighCharts框架,使用图形展示简洁大方。
(5) 各班负责人管理模块:主要是对每一个班级中的联系人进行管理,方便教师与学生交流。
(6) 移动端数据的上传与下载:主要是对Android端发送的请求进行响应,一方面为Android端提供数据下载服务;另一方面是接收Android端上传的考勤数据。为了满足教学管理中对考勤数据进一步分析的需求,系统使用jXLS框架将考勤数据输出至jXLS模板动态生成Excel文件。
1.2Android端
Android端使用ADT(Android Development Toolkit)开发环境进行开发,逻辑结构方面也采用了与服务器类似的分层架构,不同点在于控制层直接与Activity结合。业务运行相关数据使用Android系统内置的SQLite数据库API在本地进行存储。Android端与服务器端考勤数据的同步功能则以服务形式实现,可以避免应用切换时未同步数据的丢失。当数据传输量较大时,若用户使用3G网络进行通信,则系统会提示用户是否进行通信,从而节省通信成本。在无网络信号时,产生的考勤等数据会首先被保存在移动设备中,待网络信息恢复后再与服务器端进行同步。Android端与服务器端的数据交互通过Apache HttpClient框架来完成。任课教师在授课时使用Android端进行考勤数据的采集,完成后系统通过同步服务使用HttpClient自动将数据同步至服务器。此外教师还可以通过Android端完成所授班级学生信息、所授课程信息、班级联系人信息查询等功能。各功能详细描述如下:
(1) 点名:可以实现教师所教授班级学生的点名,进行缺勤/出勤处理,并且还可对缺勤的同学进一步根据其请假与否进行处理。还可以查看某个同学的相关信息。
(2) 个人课表查询:查询教师的个人课表。
(3) 各班联系方式管理:负责管理各班联系方式,能发送信息或者打电话给各班负责人。
(4) 服务器与手机端的信息相互同步:能够实现Android端与服务器端的信息同步,既可以从服务器端下载相关的考勤数据,也可以将Android端新产生的考勤数据同步到服务器端。
(5) 到课率与平时成绩统计:查询某专业或者某个人的到课率情况。
1.3数据库设计
结合系统需求对系统核心数据进行分析,可以抽取出相关的实体:登录用户、学生、课程、班级、点名信息等,其E⁃R图如图2所示。从图中可以清楚的看出各实体之间的联系相对比较简单,易于实现。系统采用广为流行的开源数据库MySQL作为服务端的持久层数据仓库,在降低系统的成本的同时并未降低系统的稳定性和可靠性。
图2 服务端数据库设计
2实验结果
系统开发完成后,作者在日常教学过程中进行了全面的测试。达到了系统的目标,满足了考勤管理的需要。与传统模式相比,教师完成点名所需的时间与笔纸方式相当,而后续工作所需时间则大幅度减少。但在使用过程中也发现一些会影响到系统的因素,可能会影响系统部分设计目标的达成。
在3G信号模式(教学区域无Wifi信号)下进行数据同步时,由于网络信号原因存在以下问题:
(1) 局部区域网络信号不稳定,同步很难一次完成。
(2) 当网络传输速度较慢时,上传有时无法在数秒内完成。
针对网速较慢的情况,可考虑在未来版本中将同步转移至后台,老师点名结束后,系统首先自动将数据同存在本地,在手动启动同步服务后再进行数据同步操作,这样就不会影响到教师教学的连续性。
3结语
以流行的Android智能设备作为考勤数据采集工具,在基础数据采集时间相当的情况下,大幅度减少了后期统计的工作量。并且,通过3G网络实时将考勤数据上传至服务后,在更大范围的考勤信息动态统计工作成为了可能,大大超出的纯人工方式考勤数据的应用范围,为学校对学生的安全管理提供了有力的、新的手段。
参考文献
[1] 杨斌.重视高校安全新风险点[N].中国保险报,2013⁃11⁃12(7).
[2] 范博,张晶晶.高校校园安全管理对策研究[J].中国·东盟博览,2013(3):9⁃12.
[3] LEE Wei Meng. beginning Android 4 application development [M]. [S.l.]: Willey, 2012: 1⁃43.
[4] BROWN D, DAVIS C M, STANLICK S. Struts 2 in action [M]. [S.l.]: ManningPublications, 2008.
[5] BEGIN C, GOODIN B, MEADORS L. iBATIS in action [M]. [S.l.]: ManningPublications, 2007.
[6] WALLS Craig. Spring in action [M]. Third Edition. [S.l.]: ManningPublications, 2011.
主要功能实现:
(1) 登录验证:所有用户必须为已注册的管理人员和教师。管理员可以进行全部的系统管理操作,而教师则在课程管理的模块,只能对自己的课程信息进行相关修改。在开发时使AOP编程思想实现,用Struts2中的Intercepter拦截系统的所有请求并进行验证,这样业务代码就避免了被非功能代码的污染同时提高了系统的灵活性。考虑到系统的用户量、访问量,为了提高系统性能,将全部用户基本信息表缓存在服务内存当中。
(2) 学生信息管理模块:主要是对学生的相关信息进行增删改查。全体学生信息在系统部署时,由系统管理员从学校的相关系统中一次性导入,后期仅需要少量的日常维护。
(3) 课程信息模块:这里主要是对教师所授的课程信息进行增删改查,管理员可以对所有教师进行操作,而教师只能对和自己有关的课程信息进行操作。
(4) 点名信息管理模块:主要对从移动客户端上传的点名信息进行处理。考勤数据中的基本信息生成后,后续就无法进行更改,避免的考勤信息的人为干预。用户可以根据授课教师,课程,以或授课班级,对某一班的点名信息进行统计分析。在PC端数据分析界面中,引入了HighCharts框架,使用图形展示简洁大方。
(5) 各班负责人管理模块:主要是对每一个班级中的联系人进行管理,方便教师与学生交流。
(6) 移动端数据的上传与下载:主要是对Android端发送的请求进行响应,一方面为Android端提供数据下载服务;另一方面是接收Android端上传的考勤数据。为了满足教学管理中对考勤数据进一步分析的需求,系统使用jXLS框架将考勤数据输出至jXLS模板动态生成Excel文件。
1.2Android端
Android端使用ADT(Android Development Toolkit)开发环境进行开发,逻辑结构方面也采用了与服务器类似的分层架构,不同点在于控制层直接与Activity结合。业务运行相关数据使用Android系统内置的SQLite数据库API在本地进行存储。Android端与服务器端考勤数据的同步功能则以服务形式实现,可以避免应用切换时未同步数据的丢失。当数据传输量较大时,若用户使用3G网络进行通信,则系统会提示用户是否进行通信,从而节省通信成本。在无网络信号时,产生的考勤等数据会首先被保存在移动设备中,待网络信息恢复后再与服务器端进行同步。Android端与服务器端的数据交互通过Apache HttpClient框架来完成。任课教师在授课时使用Android端进行考勤数据的采集,完成后系统通过同步服务使用HttpClient自动将数据同步至服务器。此外教师还可以通过Android端完成所授班级学生信息、所授课程信息、班级联系人信息查询等功能。各功能详细描述如下:
(1) 点名:可以实现教师所教授班级学生的点名,进行缺勤/出勤处理,并且还可对缺勤的同学进一步根据其请假与否进行处理。还可以查看某个同学的相关信息。
(2) 个人课表查询:查询教师的个人课表。
(3) 各班联系方式管理:负责管理各班联系方式,能发送信息或者打电话给各班负责人。
(4) 服务器与手机端的信息相互同步:能够实现Android端与服务器端的信息同步,既可以从服务器端下载相关的考勤数据,也可以将Android端新产生的考勤数据同步到服务器端。
(5) 到课率与平时成绩统计:查询某专业或者某个人的到课率情况。
1.3数据库设计
结合系统需求对系统核心数据进行分析,可以抽取出相关的实体:登录用户、学生、课程、班级、点名信息等,其E⁃R图如图2所示。从图中可以清楚的看出各实体之间的联系相对比较简单,易于实现。系统采用广为流行的开源数据库MySQL作为服务端的持久层数据仓库,在降低系统的成本的同时并未降低系统的稳定性和可靠性。
图2 服务端数据库设计
2实验结果
系统开发完成后,作者在日常教学过程中进行了全面的测试。达到了系统的目标,满足了考勤管理的需要。与传统模式相比,教师完成点名所需的时间与笔纸方式相当,而后续工作所需时间则大幅度减少。但在使用过程中也发现一些会影响到系统的因素,可能会影响系统部分设计目标的达成。
在3G信号模式(教学区域无Wifi信号)下进行数据同步时,由于网络信号原因存在以下问题:
(1) 局部区域网络信号不稳定,同步很难一次完成。
(2) 当网络传输速度较慢时,上传有时无法在数秒内完成。
针对网速较慢的情况,可考虑在未来版本中将同步转移至后台,老师点名结束后,系统首先自动将数据同存在本地,在手动启动同步服务后再进行数据同步操作,这样就不会影响到教师教学的连续性。
3结语
以流行的Android智能设备作为考勤数据采集工具,在基础数据采集时间相当的情况下,大幅度减少了后期统计的工作量。并且,通过3G网络实时将考勤数据上传至服务后,在更大范围的考勤信息动态统计工作成为了可能,大大超出的纯人工方式考勤数据的应用范围,为学校对学生的安全管理提供了有力的、新的手段。
参考文献
[1] 杨斌.重视高校安全新风险点[N].中国保险报,2013⁃11⁃12(7).
[2] 范博,张晶晶.高校校园安全管理对策研究[J].中国·东盟博览,2013(3):9⁃12.
[3] LEE Wei Meng. beginning Android 4 application development [M]. [S.l.]: Willey, 2012: 1⁃43.
[4] BROWN D, DAVIS C M, STANLICK S. Struts 2 in action [M]. [S.l.]: ManningPublications, 2008.
[5] BEGIN C, GOODIN B, MEADORS L. iBATIS in action [M]. [S.l.]: ManningPublications, 2007.
[6] WALLS Craig. Spring in action [M]. Third Edition. [S.l.]: ManningPublications, 2011.
主要功能实现:
(1) 登录验证:所有用户必须为已注册的管理人员和教师。管理员可以进行全部的系统管理操作,而教师则在课程管理的模块,只能对自己的课程信息进行相关修改。在开发时使AOP编程思想实现,用Struts2中的Intercepter拦截系统的所有请求并进行验证,这样业务代码就避免了被非功能代码的污染同时提高了系统的灵活性。考虑到系统的用户量、访问量,为了提高系统性能,将全部用户基本信息表缓存在服务内存当中。
(2) 学生信息管理模块:主要是对学生的相关信息进行增删改查。全体学生信息在系统部署时,由系统管理员从学校的相关系统中一次性导入,后期仅需要少量的日常维护。
(3) 课程信息模块:这里主要是对教师所授的课程信息进行增删改查,管理员可以对所有教师进行操作,而教师只能对和自己有关的课程信息进行操作。
(4) 点名信息管理模块:主要对从移动客户端上传的点名信息进行处理。考勤数据中的基本信息生成后,后续就无法进行更改,避免的考勤信息的人为干预。用户可以根据授课教师,课程,以或授课班级,对某一班的点名信息进行统计分析。在PC端数据分析界面中,引入了HighCharts框架,使用图形展示简洁大方。
(5) 各班负责人管理模块:主要是对每一个班级中的联系人进行管理,方便教师与学生交流。
(6) 移动端数据的上传与下载:主要是对Android端发送的请求进行响应,一方面为Android端提供数据下载服务;另一方面是接收Android端上传的考勤数据。为了满足教学管理中对考勤数据进一步分析的需求,系统使用jXLS框架将考勤数据输出至jXLS模板动态生成Excel文件。
1.2Android端
Android端使用ADT(Android Development Toolkit)开发环境进行开发,逻辑结构方面也采用了与服务器类似的分层架构,不同点在于控制层直接与Activity结合。业务运行相关数据使用Android系统内置的SQLite数据库API在本地进行存储。Android端与服务器端考勤数据的同步功能则以服务形式实现,可以避免应用切换时未同步数据的丢失。当数据传输量较大时,若用户使用3G网络进行通信,则系统会提示用户是否进行通信,从而节省通信成本。在无网络信号时,产生的考勤等数据会首先被保存在移动设备中,待网络信息恢复后再与服务器端进行同步。Android端与服务器端的数据交互通过Apache HttpClient框架来完成。任课教师在授课时使用Android端进行考勤数据的采集,完成后系统通过同步服务使用HttpClient自动将数据同步至服务器。此外教师还可以通过Android端完成所授班级学生信息、所授课程信息、班级联系人信息查询等功能。各功能详细描述如下:
(1) 点名:可以实现教师所教授班级学生的点名,进行缺勤/出勤处理,并且还可对缺勤的同学进一步根据其请假与否进行处理。还可以查看某个同学的相关信息。
(2) 个人课表查询:查询教师的个人课表。
(3) 各班联系方式管理:负责管理各班联系方式,能发送信息或者打电话给各班负责人。
(4) 服务器与手机端的信息相互同步:能够实现Android端与服务器端的信息同步,既可以从服务器端下载相关的考勤数据,也可以将Android端新产生的考勤数据同步到服务器端。
(5) 到课率与平时成绩统计:查询某专业或者某个人的到课率情况。
1.3数据库设计
结合系统需求对系统核心数据进行分析,可以抽取出相关的实体:登录用户、学生、课程、班级、点名信息等,其E⁃R图如图2所示。从图中可以清楚的看出各实体之间的联系相对比较简单,易于实现。系统采用广为流行的开源数据库MySQL作为服务端的持久层数据仓库,在降低系统的成本的同时并未降低系统的稳定性和可靠性。
图2 服务端数据库设计
2实验结果
系统开发完成后,作者在日常教学过程中进行了全面的测试。达到了系统的目标,满足了考勤管理的需要。与传统模式相比,教师完成点名所需的时间与笔纸方式相当,而后续工作所需时间则大幅度减少。但在使用过程中也发现一些会影响到系统的因素,可能会影响系统部分设计目标的达成。
在3G信号模式(教学区域无Wifi信号)下进行数据同步时,由于网络信号原因存在以下问题:
(1) 局部区域网络信号不稳定,同步很难一次完成。
(2) 当网络传输速度较慢时,上传有时无法在数秒内完成。
针对网速较慢的情况,可考虑在未来版本中将同步转移至后台,老师点名结束后,系统首先自动将数据同存在本地,在手动启动同步服务后再进行数据同步操作,这样就不会影响到教师教学的连续性。
3结语
以流行的Android智能设备作为考勤数据采集工具,在基础数据采集时间相当的情况下,大幅度减少了后期统计的工作量。并且,通过3G网络实时将考勤数据上传至服务后,在更大范围的考勤信息动态统计工作成为了可能,大大超出的纯人工方式考勤数据的应用范围,为学校对学生的安全管理提供了有力的、新的手段。
参考文献
[1] 杨斌.重视高校安全新风险点[N].中国保险报,2013⁃11⁃12(7).
[2] 范博,张晶晶.高校校园安全管理对策研究[J].中国·东盟博览,2013(3):9⁃12.
[3] LEE Wei Meng. beginning Android 4 application development [M]. [S.l.]: Willey, 2012: 1⁃43.
[4] BROWN D, DAVIS C M, STANLICK S. Struts 2 in action [M]. [S.l.]: ManningPublications, 2008.
[5] BEGIN C, GOODIN B, MEADORS L. iBATIS in action [M]. [S.l.]: ManningPublications, 2007.
[6] WALLS Craig. Spring in action [M]. Third Edition. [S.l.]: ManningPublications, 2011.