<p align='center'><img src='https://cdn.oxdl.cn/picgo/aqq4r-eaakj.svg' /></p>
### 图书管理系统
[![](https://shields.io/badge/blog-visit-green?style=for-the-badge&logo=WordPress)](https://oxdl.cn) [![](https://shields.io/badge/releases-view-pink?style=for-the-badge)](https://github.com/EduarteXD/BookManager/releases) [![](https://shields.io/badge/demo-visit-yellow?style=for-the-badge&logo=dev.to)](https://dev.oxdl.cn)
****
#### 基本功能
- 图书搜索,入库
- 图书借还
- 逾期提醒
- 基本权限管理
- 一个基本的ISBN检索图书Api
#### 图书搜索与入库
实现由ISBN编码精确搜索图书并入库或在库存中按照书名进行模糊搜索
![](https://cdn.oxdl.cn/picgo/image-20220605100954260.png?x-oss-process=image/resize,h_500)
主页👆
![](https://cdn.oxdl.cn/picgo/image-20220605000242428.png?x-oss-process=image/resize,h_500)
按照ISBN号搜素Be like👆,此时由于此书不在库中,系统管理员可以将其添加到书库,并修改图书基本信息和添加数量👇
![](https://cdn.oxdl.cn/picgo/image-20220605000538589.png?x-oss-process=image/resize,h_500)
![](https://cdn.oxdl.cn/picgo/image-20220605000754584.png?x-oss-process=image/resize,h_500)
模糊搜素👆
#### 图书借还管理
![](https://cdn.oxdl.cn/picgo/image-20220605101200507.png?x-oss-process=image/resize,h_500)
当搜索到想要借阅的书目,进入详情页后,可以进行借阅👆,此时此书会被加入到借阅清单中,但并不会扣减库存,可以被他人抢占
![](https://cdn.oxdl.cn/picgo/image-20220605102204968.png?x-oss-process=image/resize,h_500)
点击借阅按钮即可完成尚有库存书目的借阅并自动清理借阅清单👆,此时会将相应图书的库存从数据库中减去,完成借阅
![](https://cdn.oxdl.cn/picgo/image-20220605102529406.png?x-oss-process=image/resize,h_500)
#### 逾期提醒
完成借阅之后可以进入还书页面查看借阅的书目,这里为了方便演示将其中一本书的借阅时间手动调整到了21天前👆,此时第一本书已经逾期,可以看到在页面加载完成后,会弹出提示还书的通知👇
![image-20220605102815057](https://cdn.oxdl.cn/picgo/image-20220605102815057.png)
![](https://cdn.oxdl.cn/picgo/image-20220605103003042.png?x-oss-process=image/resize,h_500)
当然,如果你的浏览器不幸不支持Notification Api或是拒绝了通知权限,我们有替代方案👆
![](https://cdn.oxdl.cn/picgo/image-20220605103117111.png?x-oss-process=image/resize,h_500)
当你有书本逾期时候,你将无法借阅新书👆
#### 基本权限管理
用户被分为三个等级:游客,用户和管理员
- 游客可以对书籍进行检索但无权借阅
- 用户可以借阅12本书
- 管理员可以添加书目入库与访问库存
在此不多作演示
#### 图书检索Api
[![](https://img.shields.io/badge/bookApi-view-%23121011.svg?style=for-the-badge&logo=github)](https://github.com/EduarteXD/bookApi) [![](https://img.shields.io/badge/bookapi-visit-green.svg?style=for-the-badge)](https://ixnet.icu/api)
最后,当然,也是非常重要的一个功能,以上检索图书和入库实际上也是基于此功能
![](https://cdn.oxdl.cn/picgo/image-20220605103547360.png?x-oss-process=image/resize,h_500)
以上为功能介绍
#### 部署
首先创建数据库:
```mermaid
erDiagram
Inventory {
INT bookId
BIGINT isbn
TEXT bookname
TEXT authors
TEXT description
TEXT photo
TEXT publisher
TEXT price
TEXT category
TEXT stock
TEXT borrowed
}
Users {
INT uid
TEXT name
TEXT email
TEXT pwd
INT role
INT borrowed
}
Tracker {
INT uid
TEXT tracker
}
Borrowed {
INT uid
BIGINT isbn
TIMESTAMP time
}
Users ||--o| Tracker : has
Borrowed }o--|| Inventory : refers
Borrowed }o--|| Users : refers
```
```sql
CREATE TABLE `users` (
`uid` INT(10) NOT NULL AUTO_INCREMENT,
`name` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
`email` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
`pwd` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
`role` INT(10) NULL DEFAULT NULL,
`borrowed` INT(10) NULL DEFAULT '0',
PRIMARY KEY (`uid`) USING BTREE
)
COLLATE='utf8mb4_bin'
ENGINE=InnoDB
AUTO_INCREMENT=1;
CREATE TABLE `trackers` (
`tracker` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
`uid` INT(10) NULL DEFAULT NULL
)
COLLATE='utf8mb4_bin'
ENGINE=InnoDB;
CREATE TABLE `inventory` (
`bookid` INT(10) NOT NULL AUTO_INCREMENT,
`isbn` BIGINT(19) NULL DEFAULT NULL,
`bookname` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
`authors` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
`description` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
`photo` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
`publisher` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
`price` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
`category` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
`stock` INT(10) NULL DEFAULT NULL,
`borrowed` INT(10) NULL DEFAULT '0',
PRIMARY KEY (`bookid`) USING BTREE,
UNIQUE INDEX `isbn` (`isbn`) USING BTREE,
CONSTRAINT `CC1` CHECK ((`borrowed` <= `stock`))
)
COLLATE='utf8mb4_bin'
ENGINE=InnoDB
AUTO_INCREMENT=1;
CREATE TABLE `borrowed` (
`uid` INT(10) NULL DEFAULT NULL,
`isbn` BIGINT(19) NULL DEFAULT NULL,
`time` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP
)
COLLATE='utf8mb4_bin'
ENGINE=InnoDB;
```
下载
```shell
mkdir bookManager
cd bookManager
wget https://github.com/EduarteXD/BookManager/releases/download/beta/release.zip && unzip release.zip
rm -rf release.zip
```
在/bookManager目录下创建.env配置文件
```
SQL_HOST=localhost
DB_NAME=库名
DB_USER=用户名
DB_PWD=密码
```
运行
```shell
npm install
npm start
```
配置Nginx反向代理后台WebSocket连接
```ng
location ^~ /socket.io/
{
proxy_pass http://127.0.0.1:1333/socket.io/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
```
##### Hint
你可以在.env文件中添加PORT字段来更改服务端监听端口
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
数据库课程设计_-_简单的图书管理系统_BookManager.zip (39个子文件)
BookManager-main
LICENSE 34KB
client
src
alldone.svg 82KB
search.svg 129KB
scroll_behave.css 43B
hide_overflow_y.css 46B
nothing.svg 56KB
App.js 3KB
components
InventoryPage.js 6KB
SearchResultPage.js 11KB
LoginPage.js 5KB
TurnBackPage.js 6KB
MainPageFrame.js 5KB
LoadingPage.js 1KB
widgets
Navi.js 4KB
BreadcrumbsNavi.js 685B
BookCard.js 5KB
CartPage.js 10KB
AddToInventoryPage.js 9KB
BookData.js 13KB
FindBookPage.js 4KB
loading.svg 103KB
index.js 195B
functions
notification.js 1020B
resolveISBN.js 517B
throwBall.js 444B
package.json 1KB
public
logo512.png 9KB
manifest.json 491B
robots.txt 67B
logo192.png 5KB
favicon.ico 4KB
index.html 2KB
package-lock.json 1.12MB
.gitignore 310B
.gitignore 2KB
server
server.js 12KB
package.json 615B
package-lock.json 390KB
README.md 6KB
共 39 条
- 1
资源评论
好家伙VCC
- 粉丝: 1816
- 资源: 9088
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功