Computer Graduation Project Library Management System Vue+SpringBoot+MySQL

Author homepage : Designer Xiao Zheng
Author brief introduction : 3 years of JAVA full-stack development experience, focusing on JAVA technology, system customization, remote guidance, dedicated to enterprise digital transformation, certified lecturer of CSDN College and Blue Bridge Cloud Course.


title illustrate
project type Open source projects
Source code warehouse h t t p s : / / g i t e e . c o m / y y z w z / k y 001 \color{red}{https://gitee.com/yyzwz/ky001} https://gitee.com/yyzwz/ky001
Value-added services https://bbs.csdn.net/topics/617132402
Project code ky001
Value-added services [ documentation, deployment, explanation\color{red}{documentation, deployment, explanation}Documentation, deployment, explanation ] "Open Source Project Service Standards"

It is another year of graduation season. For fresh graduates, the school only teaches theoretical knowledge, but it is difficult to find a job . This is the normal state of most fresh graduates.

Recently, I helped my classmates answer the question "What skills do undergraduates need to master in computer science to find a job?" , which aroused my desire to write open source projects.

An open source project refers to a software or other type of project whose source code is publicly available and can be viewed, used, modified, and distributed by anyone. The purpose of open source projects is to promote cooperation, sharing and innovation, and to improve software quality and functionality by allowing more people to participate.

In order to help beginners better get started with Java full stack, it is planned to be released on 23 23Develop50 50 before the end of 2350 sets of open source projects are given back to fans for beginners to learn and use.

This article is the first open source project - "Library Management System", which has a library module, a book type module, a book module, a book borrowing module, and an announcement module. Students can practice with this project and learn about the Vue and Spring Boot frameworks. Have a clearer understanding.

1 System introduction

The library management system is a software system used to manage library resources. The system includes a library module, a book type module, a book module, a book borrowing module and an announcement module .

Insert image description here

The library module is the core module of the system and is used to manage the basic information of the library, including library name, address, contact information, etc. Administrators can add, modify and delete library information through this module.

The book type module is used to manage the classification information of books. Administrators can add different book types in this module, such as literature, history, technology, etc., to make it easier for readers to find and borrow books.

The book module is one of the most important modules in the system and is used to manage the basic information of books, including book title, author, publisher, ISBN, etc. Administrators can add, modify, and delete book information in this module, and can set the inventory quantity of books.

The book borrowing module is one of the core modules of the reader's use system. Through this module, readers can query the availability status of books, and can borrow and return books. The system will automatically record borrowing records and return dates, and remind readers to return books.

The Announcement module is used to issue library-related notices and announcements to readers. The administrator can issue announcements in this module and set the validity period of the announcements. Readers can view the latest announcement information through this module.

Insert image description here
Insert image description here

The library management system can efficiently manage library resources, provide convenient borrowing services, and release library-related information and announcements to readers in a timely manner.

2 functional modules

2.1 Login registration module

The library management system supports the user to enter the account number, password and graphic verification code to complete the login. The interface is as follows.

Insert image description here

If the user does not have an account, he can complete the self-registration, and then log in to the system, as shown in the figure below.

Insert image description here
After entering the system, the interface is as shown below.
Insert image description here

2.1 Library Module

The library module is one of the core modules of the library management system, which is mainly responsible for managing the basic information of the library.

The library module records and manages the basic information of the library, such as the name, address, and contact information of the library. This information is important for readers. They can know the location and contact information of the library through the query system, so that they can borrow books conveniently. The main interface is shown in the figure below.

Insert image description here
The library module allows administrators to manage the settings of the library. The library module can provide information about the library. The interface for adding is shown in the figure below.

Insert image description here
Insert image description here

The library module is an indispensable part of the library management system. It provides management and query functions for the library's basic information, settings, resources and statistical data, and helps to improve the library's management efficiency and readers' borrowing experience.

Insert image description here

2.2 Book type module

The book management system needs the book type module because the book type module is very important for the classification and management of books. The main interface is shown in the figure below.

Insert image description here
The book type module allows administrators to categorize and manage books. By classifying books into different types, readers can more easily find and borrow books that interest them. For example, books can be divided into literature, history, technology, etc. Readers can choose to borrow according to their own interests and needs. The adding interface of the book type module is shown in the figure below.

Insert image description here
Insert image description here

The Book Type module provides a quick search method for books. Readers can search according to the type of book, so as to quickly find the book they want. This can improve readers' retrieval efficiency and save time. The editing interface is shown in the figure below.

Insert image description here

The book type module plays an important role in the book management system. It can classify and manage books to facilitate readers to find and borrow books. It also provides functions such as borrowing restrictions and personalized recommendations, which improves the efficiency of the book management system and readers. Experience, users can delete unwanted book types, as shown in the figure below.

Insert image description here

2.3 Book Module

The book management system needs the book module because the book module is one of the most important modules in the system. It is used to manage the basic information of the book. The main interface is as follows.

Insert image description here
The book module is responsible for recording and managing basic information about books, such as book title, author, publisher, ISBN, etc. Administrators can add, modify and delete book information in this module to ensure the accuracy and completeness of book information. The book entry interface is shown in the figure below.

Insert image description here
Readers can query and retrieve books through the book module. Based on the book title, author, ISBN and other keywords, readers can quickly find the books they are interested in and improve the efficiency of book search.

The book module plays a key role in the book management system, so that readers can easily obtain and use book resources, and also ensure the efficient operation of the book management system. The book editing interface is shown in the figure below.

Insert image description here

2.4 Book lending module

The book management system requires a book borrowing module because the borrowing module is one of the core modules in the system. It is responsible for handling all aspects of the book borrowing process. The main interface of the book borrowing module is shown in the figure below.

Insert image description here

The book borrowing module records and manages borrowing records .

For readers, they can learn about their borrowing history, current borrowing status and other information by querying the borrowing records.

For administrators, they can use this module to conduct statistics and analysis on borrowing records, understand the borrowing situation of books, and formulate more reasonable book purchasing plans.

Users can click the Add button to complete the book borrowing registration, as shown in the figure below.

Insert image description here

Readers can query their borrowing details, as shown in the figure below.

Insert image description here

The administrator can click the Return button to complete the student's book return application, as shown in the figure below.

Insert image description here
The book borrowing module is indispensable in the book management system. It provides borrowing management, borrowing record management and other functions, providing readers with convenient borrowing services, and also provides administrators with borrowing data management functions.

2.5 Announcement module

The announcement module is needed in the library management system to realize information exchange and communication with readers and administrators. The main interface is shown in the figure below.

Insert image description here

The announcement module can be used to issue important notices and announcements to readers and administrators. For example, important information such as temporary closure of the library, changes in borrowing rules, and book purchase plans can be released through the announcement module to ensure that readers and administrators can learn about relevant information in a timely manner. Administrators can post announcements, as shown below.

Insert image description here

3 Source code analysis

3.1 Library module design

Entity class:

@Table(name = "a_library")
@TableName("a_library")
@ApiModel(value = "图书馆")
public class Library extends ZwzBaseEntity {
    
    

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "图书馆名称")
    private String title;

    @ApiModelProperty(value = "图书馆地址")
    private String address;

    @ApiModelProperty(value = "门头照片")
    private String image;

    @ApiModelProperty(value = "开业状态")
    private String status;

    @ApiModelProperty(value = "备注")
    private String remark;
}

