本项目是 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 助手是本项目的亮点功能之一,采用前端直连方式调用大语言模型 API:
架构设计:
- 前端通过
fetchAPI 直连 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 连通性测试功能,配置后可一键验证
mysql -u root -p < library_db.sql测试账号:
- 管理员:
admin/admin123 - 普通用户:
user001/123456
cd library-management-backend
# 修改 application.yml 中的数据库连接信息
mvn spring-boot:run后端默认运行在 http://localhost:8080
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。感谢两位的辛勤付出与协作!
本项目仅供学习交流使用。