基于微信小程序的图书馆管理系统设计与实现

                                                                     摘要

在当今社会,互联网已经开始成为时代的主流,随着信息技术的发展,人们开始越来越依赖网络。互联网也逐渐成为我们生活中必不可少的一部分,它的出现也重新定义了人们获取信息资源的方式。仅仅依靠手机就能解决我们生活中所出现的某些问题,同时图书馆作为移动服务技术主要的实践场所之一,也作为大学必不可少的存在,图书馆每天都会有很多学生前来借阅图书以及进行自习,为了帮助学生和管理员提高效率,降低学生前来借阅图书和占座而产生矛盾,于是将互联网移动服务和图书馆相结合制作了基于微信小程序的图书馆管理系统。微信小程序是当下最为普及,方便以及前沿的一种移动服务方式,微信小程序的开发运用了微信开发者工具,设计并开发图书馆管理小程序,并实现了图书馆借阅管理,留言管理,图书馆占座管理等,帮助学生减少挑选和借阅图书的时间。

关键词:微信小程序,图书馆,用户需求

                                                                      目录

1.前言

1.1目的与意义

(一)选题的目的

为了帮助学生和管理员提高效率,降低学生因为图书借阅和座位占座而产生矛盾,于是将互联网移动服务和图书馆相结合制作了基于微信小程序的图书馆管理系统。微信小程序是当下最为普及、方便以及前沿的一种移动服务方式,微信小程序的开发运用了微信开发者工具,设计并开发图书馆管理小程序,并实现了图书借阅管理、留言管理、图书馆占座管理、预约占座等功能,帮助学生有效减少了挑选和借阅图书的时间,并且可对图书馆提供意见的即时反馈,当需要占用图书馆座而资源时,也更好的降低了座椅的资源浪费,以及节约了过早占座的时间。
(二)选题的意义

1.理论意义:“书籍是在时代的波涛中航行的思想之船,它小心翼翼地把珍贵的货物运送给一代又一代。”而图书馆则是智慧的舰队,运送着一代又一代智者的智慧结晶,穿越时间的洪流,将宝贵的货物馈赠给下一代人。

2.实践意义:在各地很多高校中,因为缺少专用的学生自习室,并且学生平日课业任务较多,在宿舍无法专心学习,所以很多学生都选择去图书馆自习,因此高校图书馆都面临着“人多座少”的尴尬的管理问题,也造成了很多学生占座内卷,为了可以占到座位甚至需要早上五点就在图书馆门口排起长队,而因为晚上无法好好休息,辛苦早起占到座位却反而在桌子上趴着睡觉。
而同时在图书的借阅上也产生了尴尬问题,因为无法看到图书馆内的书籍构成以及借阅情况,学生也常常面临着找不到书或者书被别人借走而白跑一趟的情况。浪费了学生的时间同时也让学生借书欲望下降,许多优秀书籍在馆内积灰却也无人知晓、借阅。
因此,设计一款帮助高校图书馆解决此类问题的基于微信小程序的便捷轻型应用是我本次的目的和重点。
1.2国内外发展状况

微信小程序是不需要下载直接使用的程序,它只需要用户通过扫一扫或通过搜索就可以打开使用的工具。在国外微信和微信小程序的使用率并不高,但在国内微信和微信小程序的使用率已经完全占据了主流,目前已经发布了苹果版本,安卓版本等,根据调查显示,个体户和个人类型主体可注册5个微信小程序,而且微信小程序的软件开发价格较低,开发门槛也较低,到2019年底,我国微信小程序已达300万个,发展前景可观,在本身微信已是全民应用的前提下,疫情也让各地健康码等微信小程序成为生活的刚需。现在人们去哪里都要进行微信扫码登记以及出示二维码,不但确保了安全而且也大大减少了寻找曾与确诊患者密切接触过的人群的难度。现在许多应用都增加了相同功能的微信小程序版,如美团,饿了么等外卖软件或滴滴等此类打车软件,甚至连追星粉丝为明星打投的软件也开发了微信小程序版,因为微信小程序此类轻型应用不需要下载便可直接使用,帮日渐臃肿的手机从在现在各类五花八门的软件中解放出来。目前国内已经有部分高校图书馆通过微信公众平台,向广大的读者用户提供服务。在高校内除了图书馆管理之外,微信小程序也承担了重要的角色,学生平日查询课程表,考试日期,成绩查询等都依靠小程序进行,经过两年的发展国内已经构造了新的微信小程序开发环境和开发者生态。

1.3设计的主要内容

