# 解班客 - 宠物认领平台

一个基于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年* 📅