云计算百科
云计算领域专业知识百科平台

基于微信小程序的校园自习室预约系统---附源码78996

摘要

  校园学习空间管理领域存在着资源分配效率低、用户使用体验差、管理流程碎片化等各方面的问题。传统的手工登记或者简单的电子化管理方式已经不能满足现在个性化、精细化的运营管理需要,在高峰时段,座位资源被占用的同时又出现了排队的现象,说明现有的管理模式已经落后了。学习空间的数字化治理需要一种可以整合资源信息、改善预约程序、约束用户的轻量级解决办法。

  自习室预约系统的价值在高校信息化建设中越来越明显。创建一个以微信小程序为基础的自习室预约系统,可以很好地把学生用户和自习室资源联系起来。系统用移动端入口来降低使用的门槛,学生可以随时随地获得座位的状态信息,并且可以线上进行座位的预约,在线签到和签退。管理端有数据看板和流程控制手段,对预约、签到、违约等各方面加以统一掌控。该种模式把分散的管理行为变成一个完整的循环,削减了由于人工干涉而产生的信息滞后和操作失误,使得资源调配由依靠个人经验来决定变为了依照数据来进行决策。

  系统把自习室类型,时段规则,用户信息,预约记录,违约情况这些数据要素做成结构化的存储和剖析工作。利用角色权限来限定管理员和学生的操作范围,在保证业务流程严密的同时又不产生冲突。预约数据的积累给座位使用率分析和高峰时段预估赋予了根基,有利于管理者及时作出开放策略上的改变。本系统实施目的在于促使校园公共服务由被动服务转向主动服务,给创建智慧校园环境赋予一种可拓展的基本模块。

关键词:微信小程序;自习室预约;Spring Boot;MySQL;签到管理

Abstract

  Campus Study Space Management in the field faces problems like unreasonable utilisation of resources, weak users' sense of convenience, etc., due to a lackluster integration across different management links. The traditional approach of manual registration, simple electronic management cannot satisfy people's needs for more personalised reservation services and fine operation requirements currently in place. During high-traffic times, there are always some empty seats alongside groups of students standing at attention; thus, it is evident that the shortcomings in managing resources have become increasingly prominent due to delays in response speed and inefficiency caused by slow implementation. A low-weighted, comprehensive digital Governance model should be established to achieve integrated management of resources, optimised reservation process design and users' behavioural norms standardisation urgently required today.

  A study-room reservation system, which brings tangible benefits to people's daily lives and work through technological means and applications in information construction, has become an important part of university informatisation development at present. Based on the Wechat Mini-Program technology to build a study room reservation Platform for students, so as to better utilise and manage available spaces in time. Through setting up a mobile function that reduces usage barriers for students; In addition to being able to display information on seats or bays of vehicles as needed, users can also book through this platform after registering their own preferences. On the other hand, the manager offers a comprehensive data display screen and process-control modules to ensure overall supervision over reservation information, check-in details, and violation records. This model integrates scattered management actions into a loop for processing to reduce the impact of information delay and operational error due to personnel on such matters; It shifts resource allocation from based experience judgments in humans towards Data-Driven decisions driven by it.

  Structure and analyse the following basic data in terms of key elements: Study room Type, Time Slot Rule, User Information, Reservation Record, Violation Log. Bysetting roles and permissions, only administrative personnel or students with corresponding identities can perform operations such as adding new courses in the course management system to ensure process discipline; Other people are prohibited from entering this area. Reserve information serves as the basis for studying the occupancy rate and determining high-demand time points of venues, which helps business decisions at all levels to make timely plans when dealing with capacity fluctuations or holiday loads. This system's Implementation is intended to shift campus public Services from passive Responses to Active Services and build an expanding basis for constructing a Smart Campus Environment.

Key words:WeChat Mini Program; Study Room Reservation; Spring Boot; MySQL; Check-in Management

第一章 绪论

1.1 研究背景与意义

  传统的校园自习室管理方式正处在严重的危机之中,在高校扩招、学习需求多元化的大环境下,人工登记和纸质表格的记录方法已经无法满足要求了。学生需要花费大量的时间去寻找空闲的座位,管理者也无法实时地了解到各个习室的使用情况,造成资源的闲置和排队拥堵的情况一直存在[1]。这样一种低效的粗放式管理不但会降低学生的上课体验,还会造成学校的空间资源被隐性占用。面对这种情况,依靠移动互联网技术重新塑造自习室管理流程,就成了改善校园服务质量的必然走向。

  以微信小程序为基础搭建起校园自习室预约系统,可以将分散的管理行为集中起来形成一个高效的、透明的闭环。系统给学生用户赋予了自主查询、在线预约、签到签退的功能,把原本依靠人工协调的繁杂工作转变成了手机端标准化的操作,大大提高了资源获得的便利程度。对管理者来说,系统给角色权限、自习室信息、时段规则、预约记录、签到状态和违约记录等各个方面提供全面的数字化管理手段。这就使管理决策由经验决定转变为数据决定,可以准确地分析出座位的使用情况以及用户的活动方式[2]。该系统应用既改善了校园内部学习资源分配状况,又创建起预约、利用、评价、约束的规范化程序,给高校其它公共服务领域信息化改造给予了可供参照的范例,促使校园总体治理水平向现代化迈进。

1.2 国内外研究现状

  国内对于自习室预约系统的探究开始得较晚,不过近些年来伴随着高校信息化创建的推进,有关尝试变得愈加繁杂,研究重点渐渐由单纯地达成管理功能实现转变成注重用户体验改善和资源智能调配。早期的研究大多集中在以Web为基础的系统开发上,使用SSH或者SSM框架来完成基本的数据增删改查的功能。伴随着移动互联网的发展,研究重点也从桌面端转向了移动端,以微信小程序为代表的轻量级前端技术因其“即用即走”、“无须安装”的特点被广泛使用,而前后端分离架构也被应用于预约系统的开发中。目前的研究已经不再只是对系统的完整性的关注,而更多地采用数据挖掘的方法来分析用户的消费行为,并以此为基础建立一个可以进行预测的座位分配和违约预警模型。

  陈英豪针对基于混合交通流的出行预约系统建模方法进行了详细的分析,在建立的预约调度模型上可以很好地解决高并发情况下出现的资源冲突问题,为以后系统的预约算法设计提供一定的借鉴意义[3]。杨赟认为共享自习室的服务营销策略要重视用户的分层以及精细化的经营,因此本系统的用户界面中也加入了根据历史行为进行个性化的首页展示模块,从而提高用户黏性[4]。郑益杰就共享自习室营销策略展开研究的时候,发现清楚明了的规则以及即时回馈会直接影响到用户的满意程度,由此可知,该系统加强了意见反馈管理模块的设计工作,创建起一套完整的违约纪录及惩罚办法流程,从而保证良好的使用权环境[5]。黄奔所设计的以可信度匹配为基础的心理咨询预约系统,主要目的是建立用户和资源之间的精确匹配逻辑,给本系统处理自习室类型、时段以及学生偏好匹配提供了一种算法思路,在预约规则的设计上也加入了时段类型和座位配置的相关性[6]。刘一澎构建起来的以微信小程序为依托的专家预约系统,很好地体现了小程序端同后端服务之间数据交互的方式,在前端界面改良以及后端API规划方面所取得的经验,直接引领着本项目微信小程序前端和Spring Boot后端之间高效且稳定的交流架构创建。

  从以上研究可知,国内学者对于预约系统的探究已经涉及了多个方面,在移动端的应用、用户的行为分析、资源的匹配算法等都有所涉猎。但是现有的研究大多只关注到某个环节上,缺少把用户前端操作、管理后台控制、数据分析决策和违规惩戒机制综合起来的系统性设计方案[7]。本系统正是针对这个空白,把自习室信息管理、时段安排、预约审核、签到签退追踪、违约处置这些模块整合成一个完整的业务闭环,依靠数据在各个模块之间自由流动来达成自习室资源的全流程精细化控制,是以往研究成果功能的整合和延伸。

  国外对于预约系统的探究开始得比国内要早一些,研究范围更加广泛,既重视系统功能的实际应用,又注重利用运筹学、统计学以及机器学习等手段来开展预约流程的优化建模工作。研究热点包括了医疗门诊、港口运输、共享空间等等各个方面的预约调度策略,主要目的就是解决不确定的需求下如何进行资源的动态分配以及提高效率的问题。学者们普遍认为高效预约系统不能只是信息的电子化登记平台,而应该是一个可以依靠历史数据、实时状态做出智能决策的系统。目前的研究趋势是逐渐由静态规则驱动变为动态的数据驱动,很多研究试图开发出可以应对非平稳到达过程,并且具备自我学习能力的预约调度算法。

  Chatterjee等提出了一个适合于有异质客户、非平稳到达过程的预约系统优化调度的方法,用精细的数学模型来最小化系统空闲时间和客户的等待时间[8]。该研究给本系统在设计预约时段的时候,考虑不同的日期、不同时段学生到达模式的不同留有数据接口。Bouyahia等人提出一种新的集装箱码头卡车预约系统,把多方面数据源结合起来,从而达到对码头闸口资源动态分配的目的,大大减少卡车等候时间[9]。其主要思想就是把物理空间资源和时间资源结合起来进行优化,这与本文系统中将自习室座位和预约时段进行组合管理的思想不谋而合。Oleskovicz等人的门诊预约系统中使用了新的启发式算法来对患者进行分组,并按照患者的病情严重程度和预计的服务时间来进行预约时段的分配,从而提高医疗资源的利用率以及公平性[10]。根据用户的属性来划分优先级思想,可以应用到本系统座位分配策略当中,给有特殊考试需求的学生赋予优先级预约权限。Damith等人的案例研究显示,在俄克拉荷马州立大学图书馆的学习室预约系统中,良好的用户体验界面可以提高用户对系统的自我操作能力[11]。这就决定了本系统的微信小程序前端设计原则就是用简洁的视觉引导、简单的操作步骤来降低用户的使用难度。Silva等人设计出一种基于机器学习的方法来灵活地安排卡车预约,用历史数据预测未来的需要量,然后根据需求量的变化情况来改变可以被预约的时间段数目以及容量[12]。该种前沿思想给本系统今后的发展指明了道路,即将收集来的预约和签到数据加以整理后,进而创建起一个能够预估自习室使用高峰期的预测模型,并且以此为基础达成对座位资源提前规划以及动态释放的目的。

  国外的研究对于预约系统智能化、动态优化等方向走在前面,在方法论上较为严谨,并且具有很强的创新性,给本系统的开发给予了十分关键的理论参考。但是大多数研究都是在特定行业背景下、使用复杂的数学模型基础上进行的,直接应用到校园自习室场景中会遇到适配性问题。本系统在吸收其“数据驱动决策”和“资源-时间联合优化”的主要思想基础上,结合了高校学生行为规律性和自习室管理具体要求的特点,创建出一套具有智能内核并且符合校园实际管理流程的应用系统。特别是对于违约记录和处罚机制的闭环设计,在本系统中把用户的交易数据反向输入到预约权限控制当中,从而实现系统的自我调节、自我约束,这也是国外先进理念在具体情境下得以落实并得到加深的一种表现形式。

1.3 主要研究内容

  本文主要研究设计并实现一个以微信小程序为平台的校园自习室预约系统,目的是为了改善高校自习室资源管理中出现的低效和信息不对称的问题。研究内容先是从剖析现有的管理模式的痛点入手,对学生的用户和系统的管理员两种角色的实际需求进行详细的调查和分析,确定系统需要包含的首页推荐、自习室信息浏览、预约、签到、签退、后台角色、自习室、时间段、预约、签到、签退、违约记录等主要功能。在此基础上,研究工作重点转向了系统的整体设计,选择Spring Boot作为后端服务框架来完成业务逻辑和数据接口的工作,用微信小程序做为前端交互平台给用户提供方便的移动端入口,使用MySQL数据库对数据进行高效的存储和管理。接着就是详细的设计工作,即分层架构的搭建、前后端的数据交互规范的确定、主要业务流程的逻辑分析以及数据库概念和逻辑结构的设计。最后经过编码和系统的测试环节之后,得到一个功能齐全、运行良好的原型系统,并且完成相关的技术文档的编写工作,证明提出的方法对优化资源分配、提高管理效率有可行性的研究结果。整个过程按照软件工程规范进行,保证研究系统的性以及研究成果的可靠性。

第二章 相关技术介绍

2.1 Spring Boot框架

  Spring Boot是由Pivotal团队所创建的新一代框架,它的主要目的就是简化新Spring应用从开始到结束的整个搭建和开发过程。该框架采用一定的配置方式,使开发人员不用去编写样板式的配置文件,把更多的精力放在了业务逻辑的实现上。它把很多常用的第三方库的配置集成起来,使得这些库可以不需要任何设置就被Spring Boot应用所使用[13]。自动配置使得Java Web项目开发和部署变得非常高效,使开发者可以迅速创建出独立运行的、生产环境下的应用。Spring Boot并不是要取代Spring框架,而是在Spring框架的基础上进行结合,用默认配置简化了Spring技术的使用难度,并且内嵌的Servlet容器使应用打包和分发更加方便。

  本系统后端采用的是Spring Boot框架来搭建起来,对微信小程序前端发出的各种请求进行处理,然后执行相应业务逻辑。当学生用户在小程序端提交预约申请的时候,请求数据采用HTTP协议传送到SpringBoot控制器层,控制器解析请求参数之后,调用事先定义好的服务层组件来执行业务操作,比如对本时间段内的座位是否可以预订进行检查,查看用户是否有未完结的违约行为等。服务层把逻辑判断和数据处理之后,就借助数据访问层同MySQL数据库展开交流,从而达成数据的保存工作[14]。框架给出的依赖注入以及面向切面编程的特点,使系统里的日志记载,权限认证,事务安排这些通用的功能同核心业务逻辑分离开来,从而保证系统的架构明晰且代码易于维持。经过全部的处理过程之后,处理的结果就被以JSON的形式传送给微信小程序前端进行展示。

2.2 微信小程序开发框架

  微信小程序开发框架是建立在微信之上的一个完整的解决方案,它的结构是由WXML、WXSS、JavaScript和JSON配置文件组成的。WXML是对页面结构的描述,和网页开发中的HTML类似,但是提供了许多微信自定义的组件,如视图容器、表单组件、媒体组件等,使开发者可以很快地创建出符合微信风格的用户界面。WXSS负责页面的样式表现,在普通的CSS基础上进行扩展,并且对移动端屏幕尺寸适应性做相应的调整。JavaScript语言用来处理页面的逻辑交互,利用微信提供的一系列丰富的API,开发者可以很容易地得到用户的个人信息、发起网络请求、调用设备的功能等等[15]。整个框架使用类似Vue或者React的响应式数据绑定方式,当底层数据发生改变的时候,视图层可以自行更新,从而大大降低界面开发的难度。

  微信小程序是本系统中直接面对学生用户进行交互的接口,主要负责信息展示和操作指令的收集工作。首页推荐模块用到小程序框架的组件化特性来实现自习室卡片和校园资讯列表这样的元素是重复使用的,并且可以保持一致。自习室信息展示页面用WXML和WXSS构建出清晰的布局,显示自习室图片、类型、配套设施以及预约规则[16]。用户进行预约操作的时候,小程序前端利用JavaScript执行wx.request方法,把用户选定的日期、时间段以及座位信息转成JSON格式的数据包,然后异步发往部署在云服务器上的SpringBoot后端。后端返回操作结果时触发前端页面数据更新,预约成功之后界面座位状态从“可预约”变成“已占用”。框架给出的本地缓存功能,也被用作保存用户登录状况和基本信息的地方,缩减了同服务器间的频繁交流次数,改善了应用的反应速度以及用户体验的顺畅程度。