Query interface:

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询图书馆")
public Result<IPage<Library>> getByPage(@ModelAttribute Library library ,@ModelAttribute PageVo page){
    
    
    QueryWrapper<Library> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(library.getTitle())) {
    
    
        qw.like("title",library.getTitle());
    }
    if(!ZwzNullUtils.isNull(library.getAddress())) {
    
    
        qw.like("address",library.getAddress());
    }
    IPage<Library> data = iLibraryService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<Library>>().setData(data);
}

3.2 Book type module design

Entity class design:

@Table(name = "a_book_type")
@TableName("a_book_type")
@ApiModel(value = "图书类型")
public class BookType extends ZwzBaseEntity {
    
    

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "图书类型")
    private String title;

    @ApiModelProperty(value = "类型状态")
    private String status;

    @ApiModelProperty(value = "排序值")
    private BigDecimal sortOrder;

    @ApiModelProperty(value = "备注")
    private String remark;
}

Query interface:

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询图书类型")
public Result<IPage<BookType>> getByPage(@ModelAttribute BookType bookType ,@ModelAttribute PageVo page){
    
    
    QueryWrapper<BookType> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(bookType.getTitle())) {
    
    
        qw.like("title",bookType.getTitle());
    }
    if(!ZwzNullUtils.isNull(bookType.getStatus())) {
    
    
        qw.eq("status",bookType.getStatus());
    }
    IPage<BookType> data = iBookTypeService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<BookType>>().setData(data);
}

3.3 Book module design

Entity class design:

