基于SpringBoot?+ Vue的图书管理系统的设计与实现
目录
本报告的目的是对图书管理系统进行详细设计说明,以便用户及项目开发人员了解产品详细的设计与实现,为开发人员提供开发参考书。以下叙述将结合文字描述、伪代码,图表等来描述图书管理系统的详细设计和相关的模块描述。本报告的预期读者有客户、项目经理、开发人员以及跟该项目相关的其他人员。
高校图书管理系统由大学北京校区XXX老师提出,由XXX、XXX等人进行后续的开发和实施工作,该项目适用于图书馆的管理人员和读者。
[1]窦万峰.软件工程方法与实践(第三版).北京:机械工业出版社,2016
[2]王珊/萨师煊.数据库系统概论(第五版).北京:高等教育出版社,2014
[3]《高校图书管理系统需求规格说明书》
[4]《高校图书管理系统概要设计说明书》
(1) 图书信息的管理,包括图书信息的条件查询、录入、修改和删除。
(2) 图书类型的管理,包括建立图书类型、查询图书类型、修改图书类型和删除图书类型。
(3) 用户信息管理。包括对系统管理员和读者的信息进行维护管理,可以新增、修改、删除和条件分页查询用户信息。
(4) 图书借阅与归还,记录图书借阅与归还信息,能判断该书是否可借,供读者选择图书并借阅,对借阅的图书执行归还操作。
(5)?用户注册和登录,读者可以通过登录页面注册新账号,管理员和读者可以使用用户名和密码登录图书管理系统。
????????图1 高校图书管理系统的软件结构图
描述:图书管理系统向下划分为图书管理、图书类型管理、用户信息管理和借阅管理四个模块。图书管理主要负责对图书的信息进行管理,以及管理员进行图书的查询;图书类型管理主要关联图书信息进行分类,可以对类型进行管理,以及对类型进行条件查询;借阅管理主要负责读者进行借书、还书操作,以及查询读者历史借阅信息;用户信息管理可以针对图书管理员和读者的信息进行管理。
?? 对模块进行简要描述,包括名称、编号、设计者、所在文件、所在库。
该图书管理系统提供了一系列功能,包括图书管理、图书类型管理、读者借阅归还图书、用户管理和重置密码等。
在图书管理功能中,管理员可以方便地进行图书信息的管理。他们可以添加新的图书记录,包括书名、作者、出版社、ISBN等信息,并可以对已有的图书进行编辑和删除操作。管理员还可以查看图书的借阅情况和库存信息,以便进行库存管理和统计。
图书类型管理功能允许管理员对图书进行分类管理。他们可以创建不同的图书类型,如小说、科幻、历史等,并可以为每个类型指定相应的属性和特征。这样可以更好地组织和管理图书馆的图书资源。
读者借阅归还图书功能使读者能够方便地借阅和归还图书。读者可以通过系统查询图书的可借状态,并选择需要借阅的图书。借阅期限和归还日期也会在系统中记录,以便提醒读者及时归还图书。管理员可以对借阅记录进行管理和统计,以便跟踪图书的借阅情况。
用户管理功能允许管理员管理系统的用户账号。他们可以创建新的用户账号,并为每个账号分配相应的权限和角色。管理员还可以对用户账号进行编辑和删除操作,以确保系统的安全性和合规性。
最后,重置密码功能允许用户在忘记密码时进行密码重置。用户可以通过提供相关的身份验证信息来重置密码,以便重新获得对系统的访问权限。
通过以上功能,该图书管理系统能够提供便捷的图书管理和借阅服务,提高图书馆的管理效率和读者的使用体验。
该系统登录注册功能针对密码做了BASE64Encoder算法加密,BASE64Encoder算法是一种将二进制数据编码为可打印字符的方法。它将输入的二进制数据分割成固定长度的块,并将每个块转换为对应的可打印字符。这种编码方式常用于在文本传输中传递二进制数据,例如在电子邮件中传输附件或在网页中嵌入图片。编码后的数据由64个不同的字符组成,包括大写字母、小写字母、数字和两个特殊字符。BASE64Encoder算法是一种简单、可逆的编码方式,可以将二进制数据转换为文本形式,方便传输和处理。
读者管理程序流程图
图2为读者管理的程序流程图,新读者要先注册,然后建立读者档案,之后再选择登录,已经注册过的读者可以直接进行登录,登录之后进入主页面。
??????????查询图书信息程序流程图
图3为查询图书信息的查询流程图,该模块首先进入等待用户输入搜索信息状态。如果用户已经输入则获取用户输入并根据输入的搜索关键字在图书库中匹配图书最后退出。如果用户未输入则模块继续处于等待用户输入搜索信息状态。
读者借书程序流程图
图4是读者借书的程序流程图,该模块首先进入等待用户借书请求状态。如果用户发出请求则生成借书信息并写入图书借阅库,如果用户未发出请求则模块继续处于等待用户借书请求状态。
读者还书程序流程图
??图5是读者还书的程序流程图,该模块首先进入等待用户还书请求状态。如果用户发出请求则生成还书信息并写入图书借阅库,如果用户未发出请求则模块继续处于等待用户还书请求状态。
数据名称 | 数据类型 | 数据描述 |
bookId | Int | 图书id |
bookName | Varchar | 图书名称 |
bookAuthor | Varchar | 图书作者 |
bookPrice | Decimal | 图书价格 |
bookTypeId | Int | 图书类型id |
bookDesc | Varchar | 图书描述 |
isBorrowed | Tinyint | 借阅标记。1表示借出,0表示归还 |
bookImg | Varchar | 图书封面图片链接 |
数据名称 | 数据类型 | 数据描述 |
bookTypeId | Int | 类型id |
bookTypeName | Varchar | 图书类型名称 |
bookTypeDesc | Varchar | 图书类型描述 |
数据名称 | 数据类型 | 数据描述 |
borrowId | Varchar | 借阅信息id |
userId | Int | 借阅读者的id |
bookId | Int | 借阅图书信息id |
borrowTime | Datetime | 借阅时间 |
returnTime | Datetime | 归还时间 |
数据名称 | 数据类型 | 数据描述 |
userId | Int | 用户id |
username | Varchar | 用户名 |
userPassword | Varchar | 用户密码 |
isAdmin | Tinyint | 是否管理员标记。1是管理员,0是读者 |
5.1.2首页
// 登录
@RequestMapping(value = "/login")
public Map<String, Object> login(@RequestBody User user) {
????// 登录
????User userObj = userService.login(user);
????if(userObj == null) { ??// 账号或密码错误
????????// 返回结果对象
????????return MyResult.getResultMap(420, "账号或密码错误");
????} else { ???// 账号密码正确
????????// 创建token
????????String token = TokenProcessor.getInstance().makeToken();
????????// 保存到Redis
????????userService.saveUser(token, userObj);
????????// 返回结果对象
????????return MyResult.getResultMap(200, "登录成功",
????????????????new HashMap<String, String>(){{ put("token", token); }});
????}
}
此源码非开源,若需要此源码可扫码添加微信进行咨询!