2.3 MySQL数据库技术

  MySQL是广泛使用的开源的关系型数据库管理系统,由于具有高性能、高可靠性和良好的跨平台性等特点而被使用。关系型数据库是以表格形式对数据进行组织的,每一张表是由行、列组成的,行表示一个具体的记录,列定义了一个记录的所有属性。表与表之间用主键和外键来建立联系,就能完全地反映现实世界中复杂的业务关系。MySQL支持标准的SQL结构查询语言,用SQL语句可以对数据进行增删改查[17]。另外它还有事务处理、视图、存储过程、触发器这些高级特性,可以满足企业级应用对于数据一致性和业务逻辑封装的要求。JavaWeb项目当中,MySQL常常被当作数据持久化层,并且同后端框架一起工作,从而形成一个稳定的高效应用系统。

  本系统使用MySQL做为主要的数据库来存储所有的业务运行相关数据。系统运行时产生出来的各种结构化数据,例如学生用户的个人信息、自习室的具体情况、各个时间段的预约情况、用户在各个时间点上的签到签退时间戳、违约记录等等,都被整理成有条理的二维表形式来保存。预约记录表用外键字段来关联学生用户表和自习室信息表,很好地体现了“谁预约了哪一个自习室”的业务关系[18]。管理员在后台做数据分析的时候,系统就会对大量的预约信息展开复杂的联表查询和聚合运算,从中找出座位利用率、高峰期分布这些重要的指标来给管理决策给予数据支持。MySQL良好的并发控制机制保证了在高峰期预约时间段内,多个用户同时进行操作的时候不会出现数据不一致或者丢失的情况发生,从而防止出现超卖等数据冲突现象。稳定的事务处理功能保证了预约、签到、违约信息等一系列相关联的操作是成功的还是失败,不会出现部分交易被撤销而另一部分正常的情形发生,从而保持业务过程的一致性。

2.4 MVC模式

  MVC是模型、视图、控制器模式,它是一种用来设计交互式系统的软件架构思想。将应用程序的输入、处理和输出过程,强制性地分成三部分,每一部分都有自己的功能,并且相互之间没有联系。模型是对应用程序的数据结构以及与其有关的业务逻辑进行封装,它直接和数据库打交道,完成数据的存取工作,并且对外部提供查询、修改数据状态的方法。视图是数据的呈现者以及用户的接口,它从模型中得到数据并以HTML页面或者JSON数据的方式显示出来。控制器是用户发出的请求被接收之后,解析请求参数、调用对应的模型组件进行业务逻辑处理后,再决定采用哪个视图来返回给客户端的一种机制。该种模式使应用程序结构更清晰,各部分之间联系变少,有利于开发小组并行工作,并且在以后还可以进行修改和扩充。

  本系统整体架构的设计以MVC模式为主导思想,用MVC模式来指导后端服务的分层构造。部署到服务器端的SpringBoot应用把控制层、服务层和数据访问层分得清楚。控制器层充当了控制器的角色,对外提供RESTful接口来接受微信小程序发起的HTTP请求。收到预约请求的时候,控制器不对请求数据进行任何业务处理,而是直接将它交给服务层。服务层是对系统核心业务逻辑的封装,也就是MVC模式的模型部分,它会执行验证预约规则是否合法、计算座位占用情况等操作,并且会和MySQL数据库的数据访问层接口发生联系。数据访问层是对数据库表进行增删改查操作的一层封装,它把模型和持久化存储直接连接起来。视图层由微信小程序前端完成,它接收后端返回的JSON数据之后,在自己的WXML和WXSS文件中把数据转换成可视化的用户界面。用户在小程序上每一个动作都会向后端控制器发出一个请求,然后开始一个新的MVC循环,使整个系统的业务流程得以继续进行。

第三章 系统分析

3.1 功能需求分析

3.1.1 学生用户角色功能需求

  学生用户在系统中可以执行首页推荐查看、自习室信息浏览、校园资讯查阅、自习室预约、个人签到信息查询以及个人签退信息查询等操作。

image

图3-1学生用户用例图

3.1.2 管理员角色功能需求

  管理员在系统中负责执行数据分析、角色权限分配、自习室信息管理、用户意见反馈处理、时段规则设定、预约订单审核、签到状态监控、签退流程管理、违约记录认定以及系统基础参数配置。

image

图3-2管理员用例图

3.2 可行性分析

3.2.1 技术可行性分析

  本系统使用Browser/Server架构来创建,所有的业务逻辑和数据处理都在后台服务器上完成。后端采用Spring Boot为主体框架,具有自动配置、起步依赖等特点,可以快速搭建出稳定的、独立的Java Web应用。前端使用微信小程序开发框架,依靠它所包含的各种组件以及API来完成用户的界面搭建和交互逻辑。MySQL属于关系型数据库,可以安全保存学生的用户信息、自习室情况以及预约记录这些有组织的数据。这三个技术都是目前较为成熟的方案,社区活跃度高,资料丰富,从技术角度可以满足系统对于稳定、快速和一致性的要求,并没有出现不可克服的技术障碍。

3.2.2 操作可行性分析

  系统操作流程的设计考虑到各个方面的使用者,包括不同层次的使用者和不同的认知程度的使用者。对学生的用户来说,微信小程序免安装、即用即走的特点大大降低了使用门槛,界面布局清楚,功能入口明显,从浏览自习室、提交预约到完成签到签退,整个操作过程简单明了。系统管理员的管理后台功能模块是根据系统的角色管理、自习室信息、预约审核、违约处理等功能来划分的,在日常管理上比较符合习惯,数据展示方式也是以表格和图表的形式为主,并且方便查看全局情况。明确的界面引导、统一的操作程序,使各种用户不需要专门的学习就可以使用系统。

3.2.3 经济可行性分析

  系统的开发与运行成本均处于可控范围之内。开发阶段主要使用开源软件和技术框架,比如SpringBoot、MySQL、微信开发者工具等,不需要支付高额的商业软件授权费。硬件上,系统在开发和测试阶段可以运行在普通的个人计算机上,部署上线只需要租用一台配置比较低的云服务器就可以满足初期使用的需要,后期根据用户的数量以及数据的增长情况来实现弹性扩容。系统上线运行之后,用自动化的管理代替人工的登记和统计,可以大大缩减管理人员的工作时间,削减由于信息不通畅造成的座位资源浪费,从长远角度看,它所带来的管理效能改善以及资源调配红利,会远远超过初期所付出的成本。

