智能图书馆开源项目

结尾有项目链接

技术栈介绍

☃️前端主要技术栈

技术作用版本
Vue提供前端交互2.6.14
Vue-Router路由式编程导航3.5.1
Element-UI模块组件库,绘制界面2.4.5
Axios发送ajax请求给后端请求数据1.2.1
core-js兼容性更强,浏览器适配3.8.3
swiper轮播图插件(快速实现)3.4.2
vue-baberragevue弹幕插件(实现留言功能)3.2.4
vue-json-excel表格导出Excel0.3.0
html2canvas+jspdf表格导出PDF1.4.1 2.5.1
node-polyfill-webpack-pluginwebpack5中移除了nodejs核心模块的polyfill自动引入2.0.1
default-passive-eventsChrome 增加了新的事件捕获机制 Passive Event Listeners(被动事件侦听器)让页面滑动更加流畅,主要用于提升移动端滑动行为的性能
nprogress发送请求显示进度条(人机交互友好)0.2.0
echarts数据转图标的好工具(功能强大)5.4.1
less lessloader方便样式开发4.1.3 11.1.0

☃️后端主要技术栈

技术及版本作用版本
SpringBoot应用开发框架2.7.8
JDKJava 开发包1.8
MySQL提供后端数据库8.0.23
MyBatisPlus提供连接数据库和快捷的增删改查3.5.1
SpringBoot-Configuration-processor配置处理器 定义的类和配置文件绑定一般没有提示,因此可以添加配置处理器,产生相对应的提示.
SpringBoot-Starter-Web后端集成Tomcat MVC用于和前端连接
SpringBoot-starter-testJunit4单元测试前端在调用接口前,后端先调用单元测试进行增删改查,注意Junit4和5的问题,注解@RunWith是否添加
Lombok实体类方法的快速生成 简化代码
mybatis-plus-generator代码生成器3.5.1
MyBatisXMyBatisPlus插件直接生成mapper,实体类,service
jjwttoken工具包0.9.0
fastjson阿里巴巴的json对象转化工具1.2.83
hutoolhutool工具包(简化开发工具类)文档

☀️架构

图书管理系统架构图

☀️项目简介

  • 主要使用Vue2和SpringBoot2实现

  • 项目权限控制分别为:用户借阅,图书管理员,系统管理员

  • 开发工具:IDEA2022.1.3(真不推荐用eclipse开发,IDEA项目可以导出为eclipse项目,二者不影响,但需要自己学教程)

  • 学校老师硬性要求软件的话,还是按要求来。可以先问一下是否可以选择其他软件开发。

  • 用户账号密码: 相思断红肠 123456

  • 图书管理员账号密码: admin 123456

  • 系统管理员账号密码: root 123456

  • 前端样式参考 感谢原作者明月复苏

☀️项目详细介绍(亮点)

  • 本项目采用前后端分离的模式,前端构建页面,后端作数据接口,前端调用后端数据接口得到数据,重新渲染页面。
  • 后端已开启CORS跨域支持
  • API认证使用Token认证
  • 前端在Authorization字段提供token令牌
  • 使用HTTP Status Code表示状态
  • 数据返回格式使用JSON
  • 后端采用权限拦截器进行权限校验,并检查登录情况
  • 添加全局异常处理机制,捕获异常,增强系统健壮性
  • 前端用Echarts可视化库实现了图书借阅的分析图标(折线图、饼图),并通过loading配置提高加载体验。
  • 留言组件采用弹幕形式,贴合用户的喜好。
  • 引入knife4j依赖,使用 Swagger + Knife4j 自动生成 OpenAPI 规范的接口文档,前端可以在此基础上使用插件自动生成接口请求代码,降低前后端协作成本
  • 使用ElementUI组件库进行前端界面搭建,快速实现页面生成,并实现了前后端统一权限管理,多环境切换等能力。
  • 基于MyBatis Plus框架的QueryWrapper实现对MySQL数据库的灵活查询,并配合MyBatisX插件自动生成后端CRUD基础代码,减少重复工作。

⭐用户模块功能介绍

image-20231030110244726

  • 图书查询功能:分页构造器缓解数据过大压力,后端可设置请求数防止爬虫请求数过大,服务器负载过大。模糊查询进行字段搜索。表格均可导出PDF和EXCEL。

  • 读者规则功能:查询现有的借阅规则,借阅规则包括:借阅编号,可借阅图书数量,可借阅天数,可借阅图书馆,过期扣费/天。

  • 查看公告: 可以查询图书管理员发布的公告列表,文字滑动⭐

  • 个人信息: 可以查看个人的借阅证编号,借阅证姓名,规则编号,状态,可以修改个人账户的密码。

  • 借阅信息: 可以查看自身借阅过的图书记录和归还情况

  • 违章信息: 可以查询自身归还的图书是否有违章信息

  • 读者留言: 实现留言功能并以弹幕形式显示

⭐图书管理员模块功能介绍

image-20231030110256051

  • 借阅图书: 图书管理员输入借阅证号(用户)和要借的图书编号和当前的时间,点击借阅。

  • 归还图书: 输入图书编号查看图书是否逾期,并且可以设置违规信息,然后选择是否归还图书

  • 借书报表: 用于查询已经借阅并归还的书籍列表,同样使用分页构造器和模糊查询字段,显示借阅证编号,图书编号,借阅日期,截止日期,归还日期,违章信息,处理人。

  • 还书报表: 用于查询已经借阅但是还未归还的书籍列表,显示借阅证编号,图书编号,借阅日期,截止日期。

  • 发布公告: 可以查询当前发布的公告列表,并进行删除,修改,增加功能,分页构造器用于缓解数据量大的情况。

⭐系统管理员模块功能介绍

image-20231030110303880

  • 书籍管理: 可以查询当前的所有图书,显示图书编号,图书昵称,作者,图书馆,分类,位置,状态,描述。可以进行添加,修改,删除图书。利用分页构造器实现批量查询。利用模糊查询实现图书搜索功能。利用插件实现PDF和EXCEL导出。
  • 书籍类型: 显示查询当前的所有图书类型,可以进行添加,修改,删除图书类型,利用分页构造器实现批量查询,缓解数据压力。
  • 借阅证管理: 可以查询当前的所有借阅证列表,也就是用户数量,可以进行添加,修改,删除操作。同样实现分页。
  • 借阅信息查询: 可以查询当前已经完成借阅和归还的记录,显示借阅证号,书籍编号,借阅日期,截止日期,归还日期,违章信息,处理人。分页功能,PDF和EXCEL导出。
  • 借阅规则管理: 可以查询当前所有的借阅规则,显示限制借阅天数,限制本数,限制图书馆,逾期费用,可以进行添加、删除、修改操作。
  • 图书管理员管理: 显示当前的图书管理员列表,显示账号,姓名,邮箱,可以进行添加、删除、修改操作。
  • 系统管理: 可以查询一个月内的借阅量,以一周为时间间隔,计算借阅量,用Echarts实现折线图的展示。

☀️数据库表设计

t_users表

列名数据类型以及长度备注
user_idint(11)主键 非空 自增 用户表的唯一标识
usernamevarchar(32)用户名 非空
passwordvarchar(32)密码(MD5加密) 非空
card_namevarchar(10)真实姓名 非空
card_numberBigint(11)借阅证编号 固定 11位随机生成 非空(后文都改BigInt)
rule_numberint(11)规则编号 可以自定义 也就是权限功能
statusint(1)1表示可用 0表示禁用
create_timedatetime创建时间 Java注解 JsonFormatter
update_timedatetime更新时间 Java注解 JsonFormatter

t_admins表

列名数据类型以及长度备注
admin_idint(11)主键 非空 自增 管理员表的唯一标识
usernamevarchar(32)用户名 非空
passwordvarchar(32)密码(MD5加密) 非空
admin_namevarchar(10)管理员真实姓名 非空
statusint(1)1表示可用 0表示禁用
create_timedatetime创建时间 Java注解 JsonFormatter
update_timedatetime更新时间 Java注解 JsonFormatter

t_book_admins表

列名数据类型以及长度备注
book_admin_idint(11)主键 非空 自增 管理表的唯一标识
usernamevarchar(32)用户名 非空
passwordvarchar(32)密码(MD5加密)非空
book_admin_namevarchar(10)图书管理员真实姓名 非空
statusint(1)1表示可用 0表示禁用
emailvarchar(255)电子邮箱
create_timedatetime创建时间 Java注解 JsonFormatter
update_timedatetime更新时间 Java注解 JsonFormatter

t_books表

列名数据类型以及长度备注
book_idint(11)主键 自增 非空 图书表的唯一标识
book_numberint(11)图书编号 非空 图书的唯一标识
book_namevarchar(32)图书名称 非空
book_authorvarchar(32)图书作者 非空
book_libraryvarchar(32)图书所在图书馆的名称 非空
book_typevarchar(32)图书类别 非空
book_locationvarchar(32)图书位置 非空
book_statusvarchar(32)图书状态(未借出/已借出)
book_descriptionvarchar(100)图书描述
create_timedatetime创建时间 Java注解 JsonFormatter
update_timedatetime更新时间 Java注解 JsonFormatter

t_books_borrow表

列名数据类型以及长度备注
borrow_idint(11)主键 自增 非空 借阅表的唯一标识
card_numberint(11)借阅证编号 固定 11位随机生成 非空 用户与图书关联的的唯一标识
book_numberint(11)图书编号 非空 图书的唯一标识
borrow_datedatetime借阅日期 Java注解 JsonFormatter
close_datedatetime截止日期 Java注解 JsonFormatter
return_datedatetime归还日期 Java注解 JsonFormatter
create_timedatetime创建时间 Java注解 JsonFormatter
update_timedatetime更新时间 Java注解 JsonFormatter

t_notice表

列名数据类型以及长度备注
notice_idint(11)主键 非空 自增 公告表记录的唯一标识
notice_titlevarchar(32)公告的题目 非空
notice_contentvarchar(255)公告的内容 非空
notice_admin_idint(11)发布公告的管理员的id
create_timedatetime创建时间 Java注解 JsonFormatter
update_timedatetime更新时间 Java注解 JsonFormatter

t_violation表

列名数据类型以及长度备注
violation_idint(11)主键 非空 自增 违章表记录的唯一标识
card_numberint(11)借阅证编号 固定 11位随机生成 非空
book_numberint(11)图书编号 非空 图书的唯一标识
borrow_datedatetime借阅日期 Java注解 JsonFormatter
close_datedatetime截止日期 Java注解 JsonFormatter
return_datedatetime归还日期 Java注解 JsonFormatter
violation_messagevarchar(100)违章信息 非空
violation_admin_idint(11)违章信息管理员的id
create_timedatetime创建时间 Java注解 JsonFormatter
update_timedatetime更新时间 Java注解 JsonFormatter

t_comment表

列名数据类型以及长度备注
comment_idint(11)主键 非空 自增 留言表记录的唯一标识
comment_avatarvarchar(255)留言的头像
comment_barrage_stylevarchar(32)弹幕的高度
comment_messagevarchar(255)留言的内容
comment_timeint(11)留言的时间(控制速度)
create_timedatetime创建时间 Java注解 JsonFormatter
update_timedatetime更新时间 Java注解 JsonFormatter

t_book_rule表

列名数据类型以及长度备注
rule_idint(11)主键 非空 自增 借阅规则记录的唯一标识
book_rule_idint(11)借阅规则编号 非空
book_daysint(11)借阅天数 非空
book_limit_numberint(11)限制借阅的本数 非空
book_limit_libraryvarchar(255)限制的图书馆 非空
book_overdue_feedouble图书借阅逾期后每天费用 非空
create_timedatetime创建时间 Java注解 JsonFormatter
update_timedatetime更新时间 Java注解 JsonFormatter

t_book_type表

列名数据类型以及长度备注
type_idint(11)主键 非空 自增 图书类别记录的唯一标识
type_namevarchar(32)借阅类别的昵称 非空
type_contentvarchar(255)借阅类别的描述 非空
create_timedatetime创建时间 Java注解 JsonFormatter
update_timedatetime更新时间 Java注解 JsonFormatter

🐼功能演示图

用户模块功能图

首页轮播图演示

image-20231030110318881

图书查询演示

image-20231030110329273

读者规则演示

image-20231030110333842

查看公告演示

image-20231030110340781

个人信息演示

image-20231030110345751

借阅信息演示

image-20231030110405947

违章信息演示

image-20231030110414231

读者留言演示

image-20231030110420564

智能推荐演示

image-20231030110529142

图书管理员功能图

借阅图书演示

image-20231030110551512

归还图书演示

image-20231030110611331

借书报表演示

image-20231030110618748

还书报表演示

image-20231030110626015

发布公告演示

image-20231030110634352

系统管理员功能图

  • 由于篇幅受限,系统功能展示主要功能。

系统管理演示

image-20231030110641741

image-20231030110649230

智能分析演示

image-20231030110656108

🐼部署项目

image-20231030110703088

  • 可以下载ZIP压缩包或者使用克隆(Git clone)
  • 复制http或者ssh的链接(github建议ssh,gittee都可以)
  • 在D盘新建一个文件夹,点击进入该文件夹,右键Git Bash Here

image-20231030110713924

  • 还没有下载Git或者不会Git的建议先看基础教程(30分钟左右)

  • 输入git init 初始化git项目 然后出现一个.git文件夹

  • 输入git remote add origin xxxxxx(xxx为刚刚复制的http或者ssh链接)

  • 输入git pull origin master 从远程代码托管仓库拉取代码

  • 成功拉取项目(前端后端都是如此)

  • 前端项目注意依赖下载使用npm install 或者 yarn install (Vscode或者Webstorm)

  • 后端项目注意maven依赖下载(IDEA(推荐)或者Ecplise)

  • 前端npm 镜像源建议淘宝镜像源,后端maven镜像源推荐阿里云镜像源(非必选,但更换后下载快速)

🐼部署项目问题

  • 乱码问题 项目采用的UFT-8
  • 一般出现乱码就是UTF-8和GBK二者相反
  • 请百度IDEA乱码和Eclipse乱码问题(描述清楚即可)

  • 点击交互按钮,没有发生反应。
  • 很明显,请求失败,浏览器打开开发者工具,Edge浏览器直接ctrl+shift+i,其他浏览器按F12
  • 查看红色的请求和响应状态码问题

  • 先阅读文档再进行问题的查询或者提问
  • 提问有技巧,模糊的发言,让高级架构师找BUG也无从下手

  • QQ:909088445
  • 一般晚上在线,建议先自己寻找问题!!!
  • 开源免费, 定制化和调试项目付费。

🐼项目API接口文档

  • 接口文档篇幅过大
  • 本来想完全采用RESTFUL风格,做到一半忘记了
  • 看清楚文档的基准地址
  • 要API后端接口文档详细内容和数据库结构+内容一起的,将前后端star⭐的截图加我QQ:909088445发我即可领取~感谢支持
数据库领取截图示例:

🐷其他

  • 个人博客地址: https://luoye6.github.io/
  • 个人博客采用Hexo+Github托管
  • 采用butterfly主题可以实现定制化
  • 推荐有空闲时间的,可以花1-2天搭建个人博客用于记录笔记。

智能图书馆开源项目icon-default.png?t=N7T8https://gitee.com/falle22222n-leaves/vue_-book-manage-system

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/404118.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【漏洞复现】大华智能物联ICC综合管理平台文件读取漏洞

Nx01 产品简介 大华智能物联ICC综合管理平台是一个集成了多种智能物联应用服务能力的平台。该平台提供了一系列的基础能力,如中台基础能力、各智能物联应用服务能力以及周边生态支持。 Nx02 漏洞描述 大华智能物联ICC综合管理平台存在文件读取漏洞,攻击…

六、回归与聚类算法 - 欠拟合和过拟合

目录 1、定义 2、原因及解决方法 2.1 正则化 线性回归欠拟合与过拟合线性回归的改进 - 岭回归分类算法:逻辑回归模型保存与加载无监督学习:K-means算法 1、定义 2、原因及解决方法 2.1 正则化

【Unity3D】ASE制作天空盒

找到官方shader并分析 下载对应资源包找到\DefaultResourcesExtra\Skybox-Cubed.shader找到\CGIncludes\UnityCG.cginc观察变量, 观察tag, 观察代码 需要注意的内容 ASE要处理的内容 核心修改 添加一个Custom Expression节点 code内容为: return DecodeHDR(In0, In1);outp…

Flashbit空投

空投要点 明牌空投交互简单,仅需3步,零gas费要求加密钱包在eth链有过交易需要有x和discord账号 空投简介 是一个社区驱动的项目,专门针对Blast生态,项目方提出了空投计划,参与过该生态其他项目空投的都清楚&#xf…

探索什么是模糊测试 Fuzzing Test

什么是 "模糊测试"? Fuzzing 是一种发现软件缺陷的方法,它通过向程序提供随机输入来寻找导致程序崩溃的测试场景(原理有点类似Monkey Test)。可以帮助你快速了解程序整体的健壮性,并帮助你发现和修复关键的缺…

【Python常用包】pathlib

目录 简介Pathlib 库实现Path 创建路径对象检查路径类型创建和删除路径(目录与文件)读写文件路径匹配路径拼接和解析路径属性路径迭代和列出目录内容 小结 简介 Pathlib 是一个用于处理文件路径的 Python 库,提供了许多实用的函数和方法来处…

windows安装编译的python包

有时windows无法直接通过网络安装python包,需要从一个地方先下载好,再去安装,下载的一些编译好的python包,安装时发现提示“is not a supported wheel on this platform”,那可能就是下载编译好的版本不对。 可以通过…

代码随想录第二十四天 39.组合总和 40.组合总和II 131.分割回文串

LeetCode 39 组合总和 题目描述 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个…

电表(3)EC600N 4G模块通过mqtt向服务器发送数据

工具 1、ec600 2、stm32f030c8 3、keil5 4、腾讯云服务器(ubutu20.04) mqtt服务器 sudo apt install mosquitto mosquitto-clients sudo systemctl start mosquitto sudo vim /etc/mosquitto/mosquitto.conf sudo systemctl status mosquittolistene…

Aspose.Words For JAVA 动态制作多维度表格(涵2024最新无水印包)

全网最全Aspose.Words For JAVA 高级使用教程: CSDNhttps://blog.csdn.net/LiHaoHang6/article/details/133989664?spm1001.2014.3001.5501 运行截图: 所谓多维度表格通常包含多个维度, 每个维度都代表一种数据属性,多维度表格可以用于数据分析,通过不…

ArcgisForJS如何使用ArcGIS Server发布的切片地图服务?

文章目录 0.引言1.准备海量地理数据2.ArcGIS Server发布切片地图服务3.ArcgisForJS使用ArcGIS Server发布的切片地图服务 0.引言 ArcGIS Server是一个由Esri开发的地理信息系统(GIS)服务器软件,它提供了许多功能,包括发布切片地图…

Python实战:统计字符串中的英文字母、空格、数字及其他字符出现的个数

Python实战:统计字符串中的英文字母、空格、数字及其他字符出现的个数 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 &…

Servlet使用过程中常见问题总结

💕"Echo"💕 作者:Mylvzi 文章主要内容:Servlet使用过程中常见问题总结 前言:笔者在学习Servlet的过程中遇到了很多问题,这里总结一下 1.乱码问题 如果我们在响应报文中传输中文"你好",那么在浏览器之中显示…

Redis中的AOF重写到底是怎么一回事

首先我们知道AOF和RDB都是Redis持久化的方法。RDB是Redis DB,一种二进制数据格式,这样就是相当于全量保存数据快照了。AOF则是保存命令,然后恢复的时候重放命令。 AOF随着时间推移,会越来越大,因为不断往里追加命令。…

Java基于SpringBoot+Vue的图书馆管理系统,附源码,数据库

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

一款跳转警告HTML单页模板源码

一款跳转警告HTML单页模板,源码由HTMLCSSJS组成,记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面&#xff0c;重定向这个界面 代码如下 <!DOCTYPE html> <html> <!--QQ沐编程 www.q…

HarmonyOS—使用预览器查看应用/服务效果

DevEco Studio为开发者提供了UI界面预览功能&#xff0c;可以查看应用/服务的UI界面效果&#xff0c;方便开发者随时调整界面UI布局。预览器支持布局代码的实时预览&#xff0c;只需要将开发的源代码进行保存&#xff0c;就可以通过预览器实时查看应用/服务运行效果&#xff0c…

统计图玫瑰图绘制方法

统计图玫瑰图绘制方法 常用的统计图有条形图、柱形图、折线图、曲线图、饼图、环形图、扇形图。 前几类图比较容易绘制&#xff0c;饼图环形图绘制较难。 还有一种玫瑰图的绘制也较难&#xff0c;今提供玫瑰图的绘制方法供参考。 本方法采用C语言的最基本功能&#xff1a; &am…

axure9.0 工具使用思考

原型设计软件【AxureRP】快速原型设计工具原型设计软件【AxureRP】快速原型设计工具原型设计软件【AxureRP】快速原型设计工具原型设计软件【AxureRP】快速原型设计工具原型设计软件【AxureRP】快速原型设计工具原型设计软件【AxureRP】快速原型设计工具原型设计软件【AxureRP】…

Kafka3.x进阶

来源&#xff1a;B站 目录 Kafka生产者生产经验——生产者如何提高吞吐量生产经验——数据可靠性生产经验——数据去重数据传递语义幂等性生产者事务 生产经验——数据有序生产经验——数据乱序 Kafka BrokerKafka Broker 工作流程Zookeeper 存储的 Kafka 信息Kafka Broker 总…