@Table(name = "a_book")
@TableName("a_book")
@ApiModel(value = "图书")
public class Book extends ZwzBaseEntity {
    
    

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "图书名称")
    private String title;

    @ApiModelProperty(value = "出版社")
    private String press;

    @ApiModelProperty(value = "图书类型")
    private String type;

    @ApiModelProperty(value = "ISBN")
    private String isbn;

    @ApiModelProperty(value = "图片")
    private String image;

    @ApiModelProperty(value = "备注")
    private String remark;
}

Query interface:

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询图书")
public Result<IPage<Book>> getByPage(@ModelAttribute Book book ,@ModelAttribute PageVo page){
    
    
    QueryWrapper<Book> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(book.getTitle())) {
    
    
        qw.like("title",book.getTitle());
    }
    if(!ZwzNullUtils.isNull(book.getIsbn())) {
    
    
        qw.like("isbn",book.getIsbn());
    }
    IPage<Book> data = iBookService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<Book>>().setData(data);
}

3.4 Design of book borrowing module

Entity class design:

@Table(name = "a_book_borrowing")
@TableName("a_book_borrowing")
@ApiModel(value = "图书借阅")
public class BookBorrowing extends ZwzBaseEntity {
    
    

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "图书ID")
    private String bookId;

    @ApiModelProperty(value = "图书名称")
    private String bookName;

    @ApiModelProperty(value = "图书ISBN")
    private String bookIsbn;

    @ApiModelProperty(value = "借阅人ID")
    private String userId;

    @ApiModelProperty(value = "借阅人")
    private String userName;

    @ApiModelProperty(value = "借阅时间")
    private String time1;

    @ApiModelProperty(value = "借阅状态")
    private String status;

    @ApiModelProperty(value = "归还时间")
    private String time2;
}

Query interface:

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询图书借阅")
public Result<IPage<BookBorrowing>> getByPage(@ModelAttribute BookBorrowing bookBorrowing ,@ModelAttribute PageVo page){
    
    
    QueryWrapper<BookBorrowing> qw = new QueryWrapper<>();
    User currUser = securityUtil.getCurrUser();
    qw.eq("user_id",currUser.getId());
    if(!ZwzNullUtils.isNull(bookBorrowing.getBookName())) {
    
    
        qw.like("book_name",bookBorrowing.getBookName());
    }
    if(!ZwzNullUtils.isNull(bookBorrowing.getUserName())) {
    
    
        qw.like("user_name",bookBorrowing.getUserName());
    }
    IPage<BookBorrowing> data = iBookBorrowingService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<BookBorrowing>>().setData(data);
}

3.5 Announcement module design

Entity class design:

@Table(name = "a_notice")
@TableName("a_notice")
@ApiModel(value = "公告")
public class Notice extends ZwzBaseEntity {
    
    

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "公告标题")
    private String title;

    @ApiModelProperty(value = "公告内容")
    private String content;

    @ApiModelProperty(value = "图片")
    private String image;

    @ApiModelProperty(value = "发布状态")
    private String status;
}

Query interface:

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询公告")
public Result<IPage<Notice>> getByPage(@ModelAttribute Notice notice ,@ModelAttribute PageVo page){
    
    
    QueryWrapper<Notice> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(notice.getTitle())) {
    
    
        qw.like("title",notice.getTitle());
    }
    if(!ZwzNullUtils.isNull(notice.getContent())) {
    
    
        qw.like("content",notice.getContent());
    }
    IPage<Notice> data = iNoticeService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<Notice>>().setData(data);
}

4. Disclaimer

  • This project is open source and is only for personal learning and use. It follows the GPL-3.0 open source agreement. For commercial authorization, please contact the blogger, otherwise you will be responsible for the consequences.
  • The blogger owns all content ownership and independent intellectual property rights of the application system after the software is built, and has the final right of interpretation.
  • If you have any questions, please leave a message in the warehouse Issue. We will reply as soon as possible after seeing it. Relevant opinions will be considered as appropriate, but there is no promise or guarantee that they will be adopted.

Users who download this system code or use this system must agree to the following content, otherwise please do not download!

  1. You use/develop this software voluntarily, understand the risks of using this software, and agree to bear the risks of using this software.
  2. Any information content of the website built using this software and any resulting copyright disputes, legal disputes and consequences have nothing to do with the blogger, and the blogger does not bear any responsibility for this.
  3. Under no circumstances will the blogger be liable for any loss that is difficult to reasonably predict (including but not limited to loss of commercial profits, business interruption, and loss of business information) resulting from the use or inability to use this software.
  4. You must understand the risks of using this software. The blogger does not promise to provide one-on-one technical support or use guarantee, nor does it assume any responsibility for unforeseen problems caused by this software.

Insert image description here

Guess you like

Origin blog.csdn.net/qq_41464123/article/details/132494129