Skip to content

基于SpringBoot图书管理系统,统计可视化,分类管理,读者管理,借阅管理,图书管理等

Notifications You must be signed in to change notification settings

duanguolei/library_manage

Repository files navigation

图书借阅管理系统

基于springboot框架构建图书管理系统,具有可视化统计,分类管理,借阅管理,图书管理,读者管理,还书,罚款等功能。 (本次项目为kust创新实践课个人任务完成)

一、系统划分

任务需求描述:

图书管理系统: XX校图书馆现为手工管理,效率低、易出错、手续繁琐,而且耗费大量的人力。图书馆希望设计一个图书馆系统,管理读者的登记、图书的购入、借出、归还以及注销等。管理人员还可以查询某位读者、某本图书的借阅情况,以及图书借阅情况排行榜(某本图书的借阅人次),对借阅情况进行统计,给出统计表格和统计图,以全面掌握图书的流通情况。

具体需求:要求该系统可以完成读者管理(读者信息的增删修查)、图书管理(图书信息的增删修查)、借书管理(借阅记录的增删修查)、还书管理(借阅记录的增删修查)、图书注销管理、统计、角色权限管理等功能。读者登记时要新增读者信息,包括读者的具体信息(学号工号,身份证号,姓名,学院,专业,年级,是否已毕业、是否有效等)。购入新书时要新增图书信息,包括图书分类号(大类中类小类)、序列号(唯一)、出版号、书名、作者、内容摘要、出版社、价格和购书日期、状态(借出、在馆、已注销)等信息。读者借书时,先检查该读者为否有效的读者,若无效则拒绝借书,否则检查该读者所借图书是否超过最大限制数(五本)以及有未归还的过期图书,否则拒绝借书。查找该图书是否还有,如果有则可以借出,生成借阅记录,包括:图书序列号、书名、读者号、姓名、借出日期、归还日期、借阅期限、是否已过期等。读者还书时,根据图书序列号,从借阅记录中读出有关记录内容,登记归还日期,如果图书过期,则处以罚款,并打印罚款单。在某些情况下,需要对图书进行清理工作,对无价值的和过时的图书要注销。查询分为查询某位读者的借阅情况、某种图书的借阅情况和全局图书查询三种情况。

二、用例建模

三、数据库表格设计

user

保存管理注册信息

  • id: 用户id,自增
  • createtime: 用户注册时间
  • email:邮箱
  • password:密码
  • username:用户名

book

保存图书信息

  • id: 图书id,自增
  • author:作者
  • cover: 图书封面地址
  • create_time:创建时间
  • is_delete: 图书是否有效 true|false
  • isbn:图书ISBN编号
  • price: 图书价格
  • publisher:图书出版社
  • description:图书介绍描述
  • title: 图书名
  • category_id: 外键—>book_category表,保存图书分类信息
  • publish_date:出版日期
  • status: 图书是否在馆 true|false
  • borrow_count:图书被借用次数

book_category

保存图书分类信息

  • id:分类id自增
  • name:分类名
  • parant_category_id: 外键->book_category 表自身,保存父分类id

readr

保存读者信息

  • id:读者id,自增
  • card_id:身份证号
  • college:学院
  • create_time:创建读者时间
  • grade:年级
  • graduation:是否毕业,true|false
  • major:专业
  • name:姓名
  • phone:电话
  • student_id:学号
  • valid: 账号是否有效 true|false
  • borrow_count:借用图书次数

record

保存借阅记录信息

  • 借阅记录id,自增
  • actual_retrun_date: 实际归还书的时间
  • create_time:借书时间
  • is_overdue:是否逾期,true|false
  • is_retrun:是否归还,true:false
  • return_date: 约定归还时间
  • book_id:外键->book表,保存借用图书id
  • reader_id:外键->reader 表,保存借用读者id

punish

保存罚款记录信息

  • 罚款记录id,自增
  • create_time:创建时间
  • money:罚款金额
  • reason:罚款原因
  • record_id:外键->record表,记录罚款记录对应借阅id

四、所用技术

后端:

jdk1.8

maven

spring-boot

myhabits-plus

thymeleaf

数据库:

mysql

前端:

jquery

bootstrap

highcharts

bootstrap-table

font-awesome

工具:

IDEA

navicat

五、界面展示

​ 以下是大概的界面展示内容

1、登录/注册

image-20240521174006803

image-20240521174028979

主界面

image-20240521174121662

image-20240521174152399

分类界面

image-20240521174224575

image-20240522104830458

image-20240521174300471

图书管理界面

image-20240524153501063

image-20240521174358118

image-20240521174444359

image-20240521174514019

image-20240521174538729

image-20240527172026296

image-20240527172059861

image-20240527172323500

读者管理

image-20240524153606374

image-20240524153625448

image-20240521174655672

image-20240521174722067

借阅管理

image-20240521174750207

image-20240521174812803

image-20240521174832588

六、系统功能简述

登录注册

  • 登录

  • 注册

  • 退出登录

主页

  • 查看读者,图书,借阅次,罚款次数量
  • 查看图书热度柱状图
  • 查看借阅违规比例饼图
  • 查看借阅趋势折线图

分类管理

  • 查看分类,及其子分类名
  • 当前分类下,新建子分类
  • 查看当前分类目录下所有图书

图书管理

  • 状态显示

  • 新建,更新图书

  • 上传封面

  • 图书详情信息

  • 激活,注销,删除图书

  • 借阅图书,搜索读者

  • 查看该书相关读者

读者管理

- 状态显示
  • 新建,更新,删除 读者
  • 激活,注销读者
  • 查看读者借阅所有书的详情

借阅管理

  • 状态显示

  • 删除借阅记录

  • 点击还书

  • 输入罚款,生成罚款单

搜索

  • 模糊搜索相关图书,读者信息

七、总结

本次任务中,由于第一次使用spring-boot框架开发,导致很多service方法直接写在controller层中,理应写在service层中,没有好的注释,并且在日后阅读起来较为不方便,也不符合编程规范。对于一些方法的实现,没有采用特别合理的方式,导致一些方法数据库的查询次数过多,增加查询时间,以及前端bootstrap-table采用client模式,没有采用server模式,在数据库表信息太多时候,会导致查询速度慢,占用空间大等问题。整个系统实现,包含三个缺陷,一是图书信息需要增加编号属性;二、图书可以增添库存;三、罚款管理可以取消手动输入罚款原因和金额,根据逾期天数,自动生成罚款金额单。

About

基于SpringBoot图书管理系统,统计可视化,分类管理,读者管理,借阅管理,图书管理等

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages