# Foodie - UberEats Clone 多餐厅外卖配送系统
## 项目概述
Foodie 是一个功能完整的多餐厅外卖配送平台,类似于 UberEats。该系统包含完整的用户端应用、餐厅管理后台、配送员应用和管理员面板,支持跨平台部署(iOS/Android)。
**版本**: V8.10
**架构**: 多角色外卖配送生态系统
## 主要功能
### 用户端应用 (Customer App)
- **用户认证**: 手机号/邮箱登录、OTP验证、Google/Apple登录
- **餐厅浏览**: 按分类、位置、评分筛选餐厅
- **菜单管理**: 浏览菜品、添加到购物车、自定义选项
- **订单管理**: 下单、实时订单追踪、订单历史
- **支付系统**: 多支付网关支持(Stripe、Razorpay、PayPal、Paytm等)
- **地址管理**: 多地址保存、地图定位
- **堂食预订**: 餐桌预订功能
- **优惠券**: 优惠券应用、现金返还
- **聊天系统**: 与餐厅/配送员实时聊天(支持音视频)
- **评价系统**: 餐厅和菜品评分评价
- **礼品卡**: 购买和兑换礼品卡
- **钱包功能**: 电子钱包充值和支付
- **通知**: 推送通知、订单状态更新
### 餐厅端应用 (Restaurant App)
- **餐厅管理**: 餐厅信息设置、营业时间
- **菜单管理**: 添加/编辑菜品、分类管理
- **订单处理**: 接单、拒单、订单状态更新
- **员工管理**: 员工角色和权限设置
- **广告管理**: 推广活动创建
- **数据统计**: 销售报表、订单统计
- **堂食管理**: 预订管理、桌位设置
### 配送员应用 (Driver App)
- **订单接收**: 实时订单推送
- **导航功能**: 内置地图导航
- **收入管理**: 收入统计、提现
- **状态更新**: 取货、配送中、已送达
### 管理后台 (Admin Panel)
- **仪表盘**: 实时数据概览
- **用户管理**: 用户列表、封禁管理
- **餐厅管理**: 餐厅审核、分类管理
- **配送员管理**: 配送员审核、 payout管理
- **订单管理**: 订单监控、争议处理
- **财务管理**: 支付网关配置、提现管理
- **营销工具**: 优惠券、广告管理
- **系统设置**: 多语言、货币、通知模板
## 技术栈
### 移动端应用
- **框架**: Flutter 3.4.3+
- **状态管理**: GetX / Provider
- **后端服务**: Firebase (Firestore, Auth, Storage, Messaging)
- **地图服务**: Google Maps Flutter
- **支付集成**: Stripe、Razorpay、PayPal、Paytm
- **推送通知**: Firebase Cloud Messaging
- **本地存储**: SharedPreferences、SQFlite
### 管理后台
- **框架**: Laravel 10.x (PHP 8.1+)
- **前端**: Bootstrap + Material Design
- **数据库**: MySQL
- **缓存**: Redis / File
- **队列**: Database Queue
- **支付网关**: Stripe、Razorpay、PayPal、Braintree、Paytm
- **Firebase集成**: kreait/firebase-php
- **AI集成**: OpenAI API
### 第三方服务
- **Firebase**: 实时数据库、认证、存储、推送
- **Google Maps**: 地图和位置服务
- **OneSignal**: 推送通知(可选)
- **AWS S3**: 文件存储(可选)
## 文件结构
```
Foodie_V8.10_Source_Code/
├── Admin Panel - Restaurant Panel - Website Panel - Landing Panel.zip
│ └── Admin Panel/ # Laravel管理后台
│ ├── app/
│ │ ├── Console/ # 定时任务
│ │ ├── Helpers/ # 辅助函数
│ │ ├── Http/
│ │ │ └── Controllers/ # 控制器
│ │ └── Models/ # 数据模型
│ ├── config/ # 配置文件
│ ├── database/ # 数据库迁移和种子
│ ├── Modules/ # 模块化功能
│ ├── resources/
│ │ └── views/ # Blade模板
│ └── routes/ # 路由定义
├── Applications.zip
│ └── foodie-8.10/
│ ├── customer/ # 用户端Flutter应用
│ ├── restaurant/ # 餐厅端Flutter应用
│ └── driver/ # 配送员Flutter应用
├── Documentation.zip # 完整文档
├── Firebase Import Export Collections.zip
├── Firebase Indexing.zip
├── Firestore Demo Authentication User Import.zip
└── Order Tracking Firebase Function.zip
```
## 安装说明
### 管理后台安装
1. **环境要求**
- PHP 8.1+
- MySQL 5.7+
- Composer
- Node.js & NPM
2. **安装步骤**
```bash
# 解压并进入目录
cd "Admin Panel"
# 安装依赖
composer install
npm install
# 环境配置
cp .env.example .env
php artisan key:generate
# 数据库配置
# 编辑 .env 文件设置数据库连接
# 运行迁移
php artisan migrate
php artisan db:seed
# 创建存储链接
php artisan storage:link
# 编译前端资源
npm run build
```
3. **Firebase配置**
- 在Firebase控制台创建项目
- 下载服务账号密钥
- 配置到 `.env` 文件
- 导入Firestore集合结构
### 移动应用配置
1. **Flutter环境**
- Flutter SDK 3.4.3+
- Dart SDK
- Android Studio / Xcode
2. **项目配置**
```bash
# 进入对应应用目录
cd customer # 或 restaurant / driver
# 安装依赖
flutter pub get
# 配置Firebase
# - 下载 google-services.json (Android)
# - 下载 GoogleService-Info.plist (iOS)
# - 放置到对应平台目录
# 配置API端点
# 编辑 lib/constant/constant.dart
```
3. **构建应用**
```bash
# Android
flutter build apk --release
flutter build appbundle --release
# iOS
flutter build ios --release
```
## 亮点特色
### 技术亮点
1. **实时同步**: 基于Firestore的实时数据同步,订单状态即时更新
2. **多支付网关**: 支持15+种支付方式,覆盖全球市场
3. **模块化架构**: Laravel后台采用模块化设计,易于扩展
4. **响应式设计**: 管理后台适配桌面和移动端
5. **多语言支持**: 内置国际化支持,可添加任意语言
### 业务亮点
1. **多角色系统**: 完整的用户-餐厅-配送员-管理员生态系统
2. **堂食+外卖**: 支持堂食预订和外卖配送双模式
3. **营销工具**: 优惠券、现金返还、礼品卡、广告系统
4. **聊天系统**: 内置音视频通话和实时聊天
5. **订单追踪**: 实时GPS追踪配送进度
... (content truncated)