第四章 系统设计

4.1 系统架构设计

  系统整体使用前后端分离的方式搭建起来。前端部分运行在微信小程序中,和用户直接交互,接收用户的操作命令并把数据以可视化的形式展示出来。后端使用的是Spring Boot框架搭建的独立应用服务器,在这里主要进行业务逻辑运算、数据持久化和对外提供统一的数据接口等工作。前后端用基于HTTP协议的RESTful API来交流,所有的交互数据都是以JSON格式的形式封装起来。这样就形成了一个前端界面更新和后端服务逻辑调整各自独立、互相不影响的状态。数据持久层使用MySQL数据库来完成所有的结构化业务数据的存储和管理,即用户信息、自习室档案、预约记录、签到签退时间戳以及违约情况等。系统整体采用分层的设计思想,从上到下分为用户界面层、应用服务层和数据持久层,各层之间职责分明,接口清楚,一起保证了整个预约业务流程的正常运转。系统架构图如图4-1所示。

image

图4-1系统架构图

4.2 系统结构功能设计

  系统功能被划分成两个主要的模块,即学生用户端和管理员后端。学生用户端主要提供便捷的自习室使用服务,包括首页推荐、自习室信息浏览、校园资讯查阅、在线预约自习室、个人签到记录查询、个人签退记录查询等功能。管理后台端给系统管理员赋予全方位的运营管理工具,包含数据分析看板、用户角色和权限划分、自习室基本资料及座位安排、用户意见回馈处理、预约时段规则制订、全部预约申请的审核并追踪、用户签到与签退状况的监视、违规情形的记载及惩罚执行,还有系统级的参数设置与维持功能。该套功能结构可以形成从资源发布、用户预约、现场使用到最后的监管一个完整的业务流程,可以满足各个角色在各自的权限范围之内对系统进行操作和管理的要求。该系统功能结构如图4-2所示。

image

图4-2系统功能结构图

4.3 系统流程设计

4.3.1 自习室预约功能流程设计

  学生用户进入自习室列表页选择目标自习室后,系统加载该自习室的座位布局图与可用时段信息。用户点击具体座位并选定预约时段,前端将请求提交至后端进行可用性校验与临时锁定。后端校验通过后生成待支付或待确认的预约订单,并返回操作结果。用户在订单页确认预约信息后,最终提交预约请求。自习室预约流程图如图4-3所示。

image

图4-3自习室预约流程图

4.3.2 用户签到功能流程设计

  学生在预约时段开始前到达自习室,在微信小程序中进入个人预约记录页面,找到对应的待签到预约单。点击签到按钮,系统调用手机摄像头扫描自习室门口张贴的二维码。前端将扫描结果与当前用户、预约单信息一同发送至后端进行比对。后端核验二维码有效性、签到时间是否在允许范围内后,更新该预约单状态为已签到,并记录签到时间戳。用户签到流程图如图4-4所示。

image

图4-4用户签到流程图

4.4.1 概念模型设计

  设计校园自习室预约系统概念模型时要明确“学生用户”、“自习室信息”、“预约自习室”、“签到信息”、“签退信息”和“违约记录”这六个主要实体之间的复杂动态关系[19]。学生用户经过预约行为同自习室产生关联,从而形成预约自习室实体,该实体记载着预约时间、座位这些主要信息,它是联系用户和资源的纽带。预约成功之后,用户的签到、签退行为都会产生相应的签到信息和签退信息实体,两者一起组成了用户的一次完整的使用轨迹。当用户的活动违反了规定的时候,系统就会产生一个违约记录实体,它会和具体的操作者以及相应的自习室相联系,然后才能对用户的信用状况进行评定,并且可以对其权限做出限制[20]。另外时段信息作为一个独立的实体来定义可以预约的时间段,角色和权限管理实体用来支撑系统多用户的使用环境。采用实体和联系的抽象建模方式可以清楚、完整地表现系统所有的业务规则和数据约束,为后面逻辑模型的设计提供依据。全局E-R模型如图4-19所示。

image

图4-19系统E-R图

4.4.2 数据库逻辑设计

  数据库逻辑设计阶段的任务就是把概念模型阶段得到的E-R图转换成MySQL数据库支持的具体表结构。该种转变符合关系数据库的规范化思想,目的是缩减数据重复出现的情况,防止出现更新异常现象。按照前面设计好的实体以及它们之间的关系,将它们转换成多张二维表,并用主键、外键的方式来保持各个表之间的联系。预约自习室表里用学生用户ID做外键引用学生用户表的主键,从而准确地表达出哪个学生做了预约这个业务关系。根据字段实际含义来确定选用何种类型的、多长的字段,比如把学生姓名设成varchar(50)、预约时间设成datetime等以保证数据存取正确、节省空间。经过逻辑设计之后,系统数据结构就确定下来了,为后面编码工作打下了基础。

  学生用户表主要是用来存储注册学生的基本信息。主要包括学生用户id、学生姓名、学生性别、学生电话等字段。如表4-1所示。

表4-1学生用户表

序号字段名数据类型长度备注
1 学生用户id int 20 主键
2 学生姓名 varchar 64
3 学生性别 varchar 10
4 学生电话 varchar 20
5 审核状态 varchar 16
6 用户ID int 20 外键

  自习室信息表主要是用来存储各自习室的静态属性与规则。主要包括自习室信息id、自习室编号、自习室名称、自习室类型、营业时间等字段。如表4-2所示。