本设计主要是基于微信小程序的图书管理系统的设计与实现 ,是为实现通过小程序进行图书馆书籍的查询和预约借阅,在留言板上学生可以对图书馆提出相关的建议,在网上预约图书馆自习桌可以节省学生的时间,在一定时间内为学生预留用餐休息时间内的座位。根据软件的需求进行研究分析主要内容:首先介绍项目的开发背景和研究意义,其次是介绍项目开发过程中所用到的相关技术理论知识,及开发环境的介绍,然后是对系统开发进行了必要的分析,为系统设计环节提供了相应的理论基础。再是实现系统开发的主要环节和前提条件,对项目系统的主要模块进行了详细的分析和设计,为后续的具体实现奠定基础。最后是简要介绍了测试用例,让我们顺利的完成程序的开发工作后,通过这些测试,快速有效的找出了系统存在的不足之处并及时对其进行改动和完善。

2.相关技术介绍及系统环境开发条件

2.1相关技术介绍

微信开发者工具是专门为微信小程序打造的开发者工具,微信小程序的使用极大地丰富和便利了人们的生活,在一般电脑上都可以完成相应的开发,在系统调试过程中,也不需要下载第三方插件,就可以完成系统测试,通过debug就可以完成。

JAVA没有结构,数组和串都是对象,所以不需要指针。JAVA能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多地时间花在研发上。是一个面向对象的语言,JAVA设计成支持在网络上应用,是分布式语言。JAVA编译程序生成字节码,而不是机器码。JAVA程序可以在任何实现了JAVA解释程序和运行系统的系统上运行。

Maven是一款管理软件,可以更好地管理jar包的使用,有时在网络上下载的jar包不兼容,使用Maven可以避免这个问题的发生。

MySQL是开源的关系型数据库,因为是开源的所以没有版权纠纷,现在越来越多的公司都在利用mysql作为数据库的存储,不仅存储效率较快,而且还可在它原本的基础上进行二次开发,定制出更合适的数据库。

Vue是一套用于构建用户界面的渐进式框架。与其他大型框架不同的是,Vue被设计为可以自底向上逐层应用。

IDEA与eclipse相比,IDEA与第三方插件市场接入更多,开发效率比eclipse更高。

HBuilder是基于HTML,js,css等的开发技术,使开发者更容易上手学习,两种语法可以结合项目需要。

2.2系统环境开发条件

序号 软件环境 版本 备注
1 windows操作系统

10

2 数据库MYSQL 8.0
3 编程开发工具软件 2020.2
4 微信开发者工具 1.05

3.系统的需求分析与设计

作为软件前期开发过程中,需对项目进行需求分析,首先要了解业务做什么,实现什么功能,在模块中细分每个功能模块的背景,只有这样在软件开发中,才不会重复出现因为架构设计的缺陷。

3.1可行性分析

在系统开发过程中系统的可行性是必不可少的,可行性的研究就是评估问题能否得到解决并且是以最少的时间和最少的代价来解决,为实现上面的目标还要必须考虑到解决这些问题的方法的优点和缺点,还要考虑到实现了这些系统规模的开发带来的经济效益。这里可以用技术的可行性,操作的可行性,经济的可行性对我们的系统进行可行性的研究。

3.2需求分析

通过了解用户的需求,可以知道操作简单的系统更容易受到用户青睐,同时能够准确,完整的对信息进行管理。小程序图书管理平台在对需求做相应的分析后,得出结论,系统主要分为两个角色;管理员和普通用户。管理员模块主要进行数据的更新管理,功能分为用户管理,图书分类,图书管理,座位管理,留言信息等功能的管理。普通用户模块主要可以注册登录系统,以及图书借阅功能,留言回复功能,座位查询等功能。

3.2.1系统总体概述

该项目主要基于B/S模型,设计的功能有:用户管理,图书分类,图书管理,座位管理,留言信息。

基于微信小程序的图书馆管理系统设计与实现

3.2.2 功能性需求

(1)管理员登录模块

管理员可以进入小程序图书系统的管理,但所有注册和权限的使用,都需要经过管理员授权,比如:图书借阅管理,留言回复管理,座位管理,用户管理。

(2)用户管理模块

对已经注册的用户进行管理。

(3)图书借阅管理模块

主要用来记录图书借阅的状态,管理员可对图书进行操作。

(4)座位管理模块

主要是对图书馆座位的查询,便于大学生提前预定图书馆座位,管理员还可以对图书馆座位进行添加,删除,更改。

3.2.3非功能性需求

类别

需求描述

安全性 访问控制不受到攻击
兼容性 支持多浏览器访问
界面性

网站整体美观

3.2.4流程图设计

总体流程图设计:

基于微信小程序的图书馆管理系统设计与实现

登录管理流程图:

基于微信小程序的图书馆管理系统设计与实现

3.2.5系统ER图设计

商品条目属性图:

基于微信小程序的图书馆管理系统设计与实现

3.3数据库设计

3.3.1数据库设计的原则

在建表时,表的主键尽量少,在表与表之间建立外键关系时,也要尽量的少。数据库系统开发过程中,一般要有以下几个特点:字段冗余少,在设置表的参数类型时,控制好参数字段长度,尽量减少三张以上的管理表查询,减少sql带来的系统性能下降。

3.3.2数据库表的设计

用户表(user_name):用户编号,用户名称,用户密码,姓名,电话,邮箱

                                                表3-1用户表(user_name)

基于微信小程序的图书馆管理系统设计与实现

图书分类信息表(book_type):图书分类id,图书分类名

                                                表3-2图书分类信息表(book_type)

基于微信小程序的图书馆管理系统设计与实现

图书信息表(book_manager):图书编号id,图书序列号名,图书名称,图书位置,图书分类,借阅状态,图书说明,创建时间

                                                表3-3图书信息表(book_manager)

                         

基于微信小程序的图书馆管理系统设计与实现

留言信息表(leave_msg):编号id,留言内容,用户id,创建时间   

                                                 表3-4留言信息表(leave_msg)

基于微信小程序的图书馆管理系统设计与实现

座位管理信息表(book_seat):编号id,座位状态,预约时间

                                                 表3-5商品分类信息表(produceKindMsg)                                                              

基于微信小程序的图书馆管理系统设计与实现

4.系统功能模块实现

本项目采用JAVA和MYSQL互相结合构成微信程序

4.1.1登录页面的实现

用户通过输入账号和密码就可进行系统的操作,注意浏览者是不可以直接访问系统的。

基于微信小程序的图书馆管理系统设计与实现

 view主要用来渲染前端登录页面的样式操作及排版,通过v-model属性赋值username和userPWD的方式,将参数进行双向绑定,当我们点击提交按钮时,系统会将username和userPWD控件中绑定的值传到后端进行数据库的效时操作。

基于微信小程序的图书馆管理系统设计与实现

 该功能起到http远程调用服务接口功能,_this.serverUrl,在main.js文件中定义了全局的常用访问数据ip地址,通过wx.Request()方法并携带两个参数username和userpwd访问后端接口renren/usertable/searchUser路径,如果返回值res.data.code === 0,说明调用成功,找到匹配数据,然后再去调用uni.switchTab方法,将页面跳转到主页面url:“../index/index”,中去。

4.1.2图书页面的实现

基于微信小程序的图书馆管理系统设计与实现

4.1.3座位页面的实现

基于微信小程序的图书馆管理系统设计与实现

 4.2后端页面功能实现

4.2.1登录页面的实现

管理员输入账号和密码时,前端页面会根据账号和密码的合法性进行效验,查看有没特殊字符,后端会通过数据库检索有没匹配的账号和密码,如搜索到记录,则返回200,并生成相应的seesionID,然后进入操作主页面,如没有搜索到,则提示登录失败。

基于微信小程序的图书馆管理系统设计与实现

 算法实现:

         关于用户登录逻辑的实现,系统首先设置了一个用于监听登录接口的拦截器,该拦截器主要用于实现验证码的验证功能。当用户打开登录界面,系统生成图形验证码并显示,同时创建session,将对应的字符串验证是否一致,若不一致,则发送错误报告到前端。若一致,则放行请求,请求继续传递到后端登录逻辑层,进行账号密码的验证判断。

4.2.2用户管理页面的实现

用户管理页面,管理员可以对用户进行增加,删除,修改及查询。

      主要代码如下:

基于微信小程序的图书馆管理系统设计与实现

实现说明:

用户列表页面通过访问用户列表路径/usertable/list,可以直接访问list()方法,方法中定义了server层userTableService这个属性方法queryPage()主要用来调用数据表usertable中的数据,查询所有记录值,并返回到page中,通过返回page值,返回给前端页面。

4.2.3图书分类管理页面的实现

图书分类页面管理,管理员可以对图书进行增加分类,删除和修改。

主要代码如下:

基于微信小程序的图书馆管理系统设计与实现

实现说明:

图书分类页面通过访问分类列表路径/booktype/list,可以直接访问list()方法,方法中定义了server层bookTableService这个属性方法queryPage()主要用来调用数据表book_typee中的数据,查询所有记录值,并返回到page中,通过返回page值,返回给前端页面。

4.2.4图书管理页面的实现

图书管理页面与网站首页紧密相关,图书管理员可以修改,上架,下架商品,管理员可以对图书进行增加,删除,修改,查询等操作。

主要代码如下:

基于微信小程序的图书馆管理系统设计与实现

 实现说明:

图书管理页面通过访问图书列表路径/bookManagerService/list,在这个方法体中可以直接访问list()方法,方法中定义了server层bookManagerService这个属性方法queryPage()主要用来调用数据表book_manager中的数据,查询所有记录值,并返回到page中,通过返回page值,返回给前端页面。

4.2.5座位管理页面的实现

图书座位管理员可以对图书座位进行增加,删除,修改,查询等操作。

主要代码如下:

基于微信小程序的图书馆管理系统设计与实现

 实现说明:

座位管理页面通过访问座位列表路径/bookSerat/list,可以直接访问list()方法,方法中定义了server层bookSeatService这个属性方法queryPage()主要用来调用数据表book_seat中的数据,查询所有记录值,并返回到page中,通过返回page值,返回给前端页面。

4.2.6留言管理页面的实现

主要代码如下:

基于微信小程序的图书馆管理系统设计与实现

 实现说明:

留言管理页面通过访问分类列表路径/leaveMsg/list,可以直接访问list()方法,方法中定义了server层leaveMsgService这个属性方法queryPage()主要用来调用数据表book_typee中的数据,查询所有记录值,并返回到page中,通过返回page值,返回给前端页面。

4.3日志功能模块

    管理员可以查看其它管理员对数据库进行操作的记录,记录内包括用户名,操作内容,操作时间。

1.具体功能

(1)面向管理员,后台的,日志生成功能

(2)面向管理员,后台的,日志查询功能

2.算法实现

(1)日志生成功能的实现

通过利用lombok.slf4j插件的日志生成功能,编码时只需在需要监听的接口上依照slf4j的官方说明配置@Slfj注释,即可实现在调用到该接口时自动生成记录日志,并可通过编写相关方法将生成的日志直接存入数据库相关表中。

(2)日志查询功能的实现

与其他数据查询算法相同,用户访问日志查询时,前端向后端发送请求,后端从数据库调取日志表单中的相关数据,返送至前端并进行打印。

4.4安装部署

   先安装Tomcat服务器,在此之前需要配置java的运行环境,安装JDK1.8包,安装好JDK文件后,将电脑配置环境JAVA_HOME变量指向安装好的jdk路径,如果可以把windows自动防火墙关闭,防止,有时候拦截运行所用的插件或者端口。将下载好的Tomcat的安装文件下载进行压缩,点击文件中bin中的startup.bat文件,看见系统会出现dos界面,代表Tomcat服务已经启动运行。然后我们可以把做好的项目打包,完成后放到tomcat文件夹webapps中,项目就可以正常运行了。

5.系统测试

5.1系统调试的目的和意义

测试的目的就是在没有投入生产时及时发现问题并解决,测试的过程是长期的,是软件生命周期不可缺少的一部分,所以早期的介入测试,是解决问题的最基本的条件。

6.总结

在软件测试过程中,我了解到了测试的重要性,如果少了测试环节,直接把项目丢给客户,,很造成很大的损失,没有软件测试过程,对软件来说就没有推广使用的意思。其实在完成测试之后发现直接还有好多需要学习的地方,有些是无法实现的,当然网站的安全性,还需要更多的检测,需要子在学习和工作中进一步完善。

致    谢

一转眼,我的大学生活已经接近尾声,在大学的学习生活中,我不仅学到了许多专业相关的知识,也交到了不少朋友,他们在生活中给了我极大地支持,让我的大学生活变得充实。首先要感谢我的室友和同学,无论在学习上,还是生活上,他们总是给予我支持和帮助,因为他们,我才能克服生活中那些数不清的困难,同时也要感谢我的老师们,无论是平时的谆谆教导,还是对我们毕设期间的细心指导,没有老师们的付出,我想我也无法掌握如此多的知识,也就难以从学校迈进社会了。最后也要感谢学校,学校为我提供了优秀的师资,好的学习环境,更为我们提供了很多次实践的机会,正因为有这些机会的历练,我才能将所学的东西运用到实际中去,并积累经验。

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览208568 人正在系统学习中

来源:irrsttyx

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年6月1日
下一篇 2022年6月1日

相关推荐