# FoodBank - 多餐厅外卖订购管理系统
## 项目概述
FoodBank 是一个功能完整的多餐厅外卖订购和管理平台,提供端到端的解决方案,包括用户端应用、商家管理后台、配送员应用和Web管理后台。系统采用现代化的技术栈,支持多语言、多货币和多种支付方式。
**版本**: 2.2.7+
**定位**: 一体化多餐厅外卖管理解决方案
## 主要功能
### 用户端应用 (Customer App)
- **用户认证**: 邮箱/手机号注册登录、Google登录、Facebook登录
- **餐厅发现**: 按分类、位置、评分浏览餐厅
- **菜单浏览**: 详细菜品信息、图片、价格、选项
- **购物车管理**: 添加/删除商品、数量调整
- **订单管理**: 下单、订单追踪、历史订单
- **支付系统**: 多支付网关支持(Stripe、Razorpay、PayPal、Paystack等)
- **地址管理**: 多地址保存、GPS定位
- **实时追踪**: 订单状态实时更新、配送员位置追踪
- **评价系统**: 餐厅和菜品评分评论
- **优惠券**: 优惠码应用
- **推送通知**: Firebase推送通知
- **多语言**: 支持多种语言切换
### 商家端应用 (Merchant App)
- **订单管理**: 接收/拒绝订单、订单状态更新
- **菜单管理**: 添加/编辑菜品、分类管理
- **营业管理**: 营业状态控制、营业时间设置
- **收入统计**: 销售报表、收入统计
- **配送管理**: 分配配送员、配送状态跟踪
### 配送员应用 (Delivery App)
- **订单接收**: 新订单推送通知
- **导航功能**: 内置地图导航
- **状态更新**: 取货、配送中、已送达状态
- **收入管理**: 配送费统计
- **工作记录**: 配送历史记录
### Web管理后台
- **仪表盘**: 实时数据统计、图表展示
- **用户管理**: 客户列表、封禁管理
- **商家管理**: 餐厅审核、分类管理、菜品审核
- **配送员管理**: 配送员审核、工作状态
- **订单管理**: 订单监控、异常处理
- **财务管理**: 佣金报表、提现管理
- **营销工具**: 优惠券、Banner广告
- **投诉管理**: 用户投诉处理
- **多语言**: 语言管理、翻译管理
- **系统设置**: 支付配置、通知设置、OTP设置
## 技术栈
### 移动端应用
- **框架**: Flutter 3.9.2+
- **状态管理**: GetX
- **UI组件**: GetWidget、Cupertino Icons、Font Awesome
- **地图服务**: Google Maps Flutter、Geolocator
- **推送通知**: Firebase Cloud Messaging
- **支付集成**: Stripe、Razorpay、Paystack
- **社交登录**: Google Sign-In、Facebook Auth
- **本地存储**: SharedPreferences、Get Storage、SQFlite
- **图片处理**: Cached Network Image、Image Picker
- **动画**: Animate Do、Carousel Slider
### Web管理后台
- **框架**: Laravel 10.x (PHP 8.1+)
- **前端**: Livewire 3.0、Tailwind CSS 3.4
- **构建工具**: Laravel Mix、Webpack
- **数据库**: MySQL
- **认证**: Laravel Sanctum、JWT Auth
- **权限管理**: Spatie Laravel Permission
- **支付网关**: Stripe、Razorpay、PayPal、Paytm、Paystack、PhonePe
- **数据表格**: Yajra DataTables
- **媒体管理**: Spatie Laravel Media Library
- **Excel导入导出**: Maatwebsite Excel
- **二维码**: Simple QR Code
- **图片优化**: Spatie Image Optimizer
- **Firebase**: LaraFirebase (推送通知)
- **社交媒体登录**: Laravel Socialite
- **面包屑**: Diglactic Laravel Breadcrumbs
- **国家数据**: PragmaRX Countries
### 第三方服务
- **Firebase**: 推送通知、分析
- **Google Maps**: 地图和地理编码
- **Twilio**: SMS通知
- **支付网关**: Stripe、Razorpay、PayPal、Paystack、Paytm、PhonePe
## 文件结构
```
source-code/
├── app/
│ ├── foodbank-customer-app.zip # 用户端Flutter应用
│ ├── foodbank-delivery-app.zip # 配送员Flutter应用
│ └── foodbank-merchant-app.zip # 商家端Flutter应用
├── web/
│ └── foodbank-web.zip # Laravel管理后台
│ ├── app/
│ │ ├── Console/ # 命令行工具
│ │ ├── Helpers/ # 辅助函数
│ │ ├── Http/
│ │ │ ├── Controllers/ # 控制器
│ │ │ │ ├── Admin/ # 后台控制器
│ │ │ │ ├── Api/ # API控制器
│ │ │ │ └── Front/ # 前端控制器
│ │ │ └── Middleware/ # 中间件
│ │ └── Models/ # 数据模型
│ ├── config/ # 配置文件
│ ├── database/ # 迁移和种子
│ ├── resources/
│ │ └── views/ # Blade模板
│ └── routes/ # 路由
└── documentation/
└── documentation.txt # 文档链接
```
## 安装说明
### Web后台安装
1. **环境要求**
- PHP 8.1+
- MySQL 5.7+
- Composer
- Node.js & NPM
2. **安装步骤**
```bash
# 解压源码
cd foodbank-web
# 安装PHP依赖
composer install
# 安装Node依赖
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
```
### 移动应用配置
1. **Flutter环境**
- Flutter SDK 3.9.2+
- Dart SDK
- Android Studio / Xcode
2. **配置步骤**
```bash
# 解压对应应用
cd foodbank-customer-app # 或 delivery-app / merchant-app
# 安装依赖
flutter pub get
# 配置API端点
# 编辑 lib/constant/constant.dart
# 配置Firebase
# 添加 google-services.json 和 GoogleService-Info.plist
# 构建应用
flutter build apk --release
```
## 亮点特色
### 技术亮点
1. **实时通信**: Firebase实时推送,订单状态即时同步
2. **多支付网关**: 支持6+种国际主流支付方式
3. **模块化设计**: Laravel后台结构清晰,易于扩展
4. **响应式UI**: Tailwind CSS构建现代化界面
5. **数据表格**: Yajra DataTables处理大数据量展示
6. **媒体管理**: Spatie Media Library高效管理文件上传
### 业务亮点
1. **完整生态**: 用户-商家-配送员-管理员全链路覆盖
2. **多语言支持**: 内置国际化,支持全球部署
3. **营销工具**: 优惠券、Banner广告、佣金系统
4. **财务管理**: 详细的报表和统计功能
5. **投诉系统**: 完善的用户反馈处理机制
6. **OTP验证**: 安全的手机号验证机制
... (content truncated)