1. 引言
针对图书馆座位管理相关的问题,人们对其进行了一些相关研究,例如:陈鹰提出了座位环境优化,调整座位配置的方法 [1] ;谭丹丹等以上海财经大学为例提出了大学图书馆阅览室座位优化利用的方法 [2] ;杜波设计了一个基于单片机技术的座位管理系统,但是该系统硬件成本高、部署不方便 [3] ;王守红利用指纹认证方法和“一卡通”系统来分配座位,但指纹认证方法不成熟,容易造成排队现象 [4] 。
目前,关于高校图书馆座位的座位预约系统大多为一体机预约、微信平台预约,关于高校图书馆座位预约、签到系统集一体的研究也较为匮乏,并且目前大多使用的图书馆座位管理系统的研究成果是基于PC机开发的Web系统,使用不方便不灵活,大多数无法移植到移动端,有的可以在移动端使用但效果不佳 [5] ,没有座位提醒功能,学生不能及时预约图书馆座位,并且在校生就业压力增大,对于考研、考证的需求日益增长,由此导致图书馆座位资源紧缺,排队、占座现象也引起了诸多矛盾的产生 [6] 。
因此,本文针对于以上问题,设计出一款具有登录、座位预约、签到、签退与续借等功能于一体的小程序,并创新了座位预约提醒功能,希望实现座位共享,提高座位的利用率 [7] ,对于优化图书馆座位资源配置、降低工作人员的工作难度、提高学生学习效率具有一定的现实意义,新疆医科大学座位预约系统设计为微信小程序,成本低,可行性高,使用便捷,能有效提升图书馆座位使用率,大幅减少冲突纠纷,促进校园文明和谐 [8] 。
2. 关键技术
新疆医科大学图书馆座位预约APP的开发所涉及的关键技术包括Android体系架构、MVP模式和JSON数据交换。
2.1. Android体系架构
Android操作系统实际上是一种基于Linux平台的开源操作系统的开放性移动软件,为移动终端专门创造,可准许所有用户在Android操作系统中完成终端设备的开发,在智能手机、智能平板电脑等移动设备中应用。通过Android操作系统的组成结构进行分析可知,该系统主要包括四部分:操作系统、用户界面、中间件以及应用软件 [9] 。
本小程序使用的Android Studio具有集成开发调试、代码编辑以及软件检测,并且提供了Android API接口,通用性强,软件能在大多数安卓手机上运行,系统布局采用LinearLayout,RelativeLayout,GridView等布局方式,数据库采用MYSQL设计。
2.2. MVC模式
总体结构采用“MVC”式结构,即:“Model-View-Controller”结构,“模式–视图–控制器”。模型(Model)模型应用程序主体部分模型表示业务数据或者业务逻辑。视图(View)视图应用程序用户界面相关部分用户看并与之交互界面。控制器(Controller)控制器工作根据用户输入控制用户界面数据显示和更新Model对象状态 [10] ,其运行如图1所示。
2.3. JSON数据交换格式
JSON (JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集 [11] 。由于XML交换格式的数据在解析的时存在一定的弊端,需要编写大量的代码来处理,所以设计该系统时采用了JSON数据交换格式,以便于减少代码编写的工作量,从而进一步提高工作效率 [12] 。
在交互方面,客户端通过okhttp3网络请求库,向服务器端发送数据及接收信息来交互,在服务器端通过JDBC技术来建立和数据库方面的联系,达到查询、插入等功能,根据安卓端发送的数据,由服务器中的servlet进行数据解析处理,利用JSON格式数据传输快,冗余信息少,节省带宽等特点,发送给安卓客户端,来实现面向对象的数据交换,客户端接收服务器端返回的数据以后,通过GSON库对接收的JS0N格式的数据进行解析,提供给用户界面,实现数据处理过程。
3. 座位预约系统的设计
3.1. 研究思路设计
图书馆座位预约APP体系架构由后台和移动端两部分构成,后台和移动端通过Android系统建立联系。后台部分在MVC的基础上采用SSM框架,实现移动端需要的各种API接口设计,包括登录接口、注册接口、座位查询接口、预约座位接口、撤消座位接口等;移动端部分主要负责页面的设计,包括注册页面、登录页面、预约页面、签到页面和个人页面等,对请求的后端数据进行解析并展示给用户,学生通过移动端的各种操作传递给后台,后台解析操作来进行对数据库的处理并反馈信息。
3.2. 功能模块设计
根据APP的目标和实际需求,座位预约APP的功能设计主要分为四大功能模块,分别为:首页模块、预约模块、签到模块、个人模块等,要求实现的功能如下,其具体的功能模块结构如图2所示。
首页:只要合法的用户才能登录此系统,进行首页的相关的操作。
座位预约:用户可以选择进行普通座位和研修间座位的预约,若没有空闲的座位,用户可选择是否提醒。
座位签到:用户预约后,若没有在规定的时间内进行签到,将计违规操作一次,只有按时签到后,才能正常使用座位;如果学生中途离开座位,需进行暂时离开操作,座位继续为该用户保留一小时,一小时内回到座位,需进行重新签到,若没有在规定的时间内回来,计违规操作一次,并释放该座位。离开图书馆时,学生需进行签退操作,否则计违规操作一次。
个人界面:用户可查看自己的预约记录,以及是否有违规记录和违规操作的原因,并查看使用帮助。
3.3. 系统运行流程图设计
新疆医科大学图书馆座位预约APP运行流程如图3所示,启动小程序后,首先进入小程序界面,进行登录(如果是新用户需要注册),成功后进入小程序修改个人信息包括姓名、学号等,学生可以选择预约普通座位或者研修间,如果座位处于“空闲”状态,代表可以使用,如果并未有座位空闲,可设置座位空闲提醒,待有座位可使用时方可进行预约,预约时设置好使用时间,成功预约后即可使用。
成功预约后需要在半小时内对座位进行签到,如果学生未准时签到,视为违规,并释放该座位。签到成功后在使用期间可选择暂时离开或者提前结束,如若暂时离开,需在一小时内按时返回并签到,直至预约时间结束,如需要继续使用座位,可重新预约。
4. 功能实现
小程序启动后,首先进入欢迎界面,欢迎界面包括手机外边框、系统版本号、系统状态栏和新疆医科大学校徽背景图。依据小程序的设计步骤,下面依次描述各界面的具体实现。
4.1. 登录注册界面
进入界面后,若未登录,需先注册,界面会跳转到注册界面,如图4所示,注册界面包括注册需要输入学号、账号、密码、确认密码四个步骤。若原先已登录过则无需注册,只需输入学号、账号、密码等来完成登录,登录界面如图5所示。
用户密码采用MD5加密方法,后端接受提交数据之后,通过在数据库中进行查找比对核对身份,然后对移动端进行信息反馈,登陆失败系统将返回具体失败原因,如账号不存在、密码错误等,登录成功则直接进入主页面。
4.2. “首页”界面
登录成功后会跳转到首页的界面,如图6所示,页面布局使用LinearLayout垂直布局,上方展示新疆医科大学图书馆的背景图,首页功能包括图书借阅,空间预约,智能客服,云打印,超期查询,我的积分等。
4.3. “预约”界面
点击界面下方的“预约”可跳转到预约界面,如图7所示,可以输入预约时间来预约需要在图书馆学习的时间,用户点击每一层会显示每层的是否空闲,可否预约的状态,可根据这个来选择预约的座位。客户端使用AJAX中的XML Http Request对象将用户的预留座位信息发送到后台。后台调用Request方法从客户端获取数据,并将用户的预留座位信息保存到数据库中。在用户成功选择座位后,后台将使用常驻过程来确定用户预约是否超时,超时会发送消息并记录日志。
4.4. “签到”界面
在签到界面,如图8所示,如果用户已预约未签到,界面会显示预约已生效但未签到,签到需要扫对应预约的座位上的二维码来,来进行签到。若扫码签到后但还是显示未签到,进行状态刷新操作。
4.5. “个人”界面
在个人界面上端会显示个人姓名以及学号,可在“我的”里查看预约记录,联系方式,个人信用,也可以修改密码,还有使用帮助,重新加载,清理绑定等,个人界面如图9所示。
5. 结语
本文基于Android,使用JAVA编程语言,开发出一款应用微信小程序的新疆医科大学座位预约APP,解决了在图书馆座位供不应求的情况下,不文明占座现象的情况,其也是图书馆服务智能化发展的产物,促使图书馆服务、内容及方式带来全面的变革,创造服务新空间、新形态,使读者主动参与进来,优化图书馆座位资源配置。
基金项目
2022年国家级大学生创新创业训练计划项目经费资助(202210760007)。
NOTES
*第一作者。
#通讯作者。