# Library Management System **Repository Path**: yaoxingjin/library-management-system ## Basic Information - **Project Name**: Library Management System - **Description**: 智能化的图书管理系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-07-31 - **Last Updated**: 2026-09-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智慧图书管理系统 前后端分离的图书管理系统:管理后台 + 读者门户,覆盖借还流通、预约荐购、个人中心,并支持本地 **Ollama** 驱动的 **AI 馆员**(流式对话荐书 / 答规则)。 仓库地址:[Gitee · library-management-system](https://gitee.com/yaoxingjin/library-management-system) ## 技术栈 | 层级 | 技术 | |------|------| | 前端 | Vue 3 + TypeScript + Vite + Naive UI + Pinia + Vue Router + Axios + ECharts | | 后端 | Spring Boot 3.2 + Java 17 + MyBatis-Plus + Spring Security + JWT + MySQL 8 | | AI(可选) | 本地 Ollama(OpenAI 兼容接口,默认模型 `qwen3:8b`) | | 构建 | Maven / npm | ## 项目结构 ``` Library Management System/ ├── sql/ # 建库脚本与增量升级 ├── docs/prd/ # 功能 PRD(个人中心、AI 馆员等) ├── backend/ # Spring Boot 后端(:8080) │ └── src/main/java/com/library/ │ ├── controller/ # 管理端 + /api/portal 读者端 │ ├── service/ # 业务;含 ollama/ AI 流式客户端 │ ├── security/ # JWT、角色权限 │ └── ... ├── frontend/ # Vue3 前端(:5173) │ └── src/ │ ├── views/user/ # 读者中心 │ ├── views/ # 管理后台页面 │ ├── components/ # 含 AiLibrarianDrawer │ └── ... └── README.md ``` ## 环境要求 - JDK 17+ - Maven 3.8+ - Node.js 18+ - MySQL 8.0+ - (可选)[Ollama](https://ollama.com/) + 模型 `qwen3:8b`(AI 馆员) ## 快速开始 ### 1. 初始化数据库 ```bash mysql -u root -p < sql/library_system.sql ``` 请按本机修改 `backend/src/main/resources/application.yml` 中的数据源账号密码(默认 `root` / `123456`)。 **已有旧库**时,按需执行增量脚本(建议按依赖顺序): ```bash mysql -u root -p library_system < sql/upgrade_librarian_role.sql mysql -u root -p library_system < sql/upgrade_admin_user_profile.sql mysql -u root -p library_system < sql/upgrade_reader_password.sql mysql -u root -p library_system < sql/upgrade_circulation_p0.sql mysql -u root -p library_system < sql/upgrade_circulation_p1.sql mysql -u root -p library_system < sql/upgrade_circulation_p2.sql mysql -u root -p library_system < sql/upgrade_book_covers.sql mysql -u root -p library_system < sql/upgrade_book_favorite.sql mysql -u root -p library_system < sql/upgrade_borrow_snapshot.sql mysql -u root -p library_system < sql/upgrade_purchase_cover.sql mysql -u root -p library_system < sql/upgrade_reader_profile_p2.sql ``` 全新执行 `library_system.sql` 时,一般已包含较新表结构,增量脚本主要用于历史库升级。 ### 2. 启动后端 ```bash cd backend mvn spring-boot:run ``` 或: ```bash mvn clean package -DskipTests java -jar target/library-system-1.0.0.jar ``` 后端:http://localhost:8080 ### 3. 启动前端 ```bash cd frontend npm install npm run dev ``` 前端:http://localhost:5173 (开发态通过 Vite 代理转发 `/api`、`/uploads`,AI 流式接口已单独做 SSE 透传) ### 4.(可选)AI 馆员 1. 安装并启动 Ollama 2. 拉取模型:`ollama pull qwen3:8b` 3. 确认 `application.yml` 中: ```yaml ai: enabled: true base-url: http://localhost:11434/v1 model: qwen3:8b ``` 未启动 Ollama 时,找书会走馆藏检索降级,不影响其它业务。 ## 默认账号 | 角色 | 用户名 | 密码 | 入口 | |------|--------|------|------| | 系统管理员 | admin | admin123 | http://localhost:5173/admin/login | | 图书管理员 | librarian | librarian123 | http://localhost:5173/admin/login | | 读者 | zhangsan | 123456 | http://localhost:5173/user/login | 权限简述: - **ADMIN**:全业务 + 流通规则 + 后台用户 + 操作日志 - **LIBRARIAN**:图书 / 分类 / 读者 / 借阅 / 预约 / 统计等,不含系统级账号与规则配置 - **READER**:注册登录、浏览借还、预约、消息、荐购、个人中心、AI 馆员 读者登录支持 **记住我**(勾选后持久登录并回填用户名;不勾选则仅当前浏览器会话)。 ## 功能模块 ### 管理后台 1. 登录(JWT,ADMIN / LIBRARIAN) 2. 数据驾驶舱(统计卡片 + ECharts) 3. 图书 / 分类 / 读者管理 4. 借阅管理、流通台扫码借还、单册管理 5. 预约管理、荐购审核、报表导出与催还 6. 流通规则、用户管理(仅 ADMIN)、个人设置与操作日志 ### 读者中心 1. 注册 / 登录(记住我) 2. 图书浏览、详情、评价、相关推荐、本地浏览足迹 3. 在线借阅 / 续借 / 归还、预约排队与到书取书 4. 我的借阅、预约、消息、荐购 5. **个人中心**:概览、借阅履历与统计、收藏、评价、头像与隐私/提醒偏好 6. **AI 馆员**:自然语言找书、借阅规则问答、按偏好荐书(SSE 流式 + 思考耗时反馈) 更细的产品说明见: - `docs/prd/20260731-reader-personal-center.md` - `docs/prd/20260731-ai-librarian.md` ## 接口摘录 ### 管理端 | 方法 | 路径 | 说明 | |------|------|------| | POST | `/api/admin/login` | 管理员登录 | | GET | `/api/dashboard/statistics` | 驾驶舱统计 | | GET | `/api/book/page` | 图书分页 | | GET/PUT | `/api/borrow/rule` | 流通规则(更新仅 ADMIN) | ### 读者端 | 方法 | 路径 | 说明 | |------|------|------| | POST | `/api/portal/auth/register` | 注册 | | POST | `/api/portal/auth/login` | 登录 | | GET | `/api/portal/book/page` | 浏览图书 | | POST | `/api/portal/borrow/{bookId}` | 借阅 | | GET | `/api/portal/profile/overview` | 个人中心概览 | | POST | `/api/portal/ai/chat` | AI 馆员(非流式) | | POST | `/api/portal/ai/chat/stream` | AI 馆员(SSE 流式) | ## 统一返回格式 ```json { "code": 200, "message": "success", "data": {} } ``` ## 学习说明 本仓库适合作为全栈练手 / 课设扩展项目,可重点关注: - 双端鉴权与角色隔离(ADMIN / LIBRARIAN / READER) - 借还流通规则与预约队列 - SSE 流式输出、Vite 代理透传、Spring Security 异步场景 - 本地大模型接入与检索降级 欢迎在 Gitee 上 Star / Fork,按自己的学习目标继续扩展(测试、Docker、缓存等)。