# 宠物领养系统 ## 项目简介 宠物领养系统是一个前后端分离的Web应用,旨在搭建一个连接宠物与领养者的平台,帮助流浪动物找到温暖的家。系统提供宠物信息展示、领养申请、用户互动、内容管理等功能,为宠物救助和领养提供便捷的数字化解决方案。 ## 系统架构 系统采用前后端分离的开发架构: - **前端**:负责页面开发和用户交互 - **后端**:负责业务逻辑处理和数据管理 - **数据库**:专注于数据存储 ## 技术栈 ### 后端技术 - **框架**:Spring Boot 2.2.4.RELEASE - **ORM框架**:MyBatis Plus 3.5.3.1 - **数据库**:MySQL 5.7.43 - **开发语言**:Java 8 - **构建工具**:Maven 3.9.9 - **其他依赖**:Lombok、FastJSON、EasyExcel等 ### 前端技术 - **框架**:Vue 2.6.11 - **UI组件库**:Element UI 2.15.14 - **路由**:Vue Router 3.2.0 - **HTTP客户端**:Axios 0.21.1 - **编辑器**:WangEditor、Toast UI Editor - **其他库**:ECharts、CryptoJS、Lodash等 ## 功能模块 ### 1. 用户模块 - 用户注册、登录 - 用户信息管理(个人资料、头像等) - 角色管理(普通用户、管理员) ### 2. 宠物信息模块 - 宠物类别管理 - 宠物信息发布和管理 - 宠物详情展示 - 宠物推荐(基于协同过滤算法) ### 3. 领养订单模块 - 领养申请提交 - 订单状态管理(申请中、已审核、审核未通过、已完成) - 收货地址管理 - 订单查询和管理 ### 4. 互动行为模块 - 宠物点赞和收藏 - 宠物评论和回复 - 评论点赞功能 ### 5. 内容管理模块 - 宠物经验帖子发布和管理 - 帖子审核功能 - 帖子推荐(基于协同过滤算法) - 帖子流量数据统计 ### 6. 通知反馈模块 - 系统公告管理 - 建议与反馈提交 - 反馈管理(管理员) ## 开发环境要求 ### 开发工具 - **前端**:Visual Studio Code - **后端**:IntelliJ IDEA 旗舰版(推荐2024.3.5或更高版本) ### 运行环境 - **JDK**:1.8 - **MySQL**:5.7.43(或8.x系列) - **Maven**:3.9.9(高版本Maven需配合高版本IDEA) - **Node.js**:推荐16.14.0(20以下版本) ## 项目目录结构 ``` pet-adopt-system/ ├── source code/ # 源代码目录 │ ├── api/ # 后端API代码 │ │ ├── src/ # 源代码 │ │ ├── pom.xml # Maven配置文件 │ │ └── target/ # 编译输出目录 │ ├── view/ # 前端代码 │ │ ├── src/ # 源代码 │ │ ├── public/ # 静态资源 │ │ ├── package.json # NPM配置文件 │ │ └── dist/ # 构建输出目录 │ └── sql/ # 数据库脚本 │ └── pet_adopt_system.sql # 数据库初始化脚本 ├── scaffold/ # 脚手架代码 ├── notes/ # 项目文档和开发笔记 └── README.md # 项目说明文档 ``` ## 安装部署 ### 1. 环境准备 确保已安装以下软件: - JDK 1.8 - MySQL 5.7.43 - Maven 3.9.9 - Node.js 16.14.0 - IDE(IntelliJ IDEA和Visual Studio Code) ### 2. 数据库初始化 - 创建数据库:`pet_adopt_system` - 导入数据库脚本:`source code/sql/pet_adopt_system.sql` ### 3. 后端配置 - 修改后端配置文件中的数据库连接信息 - 使用Maven构建项目:`mvn clean install` - 运行Spring Boot应用 ### 4. 前端配置 - 安装依赖:`npm install` - 开发环境运行:`npm run dev` - 生产环境构建:`npm run build` ## 系统特点 1. **前后端分离架构**:便于团队协作和系统维护 2. **智能推荐**:基于协同过滤算法推荐宠物和经验帖子 3. **完整的领养流程**:从申请到审核的全流程管理 4. **丰富的互动功能**:点赞、收藏、评论等社交元素 5. **完善的权限管理**:区分普通用户和管理员权限 6. **实时定位**:基于高德地图的实时定位 ## 注意事项 - 数据库版本建议使用MySQL 5.7.43,避免版本兼容性问题 - Node.js版本建议使用20以下,以确保依赖包正常安装 - 高版本Maven需配合高版本IDEA使用 - 项目运行前请确保数据库服务已启动 ## 许可证 本项目仅供学习使用。