# library-management-system **Repository Path**: Marsfactory/library-management-system ## Basic Information - **Project Name**: library-management-system - **Description**: 图书管理借阅系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2025-11-11 - **Last Updated**: 2025-12-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 📚 图书管理借阅系统 一个功能完善、界面精美的前后端分离图书管理系统,采用 Spring Boot 3 + Vue 3 技术栈开发。 ## ✨ 项目特点 - 🎨 **精美UI**: 采用 Naive UI 组件库,主题色 #18A058 - 🔐 **权限控制**: 基于 Sa-Token 的双角色权限管理 - 💾 **数据缓存**: Redis 缓存热门图书,提升性能 - 📱 **响应式设计**: 完美适配各种屏幕尺寸 - 🚀 **技术先进**: Spring Boot 3 + Vue 3 最新技术栈 ## 🛠️ 技术栈 ### 后端 - **Spring Boot 3.2.0** - 核心框架 - **MyBatis-Plus 3.5.5** - ORM框架 - **Sa-Token 1.37.0** - 权限认证 - **Redis** - 缓存中间件 - **MySQL** - 数据库 - **Lombok** - 简化代码 - **Springdoc OpenAPI** - API文档 ### 前端 - **Vue 3** - 渐进式框架 - **Vite** - 构建工具 - **Naive UI** - UI组件库 - **Pinia** - 状态管理 - **Axios** - HTTP客户端 - **Vue Router** - 路由管理 - **vicons/ionicons5** - 图标库 ## 📋 功能模块 ### 1. 用户模块 - ✅ 用户登录/注册 - ✅ 双角色权限(管理员/普通用户) - ✅ 个人信息管理 - ✅ 密码修改 ### 2. 图书管理 - ✅ 图书增删改查 - ✅ 图书分类管理(支持多级) - ✅ 图书搜索(书名/作者/分类) - ✅ 库存实时更新 - ✅ 热门图书排行(Redis缓存) ### 3. 借阅管理 - ✅ 图书借阅/归还 - ✅ 图书续借(最多2次) - ✅ 借阅记录查询 - ✅ 逾期检测与罚金计算 - ✅ 借阅限制(每人最多5本) ### 4. 仪表盘 - ✅ 数据统计展示 - ✅ 热门图书排行榜 - ✅ 最近借阅记录 ### 5. 系统管理(仅管理员) - ✅ 用户管理 - ✅ 分类管理 - ✅ 借阅记录管理 ## 📁 项目结构 ``` library_management_system/ ├── backend/ # 后端项目 │ ├── src/main/java/com/library/ │ │ ├── controller/ # 控制器层 │ │ ├── service/ # 服务层 │ │ ├── mapper/ # 数据访问层 │ │ ├── entity/ # 实体类 │ │ ├── dto/ # 数据传输对象 │ │ ├── config/ # 配置类 │ │ ├── exception/ # 异常处理 │ │ ├── common/ # 公共类 │ │ └── task/ # 定时任务 │ └── src/main/resources/ │ ├── application.yml # 配置文件 │ ├── mapper/ # MyBatis XML │ └── database/schema.sql # 数据库脚本 │ └── frontend/ # 前端项目 ├── src/ │ ├── views/ # 页面组件 │ ├── layouts/ # 布局组件 │ ├── api/ # API接口 │ ├── stores/ # 状态管理 │ ├── router/ # 路由配置 │ └── utils/ # 工具函数 ├── package.json └── vite.config.js ``` ## 🚀 快速开始 ### 环境要求 - JDK 17+ - Node.js 16+ - MySQL 8.0+ - Redis 5.0+ - Maven 3.6+ ### 后端启动 1. **创建数据库** ```bash mysql -u root -p < backend/src/main/resources/database/schema.sql ``` 2. **修改配置** 编辑 `backend/src/main/resources/application.yml`,修改数据库和Redis连接信息: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/library_management username: root password: 你的密码 redis: host: localhost port: 6379 password: # 如果有密码请填写 ``` 3. **启动后端** ```bash cd backend mvn clean install mvn spring-boot:run ``` 后端服务将在 `http://localhost:8080` 启动 API文档地址: `http://localhost:8080/api/swagger-ui.html` ### 前端启动 1. **安装依赖** ```bash cd frontend npm install ``` 2. **启动开发服务器** ```bash npm run dev ``` 前端服务将在 `http://localhost:3000` 启动 3. **构建生产版本** ```bash npm run build ``` ## 👤 默认账号 系统内置了两个测试账号: | 用户名 | 密码 | 角色 | 说明 | |--------|------|------|------| | admin | admin123 | 管理员 | 拥有所有权限 | | user | user123 | 普通用户 | 只能借阅图书 | > ⚠️ 注意:密码在数据库中已使用 BCrypt 加密存储 ## 📊 数据库设计 ### 主要数据表 - `user` - 用户表 - `book` - 图书表 - `category` - 分类表 - `borrow_record` - 借阅记录表 - `operation_log` - 操作日志表 详见:`backend/src/main/resources/database/schema.sql` ## 🔧 配置说明 ### 系统参数配置 在 `application.yml` 中可以自定义以下参数: ```yaml library: max-borrow-days: 30 # 最大借阅天数 max-borrow-count: 5 # 每人最多借书数量 overdue-fine-per-day: 0.5 # 逾期罚金(元/天) upload-path: ./uploads/ # 文件上传路径 ``` ## 📝 API文档 后端集成了 Swagger3 文档,启动后访问: ``` http://localhost:8080/api/swagger-ui.html ``` ## 🎨 主题定制 前端使用主题色 `#18A058`,可在 `frontend/src/App.vue` 中修改: ```javascript const themeOverrides = { common: { primaryColor: '#18A058', // 主题色 primaryColorHover: '#36ad6a', primaryColorPressed: '#0c7a43', } } ``` ## 📸 系统截图 ### 登录页面 - 支持登录和注册 - 表单验证 ### 仪表盘 - 数据统计卡片 - 热门图书排行 - 最近借阅记录 ### 图书管理 - 图书列表展示 - 搜索和筛选 - 图书借阅 ### 借阅管理 - 借阅记录查询 - 续借和归还功能 - 逾期提醒 ## 🔐 权限说明 ### 管理员 (ADMIN) - ✅ 所有普通用户权限 - ✅ 图书增删改 - ✅ 分类管理 - ✅ 用户管理 - ✅ 查看所有借阅记录 ### 普通用户 (USER) - ✅ 浏览图书 - ✅ 借阅/归还图书 - ✅ 查看个人借阅记录 - ✅ 个人信息管理 ## 📅 定时任务 系统包含以下定时任务: - **逾期检查**: 每天凌晨2点自动检查逾期记录并更新状态 ## 🤝 贡献指南 欢迎提交 Issue 和 Pull Request! ## 📄 开源协议 本项目采用 MIT 协议开源 ## 📧 联系方式 如有问题或建议,欢迎联系: - Email: library@example.com - GitHub: [项目地址] ## 🙏 鸣谢 感谢以下开源项目: - [Spring Boot](https://spring.io/projects/spring-boot) - [Vue.js](https://vuejs.org/) - [Naive UI](https://www.naiveui.com/) - [Sa-Token](https://sa-token.cc/) - [MyBatis-Plus](https://baomidou.com/) --- ⭐ 如果这个项目对你有帮助,请给一个Star支持一下!