# 结伴客 - 宠物认领平台

一个基于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/
├── README.md                    # 项目入口文档
├── docs/                        # 项目文档目录
│   ├── 整个项目需求文档.md        # 项目整体需求
│   ├── 官网需求文档.md           # 官网需求
│   ├── 后端管理需求文档.md        # 后端管理需求
│   ├── 管理后台需求文档.md        # 管理后台需求
│   ├── 小程序app需求文档.md       # 小程序需求
│   ├── 整个项目的架构文档.md      # 项目整体架构
│   ├── 后端架构文档.md           # 后端架构
│   ├── 小程序架构文档.md         # 小程序架构
│   ├── 管理后台架构文档.md        # 管理后台架构
│   ├── 数据库设计文档.md         # 数据库设计
│   ├── 管理后台接口设计文档.md    # 管理后台接口
│   ├── 小程序app接口设计文档.md   # 小程序接口
│   ├── 后端开发文档.md           # 后端开发指南
│   ├── 小程序app开发文档.md      # 小程序开发指南
│   ├── 管理后台开发文档.md       # 管理后台开发指南
│   ├── 后端管理开发文档.md       # 后端管理开发指南
│   ├── 测试文档.md              # 测试策略和规范
│   ├── 部署文档.md              # 部署指南
│   ├── 运维文档.md              # 运维手册
│   ├── 安全文档.md              # 安全规范
│   └── 用户手册文档.md          # 用户操作手册
├── admin-system/               # 管理后台目录
├── mini-program/               # 小程序app目录
├── backend/                    # 后端服务目录
├── website/                    # 官网目录
└── scripts/                    # 脚本目录
    ├── database/               # 数据库脚本
    ├── deploy/                 # 部署脚本
    ├── test/                   # 测试脚本
    └── ops/                    # 运维脚本
```

## 📚 文档导航

### 需求文档
- [整个项目需求文档](./docs/整个项目需求文档.md) - 项目整体需求和功能规划
- [官网需求文档](./docs/官网需求文档.md) - 官网功能需求
- [后端管理需求文档](./docs/后端管理需求文档.md) - 后端管理系统需求
- [管理后台需求文档](./docs/管理后台需求文档.md) - 管理后台功能需求
- [小程序app需求文档](./docs/小程序app需求文档.md) - 小程序功能需求

### 架构文档
- [整个项目的架构文档](./docs/整个项目的架构文档.md) - 项目整体架构设计
- [后端架构文档](./docs/后端架构文档.md) - 后端服务架构
- [小程序架构文档](./docs/小程序架构文档.md) - 小程序架构设计
- [管理后台架构文档](./docs/管理后台架构文档.md) - 管理后台架构

### 详细设计文档
- [数据库设计文档](./docs/数据库设计文档.md) - 数据库表结构和关系设计
- [管理后台接口设计文档](./docs/管理后台接口设计文档.md) - 管理后台API接口
- [小程序app接口设计文档](./docs/小程序app接口设计文档.md) - 小程序API接口

### 开发文档
- [后端开发文档](./docs/后端开发文档.md) - 后端开发指南和任务计划
- [小程序app开发文档](./docs/小程序app开发文档.md) - 小程序开发指南和任务计划
- [管理后台开发文档](./docs/管理后台开发文档.md) - 管理后台开发指南和任务计划
- [后端管理开发文档](./docs/后端管理开发文档.md) - 后端管理开发指南和任务计划

### 运维文档
- [测试文档](./docs/测试文档.md) - 测试策略、用例和自动化测试
- [部署文档](./docs/部署文档.md) - 环境部署和配置指南
- [运维文档](./docs/运维文档.md) - 系统监控、维护和故障处理
- [安全文档](./docs/安全文档.md) - 安全策略和防护措施
- [用户手册文档](./docs/用户手册文档.md) - 用户操作指南

## 🚀 快速开始

### 环境要求
- Node.js 18+
- MySQL 8.0+
- Redis 6.0+
- Docker & Docker Compose (可选)

### 本地开发

1. **克隆项目**
```bash
git clone https://github.com/your-org/jiebanke.git
cd jiebanke
```

2. **安装依赖**
```bash
# 后端服务
cd backend
npm install

# 管理后台
cd ../admin-system
npm install

# 小程序
cd ../mini-program
npm install
```

3. **配置环境**
```bash
# 复制环境配置文件
cp backend/.env.example backend/.env
cp admin-system/.env.example admin-system/.env
```

4. **启动服务**
```bash
# 启动后端服务
cd backend
npm run dev

# 启动管理后台
cd admin-system
npm run dev

# 启动小程序开发工具
cd mini-program
npm run dev
```

### Docker 部署

```bash
# 构建并启动所有服务
docker-compose up -d

# 查看服务状态
docker-compose ps

# 查看日志
docker-compose logs -f
```

## 📋 开发规范

- **代码规范**: 遵循 ESLint + Prettier 配置
- **提交规范**: 使用 Conventional Commits 格式
- **分支策略**: Git Flow 工作流
- **测试要求**: 单元测试覆盖率 ≥ 80%
- **文档更新**: 代码变更需同步更新文档

## 🤝 贡献指南

1. Fork 项目
2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 创建 Pull Request

## 📄 许可证

本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情

## 📞 联系我们

- 项目维护者: [团队名称]
- 邮箱: contact@jiebanke.com
- 项目地址: https://github.com/your-org/jiebanke
- 文档地址: https://docs.jiebanke.com

---

**注意**: 详细的开发、部署和使用说明请参考 `docs/` 目录下的相关文档。