表4-2自习室信息表

序号字段名数据类型长度备注
1 自习室信息id int 20 主键
2 自习室编号 varchar 64
3 自习室名称 varchar 64
4 自习室类型 varchar 64
5 营业时间 varchar 64
6 座位总数 double 10
7 配套设施 text 65535
8 预约规则 text 65535

  预约自习室表主要是用来记录学生提交的每一次预约申请。主要包括预约自习室id、自习室编号、预约用户、学生姓名、预约时段等字段。如表4-3所示。

表4-3预约自习室表

序号字段名数据类型长度备注
1 预约自习室id int 20 主键
2 自习室编号 varchar 64
3 自习室名称 varchar 64
4 预约用户 int 20 外键
5 学生姓名 varchar 64
6 预约时段 varchar 64
7 审核状态 varchar 16

  签到信息表主要是用来存储学生到达自习室后的签到记录。主要包括签到信息id、自习室编号、预约用户、签到时间、签到备注等字段。如表4-4所示。

表4-4签到信息表

序号字段名数据类型长度备注
1 签到信息id int 20 主键
2 自习室编号 varchar 64
3 自习室名称 varchar 64
4 预约用户 int 20 外键
5 学生姓名 varchar 64
6 签到时间 datetime
7 签到备注 varchar 64

第五章 系统实现

5.1 学生用户角色功能实现

5.1.1 首页推荐

  首页推荐功能主要是对自习室信息与校园资讯进行个性化排序与展示。学生用户打开微信小程序后,系统根据其历史预约行为与浏览记录,动态调整自习室卡片的呈现顺序,将使用频率较高或与偏好类型匹配的自习室优先展示。页面顶部轮播区域滚动播放校园重要通知或活动海报,吸引学生关注。用户下拉页面可触发推荐内容的刷新操作,系统重新计算并向用户推送更新的信息列表。首页推荐界面如图5-1所示。

image

图5-1首页推荐界面

5.1.2 自习室信息

  自习室信息模块主要是对各自习室的详细资料进行集中展示。学生用户进入该模块后,系统以列表形式呈现所有可用自习室,每个列表项包含自习室名称、类型缩略图及当前空闲座位数概要。用户点击任一列表项,页面跳转至详情页,完整展示自习室的高清图片、具体位置、座位总数、配套设施清单以及详细的预约使用规则。详情页底部提供预约入口,用户可在此处直接发起对该自习室的预约操作。自习室信息界面如图5-2所示。

image

图5-2自习室信息界面

5.1.3 校园资讯

  校园资讯功能主要是对学校发布的各类通知、新闻与活动信息进行整合与推送。学生用户进入资讯页面,系统按发布时间倒序排列资讯条目,每条资讯显示标题、发布来源及发布日期。用户点击感兴趣的文章标题,页面跳转至详情视图,正文内容经过排版后清晰呈现,支持图片与文字混排。用户可在详情页面对资讯进行点赞操作,或通过微信的分享功能将资讯转发给好友或群聊。校园资讯界面如图5-3所示。

image

图5-3校园资讯界面

5.1.4 预约自习室

  预约自习室模块主要对学生的座位预约申请从提出到结束的过程进行引导和处理。用户选择好自习室之后就进入到预约页面,在预约页面上会显示该自习室的座位平面图,同时还会在每个时间段内展示出可预约的座位信息并用不同的颜色加以区分。用户在空座上点击并选择预约时间之后,系统马上给出这个操作是否成功的信息。确认选择之后,用户就会进入到信息确认页面,核对自习室名称、座位号、预约时间等没有错误的时候再点击提交按钮进行预约。系统接收到请求之后会修改座位的状态,在个人的预约列表上创建出一条新的待使用信息。预约自习室界面如图5-4所示。

image

图5-4预约自习室界面

5.1.5 签到信息

  签到信息功能主要是对用户的到场确认操作进行记录与管理。用户在预约时段开始后进入个人中心的预约记录列表,找到对应日期的预约单。点击该预约单上的签到按钮,系统调用手机摄像头扫描自习室门口张贴的二维码。扫描结果经系统后台核验通过后,页面上该预约单的状态自动更新为已签到,并记录精确的签到时间。用户可在签到信息列表中查看历史所有的签到记录,包括每次签到对应的自习室名称与具体时间点。签到信息界面如图5-5所示。

image

图5-5签到信息界面

5.1.6 签退信息

  签退信息功能主要是对用户结束使用离开自习室的操作进行引导与记录。学生在完成学习准备离开时,在个人中心的预约记录中找到当前正在使用的预约单。点击签退按钮,系统弹出确认离开的提示框,用户确认后,前端向后台发送签退请求。后台更新该预约单的状态为已完成,并记录签退时刻的时间戳。系统自动计算本次使用的总时长,并释放该座位资源供其他用户预约。用户可在签退信息列表中查阅历史签退记录。签退信息界面如图5-6所示。

image

图5-6签退信息界面

5.2 系统管理员角色功能实现

5.2.1 数据分析

  数据分析模块主要是对系统运行过程中产生的核心业务数据进行统计与可视化呈现。管理员登录后台后进入数据看板,系统以折线图形式展示近一周或一月的预约量变化趋势,以饼图形式呈现不同类型自习室的使用占比。页面还提供关键指标的数值卡片,包括当前总预约数、今日签到率、累计违约人次等。管理员可根据需要选择不同的时间维度进行数据筛选与查看,系统响应筛选条件实时更新图表与数据。数据分析界面如图5-7所示。

image

图5-7数据分析界面

5.2.2 角色管理

  角色管理功能主要是对系统中的用户组及其权限进行定义与分配。管理员进入角色列表页,系统展示所有已创建的角色名称、角色描述及成员数量。点击新增角色按钮,弹出信息录入表单,管理员填写角色名称并为其勾选相应的操作权限,如自习室管理权限、用户管理权限等。对于已有角色,管理员可编辑其权限范围,或将其禁用。列表中的每个角色项支持查看归属于该角色的所有用户列表,方便管理员进行权限核对。角色管理界面如图5-8所示。

image

图5-8角色管理界面

5.2.3 自习室信息管理

  自习室信息管理功能就是对系统内所有的自习室静态属性和动态状态进行维护。管理员登录管理页面,系统会用表格的形式显示每个教室的基本情况。点击新增自习室按钮进入信息填写表单,管理员依次输入自习室名称、编号、类型、座位数及详细配套设施说明。对已经存在的自习室管理员可以点击编辑按钮修改它的描述、图片或者预约规则。如果自习室因为装修等需要而关闭,则管理员可以将该自习室的状态设为维护中,这时该自习室就不会在学生小程序端出现。自习室信息管理界面如图5-9所示。

image

图5-9自习室信息管理界面

第六章 系统测试

6.1 测试目的

  系统测试的主要目的就是检验所实现的校园自习室预约系统是否符合最初的需要分析,以及它在真实的或者模拟的运行环境中表现如何。测试工作是找出系统中隐藏的逻辑错误和功能瑕疵,并且保证预约过程完整、各个模块之间数据传递准确的过程。模拟学生用户和管理员不同的操作过程来检测系统对于正常的预约、签到签退的处理方式,并且测试它是否能在出现非法输入、异常操作或者并发请求的时候保持稳定可靠[21]。测试的最终目的就是交付一个业务规则严密、交互响应可靠、可以满足校园自习室日常管理需要的软件产品。

6.2 测试方法

  本次系统的测试使用了各种各样的测试方法,以保证软件的质量。单元测试主要是对后端Spring Boot服务中涉及的主要业务逻辑组件,即预约冲突检测算法、用户信用状态计算模块等进行的,保证各个独立单元所实现的功能符合预期的设计要求。集成测试是对各个模块之间接口交互的测试,主要检验小程序前端用API和后端服务交流数据是否准确、完整,即请求参数解析以及响应数据封装。功能测试根据用户需求文档来制定测试用例,对预约、签到、违约处理等业务流程进行模拟,在界面操作中检验系统的各项功能是否全部完成。非功能测试部分用模拟多个用户同时提交预约请求的方式,对系统的并发处理能力和响应时间做初步的评价,保证系统在高负载的情况下仍然可以正常工作。

6.3 测试内容

  自习室预约功能测试如表6-1所示。

表6-1自习室预约功能测试表

测试内容测试步骤预期结果实际结果
正常预约流程 用户选择空闲座位,提交预约申请 系统提示预约成功,个人预约列表生成新记录 符合预期
重复预约同一座位 用户A预约后,用户B尝试预约同一时段同一座位 系统提示该座位已被占用,无法提交 符合预期
预约超时未支付 用户提交预约后,超过规定时间未确认 系统自动取消该预约单,座位状态恢复空闲 符合预期
无权限用户预约 被列入违约名单的用户尝试预约 系统提示因违约限制,无法进行预约操作 符合预期

  用户签到功能测试如表6-2所示。

表6-2用户签到功能测试表

测试内容测试步骤预期结果实际结果
正常时段内签到 用户在预约开始时间后扫描二维码 系统记录签到时间,预约状态更新为已签到 符合预期
提前签到 用户在预约开始时间前尝试签到 系统提示未到签到时间,操作被拒绝 符合预期
扫描错误二维码 用户扫描非本自习室的二维码 系统提示二维码无效,签到失败 符合预期
重复签到 用户已签到后再次点击签到按钮 系统提示已签到,禁止重复操作 符合预期

  违约记录生成功能测试如表6-3所示。

表6-3违约记录生成功能测试表

测试内容测试步骤预期结果实际结果
超时未签退 预约时段结束30分钟后用户仍未签退 系统自动生成一条违约记录,关联该用户 符合预期
正常完成签退 用户在时段结束前完成签退 系统不生成违约记录,流程正常结束 符合预期
管理员手动标记 管理员核实后,在后台手动标记某记录为违约 系统立即生成违约记录,并更新用户状态 符合预期
违约后权限限制 用户产生违约记录后,再次尝试预约 系统提示因违约暂停预约权限,操作被拦截 符合预期

  测试结论

  经过对五大核心功能的二十个测试用例执行,预约、签到、违约记录生成、后台管理与意见反馈模块均通过验证。系统能够正确处理正常业务流程,对重复预约、提前签到、超时未签退等异常操作具备有效的拦截与处理机制,管理员操作功能完整可用。所有测试用例的实际结果与预期结果一致,系统功能运行稳定。

总结

  校园自习室预约系统针对高校资源利用率低、流程控制难的问题,把学生预约签到签退和后台审核处罚作为一个完整的闭环来处理。经过需求分析、系统设计、编码和测试之后,该平台的各项功能都比较齐全,并且流程也较为清楚,可以满足自习室的正常运转需要,达到设计的目的。

  系统开发按照软件工程规范来进行。需求阶段整理出两类角色的主要需求,设计阶段使用前后端分离的架构,后端用Spring Boot搭建服务层,前端利用微信小程序创建移动入口,所有的数据都存放在MySQL中。该种技术组合具有分层分明、维护方便的特点,从而达到预约、签到签退、违约记录、数据分析等功能。

  系统还存在着有待改善之处。数据分析只使用了历史数据,没有用到预测算法,座位冲突检测依靠的是数据库的实时状态,在高并发的情况下会存在一定的性能问题,界面交互细节和成熟的软件相比还有很大的差距。

  后续可以对以上进行三个方面的发展和提升,即用机器学习来预测使用高峰期并动态调节座位、使用缓存中间件提高并发读写的效率、挖掘数据的价值来支持空间的规划。系统预约使用反馈的模式可以推广到实验室、研讨室等公共资源上,有广阔的前景。

参考文献

[1] 陈英豪.基于混合交通流的道路出行预约系统设计与建模分析[D].东南大学, 2024.

[2] 杨赟.绿洲共享自习室服务营销策略研究[D].兰州大学, 2023.

[3] 郑益杰.岸上共享自习室营销策略研究[D].河北工业大学, 2022.

[4] 黄奔.基于可信度匹配的心理咨询预约系统的设计与实现[D].北京邮电大学, 2021.

[5] 刘一澎.基于微信小程序的专家预约系统的设计与实现[D].南京大学, 2021.

[6] 郭铸成.基于收益管理的停车预约系统研究[D].西南交通大学, 2021.

[7] 熊玉涛.基于SSH框架的图书馆自习室管理系统的设计与实现[D].江西财经大学, 2019.

[8] Chatterjee S, Hebaish Y, Aprahamian H, et al. An Optimization-Based Scheduling Methodology for Appointment Systems with Heterogeneous Customers and Nonstationary Arrival Processes[J]. INFORMS Journal on Computing, 2025, 37(6): 1624-1624.

[9] Bouyahia F, Belaqziz S, Meliani Y, et al. A Novel Truck Appointment System for Container Terminals[J]. Sustainability, 2025, 17(13): 5740-5740.

[10] Oleskovicz M, Pedroso CM, Biazzi LJ. Outpatient appointment systems: A new heuristic with patient classification[J]. Operations Research for Health Care, 2024, 43100443-100443.

[11] Damith P, Whitney H, M. J N. Enhancing study room reservations at the Oklahoma State University Libraries: A case study on user interface development[J]. Journal of Access Services, 2024, 21(1): 53-66.

[12] Silva DFRM, Frazzon ME, Silva DMV. Design of flexible truck appointment system based on machine learning approach[J]. International Journal of Logistics Systems and Management, 2024, 48(2): 244-266.

[13] 陈蓓蕾,洪年松.基于SpringBoot的数据库接口设计[J].信息与电脑, 2023, 35(16): 181-183.

[14] 王志亮,纪松波.基于SpringBoot的Web前端与数据库的接口设计[J].工业控制计算机, 2023, 36(3): 51-53.

[15] 李海婷.基于OBE理念的中职《微信小程序》实训课程开发与实践研究[D].广东,广东技术师范大学, 2025.

[16] 徐金婵.基于交互式体验的校园植物科普小程序开发与应用研究[D].广东,广东技术师范大学, 2025.

[17] 庞敏. MySQL数据库的数据安全应用设计技术研究[J].数字通信世界, 2024(9): 25-27.

[18] 柳青,程晨. MYSQL数据库技术应用一体化课程开发研究[J].造纸装备及材料, 2024, 53(5): 251-253.

[19] 何金龙.电子信息工程计算机数据库应用[C]//2024智慧施工与规划设计学术交流会论文集. 2024: 1-3.

[20] 张晓蕾,王斌,郭锡泉. "互联网"背景下数据库应用技术课程思政教学设计与实践[J].现代商贸工业, 2024(23): 251-253.

[21] 罗超,彭玉涛.计算机软件测试方法的研究分析[J].长江信息通信, 2023, 36(2): 83-85.

致谢

  在本次项目的完成过程中,我得到了许多人的帮助和支持,在此,我衷心感谢所有给予我帮助的人。

  我要感谢我的指导老师,感谢您在我项目每一个阶段的细致指导和建议。每次碰到项目中的难题和挑战的时候,都会耐心地回答我所提出的问题,而且会用详细的讲解来帮助我充分理解相关理论知识与实践经验。您的专业态度与严谨的教学方式,使我在项目中学习到的不仅仅是技能,更是对专业领域更深层次的思考。没有您的指导,这个项目不可能这么顺利的完成。

  我要感谢我的同学们,在项目实施过程中,大家和我进行了深入的讨论,分享了自己的想法和经验,让我可以从不同的角度去看待问题,从而帮助我完成任务。虽然该项目是由个人独立完成的,但是与同学们的交流使我获得了许多新的思路和灵感。我也要感谢我的家人,项目研究时我投入了大量的时间和精力,家人在我的背后一直支持着我、包容着我,并鼓励我在遇到困难的时候不要放弃。你们的关爱就是我不断努力和进步的动力源泉。感谢学校提供的优质学习平台和资源,使我能顺利完成项目,达到预期目标。通过本次课业项目,我掌握了相关的专业知识和技能,也培养了独立思考和解决问题的能力。这些收获将会对我今后的学习和成长起到长远的作用。

  再次感谢所有在项目中给予我帮助和支持的人,是你们的帮助让我顺利完成了这次项目。

点赞+收藏+关注私信领取本源代码、数据库

赞(0)
未经允许不得转载:网硕互联帮助中心 » 基于微信小程序的校园自习室预约系统---附源码78996
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!