APP下载

实验室信息化管理中教室预约小程序的设计与实现

2024-09-04陈少龙张凡

电脑知识与技术 2024年20期

关键词:实验室信息化管理;教室预约;微信小程序

多媒体教室作为当前高等教育教学的重要场所[1],以湖北理工学院为例,全校的教室均已升级为多媒体教室。在非教学时段,学生可利用这些教室开展学生团体活动或班级组织的活动,既方便了教师的教学工作,也极大地丰富了学生的校园生活[2]。然而,在多媒体教室的管理过程中,存在以下问题:1) 空置浪费现象严重;2) 师生预约教室流程复杂[3];3) 纸质版材料的管理和统计不便[4]。针对这些问题,本文拟开发一款系统,师生可以在线完成多媒体教室的信息查询、教室预约等操作,管理人员则进行线上审核,旨在提升师生在预约和使用多媒体教室时的体验,同时减轻管理人员在教室预约工作上的负担。

1 需求分析

在系统需求分析阶段,开发者须了解用户的详细需求、项目的可靠性等,以明确系统的主要功能[5]。目前,需求分析主要从问卷调研与分析、国内外参考文献分析和技术可行性分析3个方面展开。

1.1 问卷调研

根据系统需求分析要求设计问卷,内容主要涉及调研者身份、开展班级活动方式、教室预约系统有无必要、系统涉及功能等,共下发问卷198份,回收181份,有效问卷181份。调研者通过对问卷内容进行整理、录入和分析,其中对人员身份、教室预约系统必要性及小程序的占比情况进行了分析,结果如表1所示。

绝大部分调研者支持开发教室预约系统,但仍有少部分调研者对教室预约系统仍持怀疑态度,认为会存在系统信息更新不确定、系统后期维护、操作过程麻烦等问题。

1.2 国内外相关研究

在知网中按照关键字“教室预约”进行搜索,共检索出32篇相关期刊论文,其中国内期刊30篇,国外期刊2篇。对32篇论文从预约内容、实现技术、发表时间等方面对论文进行分析,内容如表2所示。

随着时间的推移和技术的发展,实现教室预约的技术越来越多样化,从网页Web发展到手机App、微信小程序、微信公众号等,系统操作越来越简便,对使用者越来越友好。

1.3 技术可行性

根据问卷调研和国内外参考文献情况进行技术可行性分析,目前主要对Web网页、App和小程序3种技术展开调研,内容主要包括依托设备、占用内容、开发语言、代码难易程度等方面。

基于上述技术调研结合问卷调研、国内外参考文献情况,本文将依托小程序技术实现教室预约系统。

2 系统设计

2.1 总体架构

系统总体架构设计包括前端、后端两方面。前端开发采用微信小程序,后端开发包括中间层和数据库层两方面,主要采用Express搭建服务器,通过域名解析方式,使前端和后端进行数据访问,数据库采用MySQL。具体框架结构如图1所示。

2.2 功能模块

系统功能设计主要包括四大功能模块和管理员操作模块。四大功能模块包括教室查询、教室预约、预约进度和我的信息等功能,管理员操作模块包括课表导入、预约审核、预约修改和个人信息审核等功能,其中,将教室预约设置为首页。具体如图2所示。

2.3 数据库模块

根据功能模块图,本文详细设计了系统数据库,绘制出系统E-R图,如图3所示。图中长方形表示实体,椭圆形表示实体属性,菱形表示实体与实体之间的关系。系统涉及4个实体,分别为用户、教室、课程、学期,其中实体与实体之间的关系分别为用户预约教室、课程占用教室、课程所在学期。

3 机制研究

教室预约系统在教室预约、预约审核等功能上融入了机制算法,用于教室预约推荐、缩短审核时间,从而帮助师生预约合适的多媒体教室、减轻管理员审核工作量,增强用户体验感,提升工作效率。

3.1 预约机制

在系统中融入受欢迎的预约机制,用以帮助师生获取合适的多媒体教室。在数据库设计中增加一张教室预约统计表,记录各教室不同年份和学期预约完成次数。用户在教室查询页面选择日期和教室信息,呈现该日期下教室占用情况及上一学期教室预约总次数,方便用户了解教室的受欢迎程度。

