张昕,林洪芳
海军潜艇学院,山东 青岛 266199
随着信息技术的发展,如何利用信息化技术快速管理、配置和使用图书席位,实现图书馆席位预约系统高效、稳定运行成为目前高校信息化普及工程的重点方向[1]。
微信是众多手机应用中最突出的社交工具之一,不仅具有新媒体的特性和优势,还拥有广泛的用户基数。本文选用HBuilderX开发工具、LNMP系统架构,基于PHP语言、MySQL数据库关联接口实现前后端数据的调用;后台管理页面使用Bootstrap的UI框架进行设计,用户操作页面基于Uni-app框架实现,利用Uni-app社区提供的UI完成用户前端的设计,通过调用云函数及自编程序接口实现功能的开发。经过系统功能页面、业务流程测试,界面运行效果良好[2]。图书馆座位预约管理系统适用于任何一所拥有图书馆的高校。通过该系统的部署不仅可以实现书馆座位数字化管理,还可以极大的提升了图书馆座位的利用率[3]。
该系统对主要业务功能需求性较强,不需要设计多余的功能去映衬功能量的多少,能让用户清晰地进行座位的预约及取消等功能操作。一个标准的预约系统不仅需特定的功能,还需要特定的权限申请、认证才能进入系统。用户进入该系统后可以清晰的分辨出功能模块,根据需求对座位、时间选择,当选定座位后,座位会进入锁定状态,其他用户则无法对被锁定座位进行操作。座位可以进行取消、签到、暂离、暂离签到、签退等操作。与之相对应的管理员用户,也可以对本项目中所有权限的数据进行管理、维护。
本系统所拥有的如下。
(1)超级管理员对使用规则、阅览室信息、通知公告、预注册信息、预约信息、信用信息、用户信息、反馈信息、临时用户信息的管理等模块;
(2)管理员对通知公告、预注册信息、预约信息、信用信息、用户信息、反馈信息、临时用户信息管理等模块;
(3)学生用户信息管理、座位选择、选座信息查询、违约信息查询、通知公告查询、使用规则查询、反馈信息等模块。
1.2.1 扩展性
由于各个高校的图书馆座位数量不同,座位预约管理系统的需求也有所差异,因此需要在扩展本项目初期就做好地理位置的调研,获取楼层平面图。通过获取的平面图进行座位的编排,将编排好的座位后统一部署,即可完成项目的拓展。
1.2.2 灵活性
基于环境、空间限制,不仅各高校的图书馆空间不同,而且高校图书馆内部的楼层与楼层之间的布置格局也不尽相同。因此在设计数据库之初,就要对数据表的结构进行合理的规划,功能模块具有较高的兼容性,可以嵌套多个子模块,将模块化的设计理念融入到整个设计开发中。
1.2.3 稳定性
校方与学生用户都希望预约平台在使用时能保证服务器的稳定性,网络延迟、无法连接、数据丢失等这类问题均为服务器不稳定的展现形式。首先设备供应商要能保障服务器的正常使用,在出现问题时能随时联系维护方及时进行服务器的维护,避免服务器主机的宕机或异常;其次,通过上线前系统测试保障程序安全、稳定;最后,数据库的稳定和可靠,需要定期检查导出的logs文件,发现错误信息可及时处理。
1.2.4 易用性
系统的易用性对于管理员来说,主要体现管理员专业知识、素养积累。对于学生来说,程序设计页面的简洁、清晰可以更加直观的满足用户的使用,实现操作页面可视化明了、操作易学、上手简单等效果,当操作页面做到完全可视化后不需要学校的统一培训即可通过清晰的页面掌握系统的操作流程[4]。
该系统在用户登录上做了相应的判断,因为是面向在校大学生的系统,因此在注册的时候需要进行相关的认证,认证通过后才能注册。同时在后续的登录中,由于本地缓存保存了相关的信息,因此不需要重复输入账号密码即可实现快速登录,若因为违约账号被冻结,则无法登录。
该系统的主要功能是学生进行座位预约,座位预约的流程为进入选座页面选择合适的座位及入座时间,再确认选座信息后,将会进入到下一个流程。提前取消预约,未按时到场签到则算违约,按时签到则进入下一流程[5]。中途暂离用户需要进行暂离操作,暂离归来后点击归来按键,否则违约一次。脱离学习状态后按时点击签退,否则也算违约或者时长已达到系统预定将会自动释放座位。
系统架构是基于Uni-app、B/S、LNMP三个架构结合协调设计。服务器采用Centos7.2系统,利用宝塔面板搭建起LNMP系统架构,将服务器与前端分别放置于两个不同系统,保证系统稳定性。使用Uni进行应用页面的编辑,优先选择开源的封装接口进行调用。在后端完成部署后,利用Nginx的反向代理技术及Redis的负载均衡技术为系统提供稳定的服务,系统架构图如图1所示。
图1 系统架构图
座位预约模块是对各个校区图书馆的座位空闲、预定和占用情况进行查询。针对不同的读者需要,可以对根据不同的阅览室进行查询。座位管理模块是用户对座位进行预约后,根据自己的实时需求对座位的状态进行调整变更的一个功能模块[6]。
个人资料模块是用户对自身各个信息进行查询修改的模块,其中可以分为座位预约记录的查询、违约记录查询、个人信息查询、修改个人信息等功能。
学生信息管理模块是由超级管理员对学生的预注册信息进行管理,预注册信息进入数据库后,用户才能进行账号的注册。管理员则负责对注册后的信息进行管理,一些信息的修改及信用的管理都属于模块的功能。
用户进入系统没有登录历史留下的本地缓存的情况下,进入系统页面是登录页面,需要用户输入账号密码进行认证才能进入系统。从数据库中查找学号,若数据库中有此学号,会回传使用者学号所对应的密码,并对照此密码与输入密码是否相符。如果密码是正确的,使用者将会成功的登入系统。如果密码不符合,或是数据库中没有这个使用者的学号,会传回一条提示,让使用者检查自己的学号和密码后再次登入。
在进入系统后,首页会读取预约记录将最近的预约记录以列表的形式展示,该列表自动读取用户在数据库中的预约记录,若有预约记录则将预约记录罗列出来,若没有预约记录则显示为无。
用户需要查看个人信息及修改部分个人信息时,点击个人资料进入相应页面,该页面进入后系统会通过用户的唯一标识进行查询,将查询结果一一展示出来,且用户需要更改部分信息时,可以直接点击对数据进行修改。
当用户有座位使用需求时,点击进入“我要预约”功能页面,进入该功能页面后可先选择对应校区;再选择相应的阅览室和入座时间,在选座时间上做了相应的判断,择时间不能超出系统规定的时间,否则座位会被释放。
用户在完成预约功能后,需要在预约时间之前来到座位进行扫码签到,未及时取消座位的预约且未按时来到座位进行扫码签到的则会被记违约一次,且座位会被释放。点击签到后,数据库中status从0变为1,显示出来就是已签到状态,点击暂离后status变为2,系统开始计算时间,若45min内未点击“已回来”按键,则会判定违约一次;若点击按键,status状态则会变为1。用户结束学习状态点击签退后,status会变为3,随后座位将释放,座位变为重新可选择状态,该条预约记录也因此而结束流程,变为一条不可修改的数据随后可从预约记录中查询到该条记录。
该页面支持留言反馈及在线反馈两种反馈方式。留言反馈即用户输入反馈信息,该条数据保存至zuowei_fankui表中,管理员可以通过反馈管理进行查看。用户点击在线反馈后,通过contact接口弹出类似微信聊天的窗口页面来实现在线反馈。
管理员通过输入对应地址进入后台管理页面,随后输入账号密码验证码进行身份验证,身份验证通过后进入后台系统,认证错误则无法进入系统。
用户预约管理页面设定为,管理员可通过该页面对用户预约的信息进行查阅,在必要的时候可以通过“取消”按键,帮用户取消所预定的座位。
管理员可以查询用户的违约记录,进入该页面首先通过查询所有的违约信息,将所有信息罗列出来,其次可以通过输入学号对单个用户的违约信息进行查询。
进入页面后首先进行全体学生的用户信息查询,其次可以根据需求,输入学号或姓名对目标进行查询。该页面实现的功能有:修改学生的违约信息、重置用户密码。
黑盒测试则与功能检测相对应,通过观测法等手段来检测该系统所实现的功能模块测试,以验证其与实际的系统计划与设计要求相符。本文按照预定操作流程分别对用户预约座位功能进行功能测试,页面展示信息完整、模块功能均符合预计结果,具体测试结果和流程如表1所示。
表1 系统测试
本文选用HBuilderX,使用PHP编写与MySQL关联的接口实现后端数据的调用,后台管理页面使用Bootstrap的UI框架进行设计,用户操作页面基于Uni-app框架实现,利用Uni-app社区提供的UI完成用户前端的设计,调用云函数及自写接口来对功能进行实现。经过系统功能页面和业务流程测试,效果良好,运行正常。