1. 系统开发背景
随着科技的大力发展,如今越来越多的问题可以使用微信小程序等一系列工具解决,例如使用微信小程序进行点餐。所以我们想到可以使用微信小程序来开发一款高性能的图书馆座位预约系统。
2. 开发技术
2.1. 概述开发平台
2.2. 设计技术
微信小程序开发语言
座位图的设计
导入记录有座位分布的二维平面图,通过技术手段,将已预约的座位的小正方形显示为红色,意为已经有人预约此座位,未预约的座位的小正方形显示为绿色,意为可以预约此座位。
- 与门禁系统关联
通过网络与图书馆门禁相连接,并设置定时,在预约座位之后,二十分钟之内需要通过门禁进入到图书馆,否则视为取消预约。
- 架构
为了让系统具有良好的灵活性和伸缩性,选用了面向服务的架构(SOA)。面向服务的架构是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来。
- MySql数据库
在系统开发中会产生很多的数据,那么数据库的作用就显得尤为重要。目前主流的数据库有MySQL数据库,SQL server数据库和Oracle Database数据库。在此我们选择MySQL数据库作为我们系统开发的数据库。MySQL可以将数据存储在不同的表中,非常灵活,而且还可以提高系统在实际应用中的速度。同时拥有较高的兼容性。对数据库的操作包括增加、删除、修改、查找等功能。MySQL具有体积小、速度快、成本低等优点,是目前最受欢迎的开源数据库。使用流程如下:
a) 创建小程序并引入云开发。
b) 创建云函数,取名为mysql。
c) 安装MySQL2模块依赖。
d) 编写MySQL云函数链接MySQL数据库。代码如下:
const cloud = require('wx-server-sdk')
const mysql = require('mysql2/promise')
exports.main = async(event, context) => {
try {
const connection = await mysql.createConnection({
host: 服务器ip,
database: 数据库名,
user: mysql使用后名,
password: mysql密码
})
const [rows, fields] = await connection.execute('SELECT version();')
return rows;
} catch (err) {
console.log(链接错误, err)
return err
}
}
- 上传并部署云函数。
部署完成后即可通过小程序链接MySQL数据库来进行相关的增删改查操作。
3. 模块设计
3.1. 系统架构
3.1.1. 学生注册/登录模块
Figure 1. System architecture diagram
图1. 系统架构图
Figure 2. System architecture ER diagram
图2. 系统架构ER图
Figure 3. System login screen
图3. 系统登录界面
Figure 4. System registration interface
图4. 系统注册界面
Figure 5. Schematic diagram of the seat reservation interface
图5. 预约座位界面示意图
3.1.2. 签到/销到模块
Figure 6. Booking system check-in diagram
图6. 预约系统签到示意图
3.1.3. 数据管理模块
表名
字段
数据类型
描述
学生信息表
STU_ID
BIGINT
学生账号
PWD
VARCHAR
登录密码
NAM
VARCHAR
学生姓名
AGE
BIGINT
年龄
MAJOR
ENUM
专业
CLASS
ENUM
班级
STATUS
ENUM
预约状态
Table 1. Student information sheet
表1. 学生信息表
3.1.4. 数据利用模块
数据在系统中占着非常重要的地位和作用,单单实现其功能是不够的,如若对系统使用过程中的数据加以利用,则更能体现系统的价值。因此系统在对学生信息以及预约信息的收集和利用方面下了不少功夫,同时对数据的利用方式也是我们系统的一个亮点所在。由于在注册账号时收集到了学生的信息,因此我们通过大数据接口进行数据分析,在预约座位的同时,为学生推荐相关专业性的书籍,在预约座位的同时能够简单快速的大致了解一本书。如果学生对这本书感兴趣,系统会调用图书馆图书借阅系统查阅此书的位置,方便学生进行借阅。
根据学生预约图书馆座位的次数(非恶意刷次数的预约)推出学习之星,“榜样”的力量是无穷的,以此来激发同学们去图书馆自习的意愿。在3.1.2签到销到模块中提到的销到模块,此处系统会统计是否正常销到,未按规定销到的次数达到四次,则暂停此学生图书馆座位预约一周。以此督促大家养成良好的使用习惯。在被暂停预约功能之后,可联系图书馆管理员,由管理员视其情况决定是否予以开启。
3.1.5. 系统座位管理模块
系统具有座位自动管理和图书馆管理员管理两种形式。其会对图书馆每层自习室中的座位数量进行收集,并在系统中展示相关座位信息(通过红、蓝、绿三种颜色)。座位释放时,系统收到释放指令,则立即更新释放座位为绿色(可预约座位)。同时,系统每天在图书馆闭馆后,自动释放所有座位,全部标为绿色可预约状态,在第二天早晨开启预约功能。
3.1.6. 系统管理员模块
- 座位管理模块
管理员可以查找调用MySQL数据库的表进行数据交互,使得管理员可以对系统的座位进行管理(如释放座位信息等)。
- 用户管理模块
当有的学生信息发生改变后(如毕业、离校、转院等),可联系图书馆管理员进行信息的修改。
- 公告管理模块
该模块包括查询栏和公告通知,公告类型主要分为违规通告和闭馆通知等,由系统管理员进行发布与管理。在该页面,用户可以清晰查看公告发出的时间以及标题内容。同时当公告过多时,可以透过上方的搜索框进行关键字的搜索,方便查找。
Figure 7. System administrator module
图7. 系统管理员模块
Figure 8. System administrator interface
图8. 系统管理员界面
4. 性能分析
与传统的管理方式相比,传统的管理方式是使用人工通过用纸和笔进行数据信息的统计和管理,并且这种方式对于存储和查找某一数据信息都比较麻烦,随着计算机网络的到来,这种传统的方法很难适应当下社会的发展,不仅降低人们的办事效率,而且还需要很多的人力和物力,对于使用的时间和所要花费的费用都是比较高的,为了降低成本费用,提高学生的工作效率,进行开发一套基于计算机和网络技术的图书馆座位预约系统。
图书馆座位预约系统的开发设计时一个独立的系统,以流行数据库进行数据的存储开发,主要是为了实现图书馆座位预约系统的学生角色及相对应的功能模块,让图书馆座位预约系统的管理不会存在管理差异、低效率,而是跟传统的管理信息恰好相反,图书馆座位预约系统的实现可以节约资源,并且对于业务的处理速度也提高,速度快、效率高,功能性强大。
预约系统以微信小程序的方式,结合数据库,互联网,达到方便、快捷的使用方式,相较于APP,微信小程序面向的用户更广,不占用手机内存空间,轻量化,不会导致手机卡顿。其次,小程序开发门槛和成本更低,研发时间更短,并且维护成本相较于APP也更低。更重要的是,微信小程序不受限于平台,安卓和苹果系统都可以使用,兼容性更高。
5. 总结
在图书馆占座现象普遍大量存在的现在,一个好的、实用的座位预约系统显得尤为重要,本系统不仅具有座位预约功能,其利用同学个人数据进行个性化推荐和统计其自习次数以及时长来对系统产生的数据进行充分利用。其次,本系统的签到模块是一大亮点,通过GPS定位在图书馆范围内签到在一定程度上防止了签到作弊的现象。本系统以微信小程序的方式呈现,体积更小,内存更小,使用更方便,开发更快捷,实用性更高。本系统旨在减少占座的现象,促使大家养成一个好的座位预约使用的习惯,提高座位利用率,营造一个较公平的座位使用环境,拒绝长时间占座。
参考文献
[1]付伟, 吴珊珊, 钱少博. 高校人力资源管理工作的优化路径探析[J]. 现代营销(信息版), 2020(2): 206.[2]黑马程序员. 微信小程序开发实战[M]. 北京: 人民邮电出版社, 2019: 22-23.[3]李昊楠, 刘雅莉. 基于微信小程序的图书馆座位预约系统设计[J]. 现代信息科技, 2020, 4(6): 4-6.[4]潘俊芳, 侯振兴. 基于微信小程序的图书馆座位预约系统的设计[J]. 黑龙江工业学院学报(综合版), 2022, 22(5): 66-71.
版权归原作者 babyai997 所有, 如有侵权,请联系我们删除。