# 解班客 - 宠物认领平台 一个基于Vue.js和Node.js的宠物认领平台,帮助流浪动物找到温暖的家。 ## 项目概述 解班客是一个专业的宠物认领平台,致力于为流浪动物提供一个温暖的归宿。平台通过现代化的Web技术,为用户提供便捷的宠物发布、搜索、认领服务,同时为管理员提供完善的后台管理功能。 ### 核心功能 - **用户系统**: 完整的用户注册、登录、个人信息管理 - **动物管理**: 动物信息发布、编辑、状态管理 - **认领流程**: 在线认领申请、审核、跟踪 - **地图定位**: 基于地理位置的动物搜索和展示 - **管理后台**: 用户管理、动物管理、数据统计、文件管理 - **消息通知**: 实时消息推送和邮件通知 - **数据统计**: 详细的业务数据分析和报表 ## 技术架构 ### 前端技术栈 - **框架**: Vue.js 3.x + Composition API - **UI组件**: Element Plus - **状态管理**: Pinia - **路由**: Vue Router 4 - **构建工具**: Vite - **HTTP客户端**: Axios - **样式**: SCSS + CSS Modules ### 后端技术栈 - **运行时**: Node.js 18+ - **框架**: Express.js - **数据库**: MySQL 8.0 - **缓存**: Redis 6.0 - **认证**: JWT + Passport - **文件处理**: Multer + Sharp - **日志**: Winston - **测试**: Jest + Supertest ### 基础设施 - **容器化**: Docker + Docker Compose - **反向代理**: Nginx - **进程管理**: PM2 - **监控**: Prometheus + Grafana - **日志收集**: ELK Stack - **CI/CD**: GitHub Actions ## 🗂️ 项目结构 ``` jiebanke/ ├── 📁 backend/ # 后端服务 (Node.js + Express) ├── 📁 admin-system/ # 后台管理系统 (Vue 3 + Element Plus) ├── 📁 website/ # 官方网站 (Vue 3) ├── 📁 mini-program/ # 微信小程序矩阵 (原生小程序) ├── 📁 docs/ # 项目文档 ├── 📁 scripts/ # 工具脚本 ├── 📁 test/ # 测试文件目录 └── 📄 README.md # 项目说明 (当前文件) ``` ## 🚀 快速开始 ### 环境要求 - Node.js 16.x+ - MySQL 8.0+ - npm 8.x+ ### 安装依赖 ```bash # 安装后端依赖 cd backend && npm install # 安装后台管理依赖 cd admin-system && npm install # 安装官网依赖 cd website && npm install # 安装小程序依赖 cd mini-program && npm install ``` ### 启动开发环境 ```bash # 启动后端服务 cd backend && npm run dev # 启动后台管理 (新终端) cd admin-system && npm run dev # 启动官方网站 (新终端) cd website && npm run dev ``` ## 📖 项目文档 所有详细文档位于 `docs/` 目录: ### 📖 快速导航 | 文档类型 | 文档名称 | 描述 | 适用人员 | |---------|---------|------|---------| | 🚀 快速开始 | [系统集成和部署文档](docs/系统集成和部署文档.md) | 环境搭建、部署流程 | 开发者、运维 | | 🔧 开发指南 | [前端开发文档](docs/前端开发文档.md) | 前端开发规范和指南 | 前端开发者 | | 🔧 开发指南 | [后端开发文档](docs/后端开发文档.md) | 后端开发规范和指南 | 后端开发者 | | 📋 API参考 | [API接口文档](docs/API接口文档.md) | 完整的API接口文档 | 全栈开发者 | | 🗄️ 数据设计 | [数据库设计文档](docs/数据库设计文档.md) | 数据库结构设计 | 后端开发者、DBA | | 👨‍💼 管理功能 | [管理员后台系统API文档](docs/管理员后台系统API文档.md) | 管理后台功能说明 | 管理员、开发者 | | 📁 文件系统 | [文件上传系统文档](docs/文件上传系统文档.md) | 文件上传和管理 | 全栈开发者 | | 🔍 监控运维 | [错误处理和日志系统文档](docs/错误处理和日志系统文档.md) | 错误处理和日志 | 开发者、运维 | | 🧪 质量保证 | [测试文档](docs/测试文档.md) | 测试策略、用例设计和质量保证 | 测试工程师、开发者 | | 🔒 安全管理 | [安全和权限管理文档](docs/安全和权限管理文档.md) | 安全策略、权限控制、安全防护措施 | 安全工程师、系统管理员 | | ⚡ 性能优化 | [性能优化文档](docs/性能优化文档.md) | 系统性能优化策略、监控方案和优化实践 | 性能工程师、运维工程师 | | 🚀 部署运维 | [部署和运维文档](docs/部署和运维文档.md) | 系统部署流程和运维管理方案 | 运维工程师、DevOps工程师 | | 📊 项目管理 | [项目开发进度报告](docs/项目开发进度报告.md) | 项目进度和规划 | 项目经理、开发者 | | 📝 开发规范 | [开发规范和最佳实践](docs/开发规范和最佳实践.md) | 代码规范和标准 | 全体开发者 | ### 核心文档 - 📄 [项目概述](docs/项目概述.md) - 项目背景、目标和整体介绍 - 📄 [系统架构文档](docs/系统架构文档.md) - 系统架构设计和技术栈 - 📄 [API接口文档](docs/API接口文档.md) - 完整的API接口说明 - 📄 [数据库设计文档](docs/数据库设计文档.md) - 数据库表结构和关系设计 - 📄 [开发指南](docs/开发指南.md) - 开发环境搭建和开发规范 - 📄 [部署指南](docs/部署指南.md) - 开发、测试、生产环境部署指南 ### 功能模块文档 | 文档名称 | 描述 | 链接 | |---------|------|------| | API接口文档 | 详细的API接口说明和使用示例 | [查看文档](./docs/API接口文档.md) | | 管理员后台文档 | 管理员功能和操作指南 | [查看文档](./docs/管理员后台文档.md) | | 用户认证系统文档 | 用户注册、登录、权限管理 | [查看文档](./docs/用户认证系统文档.md) | | 动物管理系统文档 | 动物信息管理和认领流程 | [查看文档](./docs/动物管理系统文档.md) | | 文件上传系统文档 | 文件上传、存储和管理 | [查看文档](./docs/文件上传系统文档.md) | | 数据库设计文档 | 数据库架构、表结构和关系设计 | [查看文档](./docs/数据库设计文档.md) | | 错误处理和日志系统文档 | 错误处理机制和日志记录 | [查看文档](./docs/错误处理和日志系统文档.md) | | 系统集成和部署文档 | 系统部署和运维指南 | [查看文档](./docs/系统集成和部署文档.md) | | 前端开发文档 | 前端技术架构、组件设计和开发规范 | [查看文档](./docs/前端开发文档.md) | #### 项目管理文档 - **[项目开发进度报告](docs/项目开发进度报告.md)** - 项目进度跟踪和里程碑规划 - **[开发规范和最佳实践](docs/开发规范和最佳实践.md)** - 团队开发规范和代码标准 - **[测试文档](docs/测试文档.md)** - 测试策略、用例设计和质量保证 ### 补充文档 - 📄 [变更日志](CHANGELOG.md) - 项目版本变更记录 - 📄 [贡献指南](docs/贡献指南.md) - 如何参与项目开发 - 📄 [常见问题](docs/常见问题.md) - 开发和使用中的常见问题解答 - 📄 [许可证](LICENSE.md) - 项目许可证信息 ## 🛠️ 开发工具 ### 脚本工具 项目提供了一些有用的开发脚本: ```bash # 数据库连接测试 cd backend && npm run test-db # API接口测试 cd backend && npm run test-api # 数据库初始化 cd backend && npm run db:reset # 部署脚本 (Linux/Mac) cd scripts && ./deploy.sh all # 部署脚本 (Windows PowerShell) cd scripts && .\deploy.ps1 all ``` ### 环境配置 复制环境变量模板并配置: ```bash # 后端环境配置 cp backend/.env.example backend/.env # 后台管理环境配置 cp admin-system/.env.example admin-system/.env ``` ## ☁️ 部署 项目支持多种部署方式: ### 自动部署脚本 在 `scripts/` 目录中提供了自动部署脚本,支持 Linux/Mac 和 Windows 系统: ```bash # Linux/Mac 部署所有模块 cd scripts && chmod +x deploy.sh && ./deploy.sh all # Windows PowerShell 部署所有模块 cd scripts && .\deploy.ps1 all ``` 支持的部署选项: - `all` - 部署所有模块 - `backend` - 部署后端服务 - `admin` - 部署后台管理系统 - `website` - 部署官方网站 - `mini-program` - 构建微信小程序 ### Docker 容器化部署 每个模块都提供了 Docker 配置文件,可以使用 docker-compose 进行部署: ```bash # 启动所有服务 docker-compose up -d # 启动指定服务 docker-compose up -d backend # 查看服务状态 docker-compose ps ``` ### 手动部署 每个模块也可以手动部署到服务器,具体说明请参考各模块目录中的 DEPLOYMENT.md 文件。 ## 🌐 访问地址 - **后端API**: https://webapi.jiebanke.com - **后台管理**: https://admin.jiebanke.com - **官方网站**: https://www.jiebanke.com - **小程序**: 使用微信开发者工具打开 `mini-program/` 目录 ## 📦 依赖管理 ### 主要技术栈 **后端**: - Node.js + Express.js - Sequelize ORM - JWT 认证 - MySQL 数据库 **前端**: - Vue 3 + TypeScript - Element Plus UI - Vite 构建工具 - Pinia 状态管理 **小程序**: - 微信原生小程序 - Vant Weapp UI - Uni-app 框架 ## 🔧 开发规范 ### 代码风格 - 使用 ESLint + Prettier 统一代码风格 - 遵循 Git Commit 消息规范 - 实行代码审查流程 ### 分支策略 - 采用 Git Flow 工作流 - 功能分支开发 - 发布分支管理 ## 🚀 部署说明 详细部署指南请参考 [DEPLOYMENT.md](docs/DEPLOYMENT.md),包含: - 开发环境部署 - 测试环境部署 - 生产环境部署 - 容器化部署 (Docker) - 安全配置指南 ## 📞 支持与维护 ### 开发团队 - 后端开发: backend@jiebanke.com - 前端开发: frontend@jiebanke.com - 小程序开发: miniprogram@jiebanke.com ### 运维支持 - 运维团队: ops@jiebanke.com - 紧急联系: +86-138-0013-8000 ## 📊 版本信息 - **当前版本**: v1.0.0 - **Node.js**: 16.20.2 - **Vue**: 3.3.4 - **MySQL**: 8.0.33 --- *最后更新: 2024年* 📅