某教室上一学期受欢迎程度计算公式如下:

3.2 审核机制

系统对不同用户提交的同一时段预约信息,即不同用户预约同一教室的时间段重合或者相交,系统将融入预约优先级机制,即根据不同用户提交的占用时长、提交时间、重要程度进行预约优先级计算,然后将最大优先级用户信息呈现给系统管理员审核,其余用户预约失败。计算优先级过程如下:

4 系统实现

前端采用微信开发者工具,后端则利用Vscode开发工具搭建Express整体框架,并采用MySQL构建数据库。配置域名服务器对服务器IP进行域名解析,作为前端和后端数据交互的桥梁。

教室预约作为系统首页,底部tab栏用于系统功能切换,包括教室查询、教室预约、进度查询和个人信息等页面的切换。系统在首页设置了核验用户是否在数据库中存在的功能。若用户已完成注册并写入数据库中,则从数据库中获取个人信息直接写入此页面的data中,同时可传递至其他页面,供其他页面调用此信息。若用户未注册,系统将直接提示用户完成注册,未完成注册的用户将无法使用系统的其他功能。

4.1 教室查询

系统的教室查询功能服务于教室预约功能,用户在此页面可查询教室的占用情况。在教室查询页面,用户需选择查询日期、教室楼栋、教室编号,并提交查询数据。在classroom_Inquiry.js页面的methods函数中调用classroomInquiry接口,Express后端封装的该接口将访问MySQL数据库,获取数据库中该教室在某一日期下占用的各时间段信息并返回。

在系统实现过程中,由于将时间段设置为时间字段类型不方便判断时间前后或交叉情况,因此将时间段设置为课程节次,完全对应上课时间,即设置时间段为数字型。例如,1表示时间段8:00—8:45,2表示8:55—9:40,以此类推。此设置方便系统存储和读取,后端将数字型时间段返回后,前端页面进行解析呈现。

4.2 教室预约

教室预约页面是系统首页,此页面由一个表单组成,涉及填写的文本框有预约日期、预约开始时间(节次)、预约结束时间(节次)、预约教室楼栋和教室编号、预约用途,预约重要等级,用户填写并提交上述预约文本信息后,在前端classroom_Appointment.js文件中采用post方式调用classroomAppointment接口,接口连接MySql数据库,将已提交的预约信息写入预约数据表中,预约状态设置为提交预约信息,并返回预约状态S = { c,-1,“预约已提交,进入初审阶段”}。

教室预约进度有六种状态,即S = { t,c,g,q,z,w },其中,t=提交教室预约,c=系统初审阶段,g=管理员审核阶段,q=个人申请取消预约阶段,z=正在使用阶段,w= 使用完成阶段。S的每个状态阶段都对应两个值{-1,1,0},-1表示由上一阶段直接跳转至下一阶段,未进行任何处理,1表示通过,即将进入下一阶段,0表示未通过,不能进入下一阶段。每个阶段都设置状态说明属性,若状态值为0,则系统将给出不通过理由,方便管理员和用户查看。

在预约进度页面,用户可查看个人提交的预约申请根据预约申请ID获取详细预约信息,在详细预约信息页面,用户可根据自身需求取消此预约,取消完成后预约状态返回S = { q,1,"个人申请取消预约"}。

4.3 个人信息

个人信息页面提供用户注册、登录和查看个人信息等功能,用户进入小程序首页,在onLoad函数中判断用户是否在个人信息表中存在,若存在,直接获取用户信息完成登录,若不存在,会在首页弹出未注册信息。用户在注册页面,提交姓名、性别、身份、联系方式,工号或学号、学院或部门、院系年级(学生填)、班主任姓名和班主任联系方式(学生填)。用户提交注册信息后,调用register接口,访问导入信息表核对用户信息,若一致,将用户信息写入个人信息表中,返回注册成功,若不一致,返回注册失败。

5 结束语

此款微信小程序在实现过程中融入了预约和审核机制,减轻了管理员在教室预约工作上的负担,并增强了用户体验感。后期将在教室预约完成后添加用户评价页面,用户可在此页面反映教室在预约和使用过程中存在的问题、小程序需要改进的地方,以便小程序后期的迭代更新,同时方便为用户推送最受欢迎的教室。