Skip to content

cweaty/Library-Management-System-Basic-Edition

Repository files navigation

Library Management System - Basic Edition

本项目是 AI-Library-Management-System基础版,提供了图书馆管理系统的核心功能框架。最终完整版由团队协作完成,详见上方链接。

项目简介

一个前后端分离的图书馆管理系统,覆盖图书检索、借阅归还、预约管理、评论评分、数据统计、AI 智能助手等核心功能,支持管理员与读者两种角色。

技术栈

前端

技术 说明
Vue 3 组件化开发,Composition API
Vite 构建工具,快速开发与打包
Element Plus UI 组件库(表格、表单、弹窗等)
Vue Router 4 路由管理与权限守卫
Pinia 状态管理(登录态、用户信息)
Axios HTTP 请求封装与拦截器
ECharts 数据可视化(统计图表)
marked + highlight.js + DOMPurify AI 回答的 Markdown 渲染与安全净化

后端

技术 说明
Spring Boot 2.7 REST API 与基础运行框架
MyBatis-Plus ORM 框架,简化 CRUD
JWT (jjwt) 登录鉴权与令牌管理
MySQL 8.x 业务数据存储
HikariCP 数据库连接池
Spring Validation 参数校验
Apache POI Excel 导入导出
Hutool 通用工具类库
Lombok 简化实体类代码

开发环境

环境 版本要求
JDK 17+
Node.js 18+
Maven 3.8+
MySQL 8.0+

技术亮点

  • JWT 无状态鉴权:基于 JWT 实现登录认证,支持角色权限校验(管理员/普通用户),接口级访问控制
  • AI 智能助手:集成 OpenAI 兼容 API,支持 SSE 流式对话、多模型切换、推理链展示(DeepSeek R1/Qwen)
  • 响应式设计:管理端与用户端均适配桌面和移动端,移动端侧边栏自动折叠
  • 统一响应规范:全接口遵循 {code, message, data} 格式,前端拦截器统一处理错误码
  • 数据可视化:管理端统计面板支持 7 天趋势图、热门图书排行、分类占比等图表
  • 业务闭环:借阅(借/续/还)、预约(预约/取消/完成)、评论(评分/点赞)形成完整业务链路

项目结构

Library-Management-System-Basic-Edition/
├── library-management/                # 前端项目(Vue 3)
│   ├── src/
│   │   ├── views/
│   │   │   ├── admin/                 # 管理员页面(图书管理、借阅管理、统计等)
│   │   │   ├── user/                  # 用户页面(图书检索、借阅、预约、AI助手等)
│   │   │   ├── Login.vue              # 登录页
│   │   │   ├── AdminLayout.vue        # 管理端布局
│   │   │   └── Layout.vue             # 用户端布局
│   │   ├── api/                       # 接口模块(auth, books, borrow, aiAssistant 等)
│   │   ├── router/                    # 路由配置与权限守卫
│   │   ├── store/                     # Pinia 状态管理
│   │   └── utils/                     # 请求封装与鉴权工具
│   ├── vite.config.js                 # Vite 配置(代理 /api → localhost:8080)
│   └── package.json
├── library-management-backend/        # 后端项目(Spring Boot)
│   ├── src/main/java/com/library/library/
│   │   ├── controller/                # 控制层(Auth, Book, Borrow, Reservation 等)
│   │   ├── service/impl/              # 业务实现层
│   │   ├── mapper/                    # 数据访问层(MyBatis-Plus Mapper)
│   │   ├── entity/                    # 实体模型
│   │   ├── dto/                       # 数据传输对象
│   │   ├── vo/                        # 视图对象
│   │   ├── config/                    # 配置(JWT、拦截器、CORS)
│   │   ├── exception/                 # 全局异常处理
│   │   └── utils/                     # 工具类
│   └── src/main/resources/
│       └── application.yml            # 应用配置
├── library_db.sql                     # 数据库初始化脚本(含测试数据)
├── PRObook.md                         # 需求分析文档
└── images/                            # 项目图片资源

AI 智能助手实现

AI 助手是本项目的亮点功能之一,采用前端直连方式调用大语言模型 API:

架构设计

  • 前端通过 fetch API 直连 OpenAI 兼容接口,无需后端中转
  • 支持配置任意兼容 OpenAI 格式的 API 端点和模型

核心能力

  • SSE 流式对话:基于 Server-Sent Events 实现逐字输出,实时展示 AI 回答
  • 多模型支持:用户可自由配置 API Key、Base URL、模型 ID,兼容主流大模型服务
  • 推理链展示:支持 DeepSeek R1、Qwen 等推理模型的 reasoning_content 字段,可视化展示思考过程
  • 会话管理:支持多轮对话、历史会话保存与切换、会话删除
  • Markdown 渲染:AI 回答通过 marked 解析 + highlight.js 代码高亮 + DOMPurify 安全净化
  • 连接检测:内置 API 连通性测试功能,配置后可一键验证

快速开始

1. 初始化数据库

mysql -u root -p < library_db.sql

测试账号:

  • 管理员:admin / admin123
  • 普通用户:user001 / 123456

2. 启动后端

cd library-management-backend
# 修改 application.yml 中的数据库连接信息
mvn spring-boot:run

后端默认运行在 http://localhost:8080

3. 启动前端

cd library-management
npm install
npm run dev

前端默认运行在 http://localhost:5173,已配置代理将 /api 请求转发到后端。

数据库设计

系统包含 8 张核心业务表:

表名 说明
user 用户表(管理员/读者)
category 图书分类表
book 图书信息表
borrow_record 借阅记录表
reservation 预约记录表
book_comment 评论评分表
comment_like 评论点赞表
operation_log 操作日志表

致谢

本项目使用 OpenCode AI 编程工具及免费模型开发。项目的基础功能由本人独立完成,后续的维护、功能完善及新特性开发由 @Rue1218@2263648274 两位协作者共同推进,形成了最终完整版:AI-Library-Management-System。感谢两位的辛勤付出与协作!

开源协议

本项目仅供学习交流使用。

About

基于 Vue 3 + Spring Boot 的前后端分离图书馆管理系统,涵盖图书借阅、预约、评论、统计及 AI 智能助手,是 AI-Library-Management-System 的基础版

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors