智能GPT图书管理系统(SpringBoot2+Vue2)、接入GPT接口,支持AI智能图书馆

☀️技术栈介绍

☃️前端主要技术栈

技术作用版本
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

🐼部署项目

  • 可以下载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也无从下手
  • 开源免费, 定制化和调试项目付费。

🐼项目API接口文档

  • 接口文档篇幅过大
  • 本来想完全采用RESTFUL风格,做到一半忘记了
  • 看清楚文档的基准地址

🐷其他

  • 个人博客采用Hexo+Github托管
  • 采用butterfly主题可以实现定制化
  • 推荐有空闲时间的,可以花1-2天搭建个人博客用于记录笔记。
  • 智能GPT图书管理系统(SpringBoot2+Vue2)、接入GPT接口,支持AI智能图书馆资源-CSDN文库icon-default.png?t=N7T8https://download.csdn.net/download/2302_81075415/88771932

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

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

相关文章

LiveGBS流媒体平台GB/T28181常见问题-如何配置使用自己已有的redis服务替换redis版本升级redis版本

LiveGBS如何配置使用自己已有的redis服务替换redis版本升级redis版本 1、Redis服务2、如何切换REDIS?2.1、停止启动REDIS2.2、配置信令服务2.3、配置流媒体服务2.4、启动 3、搭建GB28181视频直播平台 1、Redis服务 在LivGBS中Redis作为数据交换、数据订阅、数据发布的高速缓存…

Redis(七)复制

文章目录 是什么功能配置配主库不配从库权限细节 案例配置文件修改 一主二仆固定配置文件主从问题命令操作手动指定 薪火相传反客为主复制原理和工作流程存在问题 是什么 https://redis.io/docs/management/replication/ 就是主从复制,master以写为主,S…

Vue中的常用指令

Vue中的常用指令 概念:指令(Directives)是 Vue 提供的带有 v- 前缀 的特殊标签属性。 为啥要学:提高程序员操作 DOM 的效率。 vue 中的指令按照不同的用途可以分为如下 6 大类: 内容渲染指令(v-html、v…

【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏2(附项目源码)

本节最终效果演示 文章目录 本节最终效果演示系列目录前言添加小动物模型动画动物AI脚本效果 添加石头石头模型拾取物品效果 源码完结 系列目录 【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏1(附项目源码) 【制作100个unity游戏之23】…

Mac Idea安装后无法启动

1、起因 想安装一个新版的idea2023.3.2,结果安装完之后直接无法启动 以为是卸载不干净,下载了一个腾讯柠檬,结果将2018版也一并卸载了 好家伙,彻底没得用 2、找原因 1)查看idea报错信息 网上找了一圈,其…

burp靶场--host攻击

burp靶场–host攻击 https://portswigger.net/web-security/host-header#what-is-an-http-host-header-attack 在本节中,我们将讨论错误配置和有缺陷的业务逻辑如何通过 HTTP 主机标头使网站遭受各种攻击。我们将概述用于识别易受 HTTP 主机标头攻击的网站的高级方…

RabbitMQ中交换机的应用及原理,案例的实现

目录 一、介绍 1. 概述 2. 作用及优势 3. 工作原理 二、交换机Exchange 1. Direct 2. Topic 3. Fanout 三、代码案例 消费者代码 1. 直连direct 生产者代码 测试 2. 主题topic 生产者代码 测试 3. 扇形fanout 生产者代码 测试 每篇一获 一、介绍 1. …

告别无法访问的Github

告别无法访问的Github 最近在使用github的时候又登不上去了,挂着VPN都没用 但是自己很多项目都存在github,登不上去那不得损失很大 所以一行必须整点儿特殊手段来访问,顺便分享一下 1.加速器 网上很多解决方案都是在分享各种加速器来登陆…

深入理解JS语法与变量

深入理解JS语法与变量 前言初识JavaScriptJavaScript的语言风格和特性 JavaScript的书写位置认识输出语句学会处理报错REPL 环境 变量定义变量改变变量变量的合法命名变量的默认值变量的常见错误等号表示赋值同时声明多个变量 变量声明提升注意事项 结语 前言 在现代Web开发中…

idea中debug Go程序报错error layer=debugger could not patch runtime.mallogc

一、问题场景 在idea中配置了Go编程环境,可以运行Go程序,但是无法debug,报错error layerdebugger could not patch runtime.mallogc: no type entry found, use ‘types’ for a list of valid types 二、解决方案 这是由于idea中使用的d…

物流实时数仓——概述与准备工作

目录 一、架构设计与技术栈 (一)数仓架构设计 (二)所用技术栈 (三)最终效果 二、关于离线与实时的相关概念 三、实时数仓设计思路 一、架构设计与技术栈 (一)数仓架构设计 (二)所用技术栈 Hadoop 3.3.4 Zookeeper 3.7.1 Kafka 3.3.1 Hbase 2.4.11 Redis 6.0.8 Flink 1.17…

HCIP-BGP实验4

搭建实验拓扑图 要求 1.全网可达 2.isp只能配置IP地址 实验开始 配置IP地址及环回 r1,r2,r9,r10配ipv4地址(以r1为例) [Huawei]sysname r1 [r1]interface g0/0/0 [r1-GigabitEthernet0/0/0]ip address 12.1.1.1 24 [r1-GigabitEthernet0/0/0]q [r1]interface LoopBack 0…

全双工通信协议:WebSocket

全双工通信协议:WebSockets 前言何时使用WebSocketsWebSocket APITextWebSocketHandlerWebSocketConfigurerWebSocket握手配置服务器允许的来源心跳包Java WebSocket API案例一:前端发送消息并接收后端响应案例二:模拟后端向前端推送消息案例…

实战:加密传输数据解密

前言 下面将分享一些实际的渗透测试经验,帮助你应对在测试中遇到的数据包内容加密的情况。我们将以实战为主,技巧为辅,进入逆向的大门。 技巧 开局先讲一下技巧,掌握好了技巧,方便逆向的时候可以更加快速的找到关键…

元数据管理在数据仓库中的实践应用

一、什么是数据仓库的元数据管理? 1、什么是元数据? 元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data)。 抽象的描述:一组用于描述数据的数据组,该数据组的一切信息都描述了该数据的某方面特征,则该数据组即可被称为元数据。 举几个…

【Android 10】 BatteryController

学习了一下电池的相关模式,也就是它的观察者模式,先附上图 图应该挺清晰的,BatteryControllerImpl就是被观察者,BatteryControllerImpl重写了CallbackController的两个方法用于添加或移除观察者。 void addCallback(T listener);…

【vueCms】vuecms_xg安装与使用视频讲解【视频讲解】

克隆项目 gitee项目地址:https://gitee.com/derekgo/vue-cms_xg git clone gitgitee.com:derekgo/vue-cms_xg.git开启自动化脚本 点击后,运行http://localhost:3002 本地配置 开启本地redis 开启redis redis-server.exe redis.windows.conf重启redis 注意:…

系统性学习vue-vue-router

vue-router 路由的简介SPA路由 路由的基本使用安装引入使用标签式编程式 注意 嵌套(多级)路由路由传参query参数params参数 命名路由路由的props配置router-link的replace属性编程式路由导航路由跳转后退和前进 缓存路由组件两个新的生命周期钩子函数路由守卫全局前置守卫全局后…

Python中的os模块

目录 1、获取当前路径 2、获取父级路径 3、更改路径 4、罗列当前路径下方所有内容 5、创建文件夹 6、创建多级文件夹 7、删除文件夹 8、删除文件 9、重命名文件 10、walk 11、path os 是 Python的内置模块之一,提供了与操作系统交互的功能。它可以用于执…

Vue3 ref与reactive

✨ 专栏介绍 在当今Web开发领域中,构建交互性强、可复用且易于维护的用户界面是至关重要的。而Vue.js作为一款现代化且流行的JavaScript框架,正是为了满足这些需求而诞生。它采用了MVVM架构模式,并通过数据驱动和组件化的方式,使…