# ReadyRide - 完整网约车出行解决方案
## 项目概述
- **项目类型**:全栈移动应用 + Web管理后台(网约车/拼车平台)
- **主要功能**:乘客叫车、司机接单、实时位置追踪、在线支付、行程管理、评价系统、SOS紧急求助
- **技术栈**:
- 后端:Laravel 11 + PHP 8.2
- 乘客端:Flutter 3.35 + Dart 3.9 + Riverpod状态管理
- 司机端:Flutter 3.35 + Dart 3.9 + Riverpod状态管理
- 数据库:MySQL + Redis
- 地图服务:Google Maps
- 实时通信:Pusher + Firebase Messaging
## 模块结构
```
Main-SourceCode-With-Documentation/
├── Laravael Admin Ready To Ride Full SourceCode/
│ ├── install/ # Laravel后端
│ │ ├── app/
│ │ │ ├── Models/ # 数据模型
│ │ │ ├── Http/ # 控制器和请求
│ │ │ ├── Services/ # 业务服务
│ │ │ ├── Repositories/ # 数据仓库
│ │ │ └── Notifications/ # 通知
│ │ ├── config/ # 配置文件
│ │ ├── database/ # 迁移和种子
│ │ ├── routes/ # 路由定义
│ │ └── resources/ # 视图资源
│ └── update/ # 更新包
├── Rider Flutter App Full SourceCode/ # 乘客端Flutter应用
│ ├── lib/ # Dart源码
│ ├── android/ # Android原生代码
│ ├── ios/ # iOS原生代码
│ ├── assets/ # 图片、字体等资源
│ └── pubspec.yaml # 依赖配置
├── Driver Flutter App Full SourceCode/ # 司机端Flutter应用
│ ├── lib/ # Dart源码
│ ├── android/ # Android原生代码
│ ├── ios/ # iOS原生代码
│ ├── assets/ # 图片、字体等资源
│ └── pubspec.yaml # 依赖配置
└── Documentation/ # 文档
└── index.html # 说明文档
```
## 核心业务逻辑
### 1. 用户系统
- **角色分离**:乘客(Rider)、司机(Driver)、管理员(Admin)
- **认证授权**:JWT Token + Laravel Sanctum
- **权限管理**:Spatie Laravel Permission
### 2. 叫车流程
1. 乘客设置上车地点和目的地
2. 系统计算预估价格和路线
3. 乘客确认叫车请求
4. 系统向附近司机推送订单
5. 司机接单并前往上车点
6. 司机确认乘客上车,行程开始
7. 到达目的地,行程结束
8. 乘客支付费用
9. 双方互评
### 3. 实时位置追踪
- **GPS定位**:使用Geolocator和Google Maps
- **实时更新**:通过Pusher WebSocket推送位置更新
- **地图显示**:Google Maps Flutter插件显示车辆和路线
### 4. 支付系统
- **支付方式**:Stripe、Razorpay、Paystack、Braintree、Twilio
- **钱包系统**:内置钱包功能,支持充值和提现
- **优惠券**:支持优惠券和折扣码
### 5. 消息通知
- **推送通知**:Firebase Cloud Messaging
- **实时聊天**:应用内乘客与司机聊天
- **短信通知**:集成Twilio、MessageBird、Vonage
### 6. 安全功能
- **SOS紧急求助**:一键紧急求助功能
- **行程分享**:分享行程给紧急联系人
- **实时追踪**:后台可实时追踪所有行程
## 核心代码分析
### 后端架构 (Laravel)
#### 核心模型
```php
// 主要数据模型
- User.php # 用户基础模型
- Rider.php # 乘客模型
- Driver.php # 司机模型
- Order.php # 订单模型
- Service.php # 服务类型模型
- VehicleCategory.php # 车辆分类
- VehicleBrand.php # 车辆品牌
- VehicleModel.php # 车辆型号
- Coupon.php # 优惠券
- Transaction.php # 交易记录
- Wallet.php # 钱包
- Rating.php # 评分评价
- Complaint.php # 投诉
- SOS.php # 紧急求助
- Message.php # 消息
- Notification.php # 通知
- Country.php # 国家
- Currency.php # 货币
- Language.php # 语言
```
#### 依赖包
```json
{
"php": "^8.2",
"laravel/framework": "^11.9",
"laravel/sanctum": "^4.0",
"spatie/laravel-permission": "^6.18",
"stripe/stripe-php": "^17.3",
"razorpay/razorpay": "^2.9",
"pusher/pusher-php-server": "^7.2",
"kreait/firebase-php": "^7.18",
"twilio/sdk": "^8.8",
"vonage/client": "^4.2",
"maatwebsite/excel": "^3.1",
"barryvdh/laravel-dompdf": "^3.1"
}
```
### 乘客端Flutter架构
#### 状态管理
- **Riverpod**:使用flutter_riverpod进行状态管理
- **架构模式**:遵循Riverpod推荐的架构模式
#### 核心依赖
```yaml
dependencies:
flutter_riverpod: ^2.6.1 # 状态管理
dio: ^5.7.0 # HTTP请求
google_maps_flutter: ^2.10.0 # 谷歌地图
geolocator: ^14.0.0 # GPS定位
geocoding: ^3.0.0 # 地理编码
flutter_polyline_points: ^2.1.0 # 路线绘制
firebase_messaging: ^16.0.1 # 推送通知
pusher_channels_flutter: ^2.4.0 # 实时通信
flutter_secure_storage: ^9.2.4 # 安全存储
cached_network_image: ^3.4.1 # 图片缓存
lottie: ^3.1.0 # 动画
```
#### 目录结构
```
lib/
├── main.dart # 应用入口
├── l10n/ # 本地化
├── generated/ # 生成的代码
├── core/ # 核心功能
│ ├── constants/ # 常量
│ ├── theme/ # 主题
│ └── utils/ # 工具类
├── data/ # 数据层
│ ├── models/ # 数据模型
│ ├── repositories/ # 数据仓库
│ └── services/ # 服务
├── presentation/ # 表现层
│ ├── screens/ # 页面
│ ├── widgets/ # 组件
│ └── providers/ # 状态提供者
└── routes/ # 路由
```
### 司机端Flutter架构
与乘客端类似,但包含司机特定功能:
- **接单管理**:在线/离线状态切换
- **导航功能**:内置导航到乘客位置
- **收入统计**:收入查看和提现
- **行程管理**:当前行程和历史行程
## 数据库设计
### 核心表结构
```sql
-- 用户表
users (id, name, email, phone, password, role, status, ...)
-- 乘客表
riders (id, user_id, profile_image, rating, ...)
-- 司机表
drivers (id, user_id, vehicle_id, license_number, rating, is_online, ...)
-- 订单表
orders (id, rider_id, driver_id, service_id, pickup_location, dropoff_location,
status, fare, distance, duration, ...)
-- 车辆表
... (content truncated)