chore: استيراد أولي من سيرو (ecfe7568) — بلا أي تعديل

نسخة كاملة من مستودع سيرو عند ecfe7568 لتكون أساس تطبيق «انطلق».
نُسخ المتعقَّب في git فقط (12,509 ملفاً / 302 م.ب) بـ git archive، لا
`cp -r` — فاستُثنيت تلقائياً مخلفات البناء (build · node_modules ·
.dart_tool · .gradle · Pods ≈ 10.7 غ.ب) وكل ما يستثنيه .gitignore.

هذا الكوميت **بلا أي تعديل عمداً** حتى يكون كل ما يليه فرقاً مقروءاً
مقابل سيرو الأصلي. سيرو نفسه لم يُمسّ.

⚠️ لا يبني بعد: `.env` و`lib/env/env.g.dart` غير متعقَّبين في سيرو (وهذا
صحيح — أسرار لكل مستأجر). كل تطبيق فلاتر هنا يحتاج .env خاصاً بانطلق ثم
توليد env.g.dart عبر build_runner. لا تُنسخ أسرار سيرو.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Hamza-Ayed
2026-07-27 05:10:29 +03:00
co-authored by Claude Opus 5
commit 92dc6b3641
3654 changed files with 896478 additions and 0 deletions
+389
View File
@@ -0,0 +1,389 @@
# تحليل الميزات الصوتية والموسيقى — سيرو
## Audio & Music Features Analysis — Siro Platform
> **النسخة:** 1.0 | **تاريخ:** يوليو 2026 | **التصنيف:** داخلي | **إعداد:** فريق التحليل التقني
---
## 📋 فهرس المحتويات
1. [ملخص الميزات الصوتية الحالية](#1-ملخص-الميزات-الصوتية-الحالية)
2. [Text-to-Speech (TTS)](#2-text-to-speech-tts)
3. [المؤثرات الصوتية والإشعارات](#3-المؤثرات-الصوتية-والإشعارات)
4. [المكالمات الصوتية (WebRTC + Agora)](#4-المكالمات-الصوتية-webrtc--agora)
5. [تسجيل الصوت](#5-تسجيل-الصوت)
6. [البنية التحتية الصوتية (Backend)](#6-البنية-التحتية-الصوتية-backend)
7. [الميزات الصوتية المفقودة — فرص الابتكار](#7-الميزات-الصوتية-المفقودة--فرص-الابتكار)
8. [خطة تطوير الموسيقى والترفيه الصوتي](#8-خطة-تطوير-الموسيقى-والترفيه-الصوتي)
9. [دراسة الجدوى — ميزة الموسيقى](#9-دراسة-الجدوى--ميزة-الموسيقى)
---
## 1. ملخص الميزات الصوتية الحالية
### التقييم: ⭐⭐⭐☆☆ (4/10)
| المجال | الحالة | التفاصيل |
|--------|--------|----------|
| TTS (نص إلى كلام) | ✅ موجود | تنقل صوتي، وصف واجهة، تحذيرات |
| مؤثرات صوتية | ✅ موجود | أصوات طلبات الرحلات، إشعارات |
| مكالمات صوتية | ✅ موجود | WebRTC + Agora بين السائق والراكب |
| تسجيل صوتي | ✅ موجود | تسجيل الرحلة AAC-LC |
| **موسيقى / ترفيه صوتي** | **❌ غير موجود** | **فرصة تنافسية كبيرة** |
| **راديو / Podcasts** | **❌ غير موجود** | **فرصة إيرادية جديدة** |
| **أوامر صوتية** | **❌ غير موجود** | **تجربة مستخدم متقدمة** |
| **Spotify / Apple Music** | **❌ غير موجود** | **ميزة تنافسية مطلوبة** |
---
## 2. Text-to-Speech (TTS)
### 2.1 التقنية
| الخاصية | القيمة |
|---------|--------|
| الحزمة | `flutter_tts` (v4.x) |
| معدل الكلام | 0.5 |
| مستوى الصوت | 1.0 |
| اللغة الافتراضية | ar-SA (مع fallback إلى en-US) |
| iOS Audio Category | playback, mixWithOthers, duckOthers |
### 2.2 الاستخدامات في تطبيق السائق
| الملف | الاستخدام |
|-------|-----------|
| `navigation_controller.dart` | إرشادات التنقل خطوة بخطوة (TTS عند كل منعطف) |
| `navigation_service.dart` | إنشاء كائن TTS للملاحة |
| `map_driver_controller.dart` | إعلانات حالة الرحلة |
| `destination_controller.dart` | وصف الوجهة |
| `order_request_controller.dart` | معلومات طلب الرحلة |
| `gemeni.dart` | تحذيرات التحقق من المستندات بالذكاء الاصطناعي |
| `mydialoug.dart` | قراءة نصوص الحوارات |
| `criminal_documents_page.dart` | معلومات المستندات |
| `contact_us_page.dart` | معلومات الاتصال |
**ميزة فريدة في تطبيق السائق**: زر كتم الصوت (Mute) مع `isSpeaking` observable
### 2.3 الاستخدامات في تطبيق الراكب
| الملف | الاستخدام |
|-------|-----------|
| `mydialoug.dart` | قراءة نصوص الحوارات |
| `car_details_widget_to_go.dart` | معلومات السيارة والرحلة |
---
## 3. المؤثرات الصوتية والإشعارات
### 3.1 حزمة just_audio
- **الإصدار**: ^0.10.5
- **الاستخدام**: تشغيل المؤثرات الصوتية القصيرة (ليس الموسيقى)
### 3.2 توزيع الملفات الصوتية
#### تطبيق الراكب:
| الملف | الغرض | التنسيق |
|-------|-------|---------|
| `start.wav` | نغمة رنين المكالمات | WAV |
| `promo.wav` | إشعار ترويجي | WAV |
| `ding.wav` | صوت إشعار عام | WAV |
| `tone2.wav` | نغمة إشعار | WAV |
| `cancel.wav` | صوت إلغاء/رفض | WAV |
| `tone1.mp3` | نغمة إشعار | MP3 |
#### تطبيق السائق:
| الملف | الغرض | التنسيق |
|-------|-------|---------|
| `order.mp3` | **صوت طلب رحلة جديد (loop)** | MP3 |
| `order1.wav` | صوت طلب رحلة ثانوي | WAV |
| `aggrement.wav` | صوت تأكيد الموافقة | WAV |
| `alert.wav` | صوت تنبيه عام | WAV |
| `iphone_ringtone.wav` | نغمة رنين شبيهة iPhone | WAV |
| `promo.wav` | إشعار ترويجي | WAV |
| `ding.wav` | صوت إشعار | WAV |
| `tone2.wav` | نغمة إشعار | WAV |
| `order.wav` | صوت طلب (native) | WAV |
| `cancel.wav` | صوت إلغاء | WAV |
| `tone1.mp3` | نغمة إشعار | MP3 |
### 3.3 آلية تشغيل صوت الطلب
```dart
// في order_request_controller.dart:
void _playAudio() {
_audioPlayer.setAsset('assets/order.mp3');
_audioPlayer.setLoopMode(LoopMode.one); // تكرار
_audioPlayer.play(); // يشغل لمدة 15 ثانية (مدة المؤقت)
}
void _stopAudio() {
_audioPlayer.stop();
_audioPlayer.dispose();
}
```
---
## 4. المكالمات الصوتية (WebRTC + Agora)
### 4.1 البنية المعمارية
```
┌──────────────────────────────────────────────────────────┐
│ CALL ARCHITECTURE │
│ │
│ Passenger App Driver App │
│ ┌─────────────────┐ ┌──────────────────┐ │
│ │ VoiceCallCtrl │ │ VoiceCallCtrl │ │
│ │ (WebRTC Peer) │◄──────────►│ (WebRTC Peer) │ │
│ └────────┬────────┘ Media └────────┬─────────┘ │
│ │ Streams │ │
│ │ │ │
│ ┌────────▼────────┐ ┌─────────▼─────────┐ │
│ │ SignalingService │ │ SignalingService │ │
│ │ (WebSocket) │◄─────────►│ (WebSocket) │ │
│ └────────┬────────┘ wss:// └─────────┬─────────┘ │
│ │ calls.intaleq │ │
│ │ .com/ws │ │
│ ▼ ▼ │
│ ┌──────────────────────────────────────────────────┐ │
│ │ PHP Backend (create_call_session.php) │ │
│ │ + Node.js Signaling Server │ │
│ └──────────────────────────────────────────────────┘ │
│ │
│ STUN Servers: │
│ - stun:stun.l.google.com:19302 │
│ - stun:stun1.l.google.com:19302 │
└──────────────────────────────────────────────────────────┘
```
### 4.2 حالات المكالمة
```
idle → dialing → ringing → connecting → active → ended
↓
(120s max)
يتم إنهاء المكالمة تلقائياً بعد 120 ثانية
```
### 4.3 الميزات
- كتم الميكروفون (Mute)
- تبديل مكبر الصوت (Speaker)
- مؤقت 120 ثانية مع عد تنازلي
- ICE restart عند فشل الاتصال
- إعادة إنشاء الميكروفون عند عودة التطبيق
- دعم Echo Cancellation, Noise Suppression, Auto Gain Control
---
## 5. تسجيل الصوت
### 5.1 المواصفات التقنية
| الخاصية | القيمة |
|---------|--------|
| الحزمة | `record: ^6.2.0` |
| الترميز | AAC-LC |
| معدل العينة | 44100 Hz |
| معدل البت | 128000 bps |
| الصيغة | M4A |
| تسمية الملف | `{YYYY-MM-DD}_{rideId}.m4a` |
### 5.2 الميزات
- بدء/إيقاف التسجيل
- إيقاف مؤقت/استئناف
- تشغيل التسجيلات المسجلة (مع tracking للموضع)
- حذف الملفات
- رفع إلى الخادم عبر `upload_audio.php`
---
## 6. البنية التحتية الصوتية (Backend)
### 6.1 رفع الصوتيات (upload_audio.php)
| الميزة | التفاصيل |
|--------|----------|
| الملفات المقبولة | audio/mp4, audio/mpeg, audio/wav, audio/x-m4a, audio/ogg, audio/webm |
| تسمية الملف | 32-character hex عشوائي |
| المسار | `upload_audio/` |
| الصلاحيات | 750 |
| الرابط | `https://api.siromove.com/upload_audio/{file}` |
| Rate Limiting | Redis |
### 6.2 إنشاء جلسة مكالمة (Call Session)
```
PHP Backend:
1. JWT Authentication
2. البحث عن الطرف الآخر في الرحلة النشطة
3. استدعاء Node.js signaling server: POST /sessions
{ride_id, driver_id, passenger_id}
4. إرسال FCM notification للطرف الآخر (type: incoming_call)
5. إعادة session_id للطالب
```
### 6.3 Signaling Server
```
URL: https://calls.intaleqapp.com
Auth: VOICE_CALL_API_KEY (env)
Events: authenticate, participant_joined, offer, answer, ice_candidate, call_ended
```
---
## 7. الميزات الصوتية المفقودة — فرص الابتكار
### 7.1 تحليل الفجوة (Gap Analysis)
| الميزة | سيرو | أوبر (Uber) | كريم (Careem) | Bolt | التوصية |
|--------|------|-------------|---------------|------|---------|
| تشغيل موسيقى في الكابينة | ❌ | ✅ (Spotify) | ❌ | ❌ | **عاجلة** |
| راديو داخلي (Siro Radio) | ❌ | ❌ | ❌ | ❌ | **فرصة ذهبية** |
| بودكاست/محتوى تعليمي | ❌ | ❌ | ❌ | ❌ | **ميزة فريدة** |
| أوامر صوتية | ❌ | ❌ | ❌ | ❌ | **مستقبلية** |
| Sound Zones (ترحيب/وداع) | ❌ | ❌ | ❌ | ❌ | **سهلة وسريعة** |
| إعلانات صوتية مستهدفة | ❌ | ❌ | ❌ | ❌ | **مصدر دخل** |
| AI Music Curator | ❌ | ❌ | ❌ | ❌ | **مبتكرة** |
| تأثيرات صوتية محسنة | جزئي | ✅ | ✅ | ✅ | **تحسين** |
| Voice Commands للملاحة | ❌ | ❌ | ❌ | ❌ | **مستقبلية** |
### 7.2 فرص الابتكار الصوتي
#### 🎵 فرصة 1: Siro Radio (راديو سيرو)
```
الوصف: إذاعة داخل التطبيق تبث:
- موسيقى هادئة (خلفية للرحلة)
- إعلانات تجارية (مصدر دخل إضافي)
- نصائح للسائقين
- أخبار المرور
التقنية: HLS Streaming + Audio Player
الإيرادات: إعلانات صوتية مستهدفة
التكلفة: منخفضة (Content licensing via royalty-free)
التأثير: تمييز العلامة التجارية + إيرادات
```
#### 🎵 فرصة 2: Spotify / Apple Music Integration
```
الوصف: ربط حساب المستخدم مع Spotify:
- الراكب يتحكم بالموسيقى أثناء الرحلة
- التشغيل عبر سماعات السيارة
- قوائم تشغيل حسب المزاج
التقنية: Spotify SDK + Apple MusicKit
التأثير: تجربة راكب متميزة
الإيرادات: عمولة إحالة Premium
```
#### 🎵 فرصة 3: Podcasts تعليمية
```
الوصف: محتوى صوتي تعليمي للسائقين:
- تعلم اللغة الإنجليزية
- السلامة المرورية
- مهارات خدمة العملاء
- قصص نجاح
التأثير: تحسين جودة السائقين + تمييز
```
#### 🎵 فرصة 4: Voice Assistant (مساعد سيرو الصوتي)
```
الوصف: "مرحباً سيرو..."
- "خذني إلى دمشق"
- "اتصل بالراكب"
- "شغّل موسيقى"
- "كم ربحت اليوم؟"
التقنية: Speech-to-Text + NLP + TTS
التأثير: واجهة تفاعل جديدة
الجدول: 6-12 شهر
```
#### 🎵 فرصة 5: Sound Zones (المؤثرات الصوتية)
```
الوصف: موسيقى ترحيبية عند بدء الرحلة:
- 🎵 Sound Onboarding: موسيقى قصيرة عند بدء الرحلة
- 🎵 Sound Departure: موسيقى وداع عند النزول
- 🔔 Sound Alert: أصوات محسنة للتنبيهات
التأثير: تجربة عاطفية أفضل
التنفيذ: 1-2 أسبوع
```
#### 🎵 فرصة 6: الإعلانات الصوتية
```
الوصف: إعلانات صوتية مدتها 5-10 ثوانٍ:
- قبل بدء الرحلة (للمستخدم)
- أثناء انتظار السائق
- بعد انتهاء الرحلة
الإيرادات: CPM (Cost Per Mille)
الاستهداف: حسب الموقع، الوقت، تاريخ الرحلات
}
---
## 8. خطة تطوير الموسيقى والترفيه الصوتي
### المرحلة 1: الأساسيات (شهر 1)
| المهمة | الجهد | الأولوية |
|--------|-------|----------|
| Sound Zones (ترحيب/وداع) | 3 أيام | 🟢 عالية |
| تحسين المؤثرات الصوتية | 3 أيام | 🟢 عالية |
| مكتبة أصوات عالية الجودة | 2 يوم | 🟡 متوسطة |
### المرحلة 2: Siro Radio (شهر 2-3)
| المهمة | الجهد | الأولوية |
|--------|-------|----------|
| HLS Streaming backend | 2 أسبوع | 🟢 عالية |
| Audio Player UI | 1 أسبوع | 🟢 عالية |
| اختيار المحتوى (موسيقى خالية من الحقوق) | 1 أسبوع | 🟡 متوسطة |
| نظام الإعلانات الصوتية | 2 أسبوع | 🟡 متوسطة |
### المرحلة 3: التكامل مع Spotify (شهر 3-4)
| المهمة | الجهد | الأولوية |
|--------|-------|----------|
| Spotify SDK integration | 2 أسبوع | 🟢 عالية |
| التحكم بالموسيقى UI | 1 أسبوع | 🟢 عالية |
| اختبار التكامل مع CarPlay | 1 أسبوع | 🟡 متوسطة |
### المرحلة 4: المحتوى التعليمي (شهر 4-6)
| المهمة | الجهد | الأولوية |
|--------|-------|----------|
| منصة Podcasts | 2 أسبوع | 🟡 متوسطة |
| إنتاج محتوى (10 حلقات) | 3 أسبوع | 🟡 متوسطة |
| Voice Assistant الأساسي | 4 أسبوع | 🔴 طويلة الأجل |
---
## 9. دراسة الجدوى — ميزة الموسيقى
### 9.1 التكلفة التقديرية
| المكون | التكلفة التقديرية |
|--------|-------------------|
| Sound Zones + تحسين المؤثرات | $500 - $1,000 |
| Siro Radio (تطوير + استضافة) | $3,000 - $5,000 |
| Spotify Integration | $2,000 - $4,000 |
| المحتوى التعليمي (Podcasts) | $1,000 - $2,000 |
| **الإجمالي المقدر** | **$6,500 - $12,000** |
### 9.2 العائد المتوقع
| مصدر الإيرادات | التقدير الشهري (3 دول) |
|-----------------|------------------------|
| إعلانات Siro Radio | $500 - $2,000 |
| Spotify Premium referrals | $200 - $800 |
| محتوى مدفوع (Podcasts) | $100 - $500 |
| تحسين الاحتفاظ بالركاب | غير مباشر — كبير |
| **الإجمالي** | **$800 - $3,300/شهر** |
### 9.3 مؤشرات النجاح
- **ROI المتوقع**: 6-12 شهر
- **تأثير على الاحتفاظ بالركاب**: +15-25%
- **تأثير على تقييم التطبيق**: +0.5 نجوم
- **رضا السائقين (موسيقى خلفية)**: +20%
---
## الملخص
**الميزات الصوتية الحالية في سيرو محدودة بالتطبيقات الوظيفية** (TTS للملاحة، مكالمات، تسجيل) وتفتقر تماماً إلى أي عنصر ترفيهي أو موسيقي.
**هذه فجوة تنافسية كبيرة** — أوبر يتفوق بتكامله مع Spotify، ولا يوجد أي منافس إقليمي يقدم تجربة صوتية متكاملة. سيرو لديها فرصة ذهبية لتصبح **أول منصة نقل في المنطقة تقدم تجربة ترفيه صوتي متكاملة**.
**التوصية**: البدء فوراً بـ Sound Zones وتحسين المؤثرات (جهد قليل، تأثير كبير)، ثم Siro Radio (مصدر دخل جديد)، ثم Spotify Integration (ميزة تنافسية).
> "الموسيقى ليست رفاهية — إنها الميزة التنافسية القادمة في عالم النقل الذكي"
+420
View File
@@ -0,0 +1,420 @@
# تحليل استهلاك البطارية وأداء التطبيق — سيرو
## Battery & Performance Analysis — Siro Platform
> **النسخة:** 1.0 | **تاريخ:** يوليو 2026 | **التصنيف:** داخلي
---
## 📋 فهرس المحتويات
1. [ملخص الأداء العام](#1-ملخص-الأداء-العام)
2. [تحليل استهلاك البطارية بالتفصيل](#2-تحليل-استهلاك-البطارية-بالتفصيل)
3. [نظام GPS المتكيف](#3-نظام-gps-المتكيف)
4. [تحسين الذاكرة والأداء](#4-تحسين-الذاكرة-والأداء)
5. [تحسين الشبكة والاتصالات](#5-تحسين-الشبكة-والاتصالات)
6. [تصنيف فئات الأجهزة](#6-تصنيف-فئات-الأجهزة)
7. [الخدمات الخلفية (Background Services)](#7-الخدمات-الخلفية)
8. [نقاط الضعف والتوصيات](#8-نقاط-الضعف-والتوصيات)
9. [خطة التحسين المقترحة](#9-خطة-التحسين-المقترحة)
---
## 1. ملخص الأداء العام
### التقييم الإجمالي: ⭐⭐⭐⭐☆ (8/10)
| المجال | التقييم | ملاحظات |
|--------|---------|---------|
| استهلاك البطارية (GPS) | ⭐⭐⭐⭐☆ | نظام متكيف جيد، يحتاج تحسينات |
| استهلاك البطارية (خلفية) | ⭐⭐⭐⭐⭐ | معماري ممتاز — لا GPS في الخلفية |
| سرعة التطبيق | ⭐⭐⭐⭐☆ | GetX سريع، لكن بدء التشغيل بطيء |
| استهلاك الذاكرة | ⭐⭐⭐⭐☆ | Lazy loading، Buffer limits |
| حجم التطبيق | ⭐⭐⭐☆☆ | كبير نسبياً (Flutter + حزم كثيرة) |
| الشبكة والاتصالات | ⭐⭐⭐⭐⭐ | Caching ممتاز، Socket ذكي |
| الخدمات الخلفية | ⭐⭐⭐⭐⭐ | Foreground Service محسن |
---
## 2. تحليل استهلاك البطارية بالتفصيل
### 2.1 الحزم المستخدمة
| الحزمة | الاستخدام | التأثير على البطارية |
|---------|-----------|----------------------|
| `battery_plus: ^7.0.0` | مراقبة مستوى البطارية | 🟢 Minimal |
| `wakelock_plus:` | إبقاء الشاشة قيد التشغيل | 🟡 مشغل دائم — يحتاج تحسين |
| `flutter_background_service: ^5.1.0` | خدمة الخلفية | 🟢 محسّن بشكل معماري |
| `location: ^8.0.0` | تتبع GPS | 🟡 عالي لكن مع تحسينات |
| `native_geofence: ^1.1.0` | Geofencing | 🟢 Hardware-level — ممتاز |
### 2.2 أوضاع استهلاك الطاقة
#### الوضع الطبيعي (بطارية > 25%)
```
GPS Interval: 5 ثوانٍ
Distance Filter: 10 متر
Upload Batch: كل دقيقتين
Record Timer: كل 3 ثوانٍ
Heartbeat: كل 25 ثانية (يتخطى إذا GPS نشط)
WakeLock: مفعل
```
#### وضع توفير الطاقة (بطارية ≤ 20%)
```
GPS Interval: 10 ثوانٍ ← توفير 50%
Distance Filter: 20 متر ← توفير 50%
Upload Batch: كل 5 دقائق ← توفير 60%
Record Timer: كل 10 ثوانٍ ← توفير 70%
Heartbeat: كل 25 ثانية
WakeLock: مفعل (بدون تغيير)
يدخل تلقائياً عند 20%، يخرج عند 25%
```
### 2.3 تأثير كل تقنية على البطارية
| التقنية | الوضع الطبيعي | توفير الطاقة | التوفير |
|---------|---------------|---------------|---------|
| GPS Polling | 5s | 10s | ~40% أقل استهلاك |
| Distance Filter | 10m | 20m | ~30% أقل تحديثات |
| Upload Frequency | 2min | 5min | ~60% أقل طلبات |
| Record Frequency | 3s | 10s | ~70% أقل تسجيل |
| Heartbeat | 25s | 25s | يتخطى إذا GPS نشط |
---
## 3. نظام GPS المتكيف
### 3.1 خوارزمية التحكم بالموقع (LocationController)
- **841 سطر** — ملف التحكم الرئيسي بالموقع
- **Single Source of Truth**: لا يوجد مصدر آخر للموقع في التطبيق
- **Background Service بدون GPS**: قاعدة معمارية صارمة — الخدمة الخلفية تشغل Socket فقط
### 3.2 تسجيل المسار الذكي
```dart
// يُسجل فقط إذا:
// 1. تحرك أكثر من 10 أمتار AND سرعة > 0.5 م/ث
// 2. أو مر 60 ثانية بدون تسجيل (force record)
if ((moved && speed > 0.5) || timeForced) {
_trackBuffer.add(point);
}
```
### 3.3 Batch Upload
```
Buffer: يخزن حتى 500 نقطة
Upload: كل 2-5 دقائق (حسب وضع الطاقة)
Batch Size: حتى 100 نقطة لكل طلب
SQLite: Flush كل 10 نقاط سلوكية
```
### 3.4 Heartbeat الذكي
```dart
// Heartbeat كل 25 ثانية، لكن:
// إذا GPS stream نشط → يتخطى Heartbeat بالكامل
if (_locSub != null) return; // Skip if GPS stream is active
```
### 3.5 Socket Watchdog
```dart
// فحص الاتصال كل 3 ثوانٍ
// يعيد الاتصال فقط إذا انقطع
// يمنع إعادة اتصال متزامنة
if (!isSocketConnected && !_isInitializingSocket) {
initSocket();
}
```
### 3.6 إدارة دورة حياة التطبيق
```dart
// عندما التطبيق في المقدمة → يوقف Background Service
// عندما التطبيق في الخلفية → يشغل Background Service
// iOS: لا يشغل Background Service أبداً
```
---
## 4. تحسين الذاكرة والأداء
### 4.1 GetX Lazy Loading
```dart
// Permanent (في الذاكرة دائماً):
Get.put(LocaleController());
Get.put(MapSocketController(), permanent: true);
Get.put(MapEngineController(), permanent: true);
// Lazy (ينشأ عند أول استخدام فقط):
Get.lazyPut(() => LoginController(), fenix: true);
Get.lazyPut(() => NotificationController(), fenix: true);
Get.lazyPut(() => VoiceCallController(), fenix: true);
```
### 4.2 Buffer Limits
```
Track Buffer: حد أقصى 500 نقطة (يحذف الأقدم)
Behavior Buffer: Flush إلى SQLite كل 10 نقاط
Error Log: Debounce دقيقة واحدة لنفس الخطأ
Image Upload: ضغط 70% + حد أقصى 1024x1024
Map Icons: تصغير إلى 120x120 في Isolate منفصل
```
### 4.3 Caching
| البيانات | مكان التخزين | مدة الصلاحية |
|----------|--------------|--------------|
| إحصائيات الأسبوع | GetStorage | 3 ساعات |
| مسار الرحلة (Cached Route) | GetStorage | حتى رحلة جديدة |
| قائمة الفيديوهات | GetStorage | غير محدد |
| قائمة الرحلات المتاحة | GetStorage | 5 ثوانٍ |
| Device Tier | GetStorage | 24 ساعة |
| الخرائط الأوفلاين | SQLite | 10km radius |
### 4.4 Image Optimization Pipeline
```dart
// خطوة 1: تدوير الصورة تلقائياً (Auto-rotate)
// خطوة 2: قص المستند (Auto-crop)
// خطوة 3: ضغط إلى 70% جودة
// خطوة 4: تصغير إلى 1024x1024
// خطوة 5: رفع مع 3 محاولات + Exponential Backoff
```
---
## 5. تحسين الشبكة والاتصالات
### 5.1 SSL Pinning
- جميع الاتصالات HTTPS مع SSL Pinning
- يمنع هجمات Man-in-the-Middle
- JWT مع Validate قبل كل طلب (30s buffer)
### 5.2 Connectivity Guard
```dart
// قبل كل طلب → تحقق من الاتصال
final connectivityResult = await Connectivity().checkConnectivity();
if (connectivityResult == ConnectivityResult.none) return;
// تأكيد الوصول للإنترنت
final hasInternet = await InternetConnectionChecker().hasConnection;
```
### 5.3 Socket Optimization
| الخاصية | Driver Socket | Passenger Socket |
|----------|---------------|------------------|
| Transport | WebSocket only | WebSocket only |
| Auto-connect | Manual (disableAutoConnect) | Manual |
| Reconnection | Infinite | 20 attempts |
| Reconnect delay | Default | 2s → max 10s |
| Connection timeout | Default | 20s |
### 5.4 HTTP Optimization
```
Upload Retries: 3 محاولات
Backoff: 2s, 4s, 6s (exponential)
Timeout: 120 ثانية للرفع
401 Handling: Auto-refresh JWT + Retry
```
---
## 6. تصنيف فئات الأجهزة
### 6.1 Device Tier (siro_rider/lib/controller/home/device_tier.dart)
```
نظام تسجيل بناءً على:
- Android SDK version (الأقدم = أعلى نقاط = أضعف)
- عدد أنوية المعالج
- عدد ABIs المدعومة
- هل هو Emulator؟
التصنيف:
- Low: Score ≥ 6
- Mid: Score ≥ 3
- High: Score < 3
- Clobal (يحفظ لمدة 24 ساعة)
```
### 6.2 Device Performance (siro_rider/lib/controller/home/device_performance.dart)
```
نظام White-List للأجهزة عالية الأداء:
- Samsung: S21+ (SM-S), Fold/Flip (SM-F), Note 9+ (SM-N9), S10/S20 (SM-G9)
- Google: Pixel 6/7/8/9, Pixel Fold
- Huawei: P40, Mate 20/30/40
- OnePlus: 7/8/9/10/11, CPH prefix
- Xiaomi: RAM > 7.5GB
- Blacklist: MT65xx, MT6735, SC77xx (معالجات رخيصة)
- iOS: دائماً High-end
```
### 6.3 NearBy Drivers Performance (nearby_drivers_controller.dart)
```dart
// كشف الأداء المنخفض:
lowPerf = (sdk < 28) || (ram > 0 && ram < 3 * 1024 * 1024 * 1024);
// يخفض زوم الخريطة من 15 إلى 14.5
```
### 6.4 Device Analyzer (siro_driver/lib/controller/functions/device_analyzer.dart)
```
نظام تسجيل كامل (100 نقطة كحد أقصى):
1. Android version (max 10pts)
2. RAM (max 10pts): 8GB+ = 10, 4GB+ = 5, 3GB+ = 3
3. CPU cores (max 10pts): 6+ = 10, 4+ = 5
4. Free storage (max 5pts): 5GB+ = 5, 2GB+ = 3
5. GPS + Gyroscope (max 10pts)
6. Storage write speed test (max 20pts) — يكتب 5MB ويقيس السرعة
7. CPU compute speed test (max 20pts) — 100M floating point iterations
8. Memory pressure (max 15pts) — /proc/meminfo
```
---
## 7. الخدمات الخلفية
### 7.1 Android Foreground Service
```dart
// الميزات:
- تشتغل 24/7
- تحديث الموقع عبر LocationController (وليس من Background Service)
- لا تحتوي على GPS (قاعدة معمارية)
- Notification بأقل أولوية (Importance.low)
- إعادة تشغيل تلقائي عند BOOT_COMPLETED
- تدعم Picture-in-Picture
```
### 7.2 iOS Background
```dart
// iOS: لا يشغل Background Service
// يعتمد على تحديثات الموقع من iOS system
// LocationController يستخدم enableBackgroundMode من package
```
### 7.3 Geofencing (Hardware-level)
```
يستخدم native_geofence package:
- Android: GeofencingApi (hardware)
- iOS: CLRegion (hardware)
- فعال جداً للبطارية
- مشغل من الخادم
```
---
## 8. نقاط الضعف والتوصيات
### 8.1 المشكلات الحالية
| # | المشكلة | التأثير | الحل المقترح | الجهد |
|---|---------|---------|--------------|-------|
| 1 | **WakeLock دائم** | يستنزف البطارية خارج الرحلات | تشغيل فقط أثناء الرحلة النشطة | 1 يوم |
| 2 | **GPS accuracy = navigation** | أعلى دقة حتى في توفير الطاقة | استخدام high بدلاً من navigation في توفير الطاقة | 2 ساعة |
| 3 | **لا تكيف حسب السرعة** | نفس الـ Polling في الحركة والتوقف | إيقاف GPS عند السرعة = 0 (متوقف) | 1 يوم |
| 4 | **Doze Mode** | لم يتم التعامل مع Android Doze | استخدام FCM لتجاوز Doze | 2 يوم |
| 5 | **حجم التطبيق كبير** | Flutter + حزم كثيرة | App Bundle، إزالة الحزم غير المستخدمة | مستمر |
| 6 | **بدء التشغيل بطيء** | WakeLock + Firebase + Location | تأجيل Initialization بعد Splash Screen | 2 يوم |
| 7 | **Animation Jank** | أحياناً تقطيع في الرسوم المتحركة | استخدام GPU Profiling لاكتشاف المشاكل | مستمر |
### 8.2 تحسينات مقترحة — التفاصيل
#### 🔧 تحسين 1: Smart WakeLock
```dart
// الوضع الحالي:
// في main.dart:
await WakelockPlus.enable(); // دائم — مشكلة
// الوضع المقترح:
// في RideLifecycleController:
void onRideStateChanged(RideState state) {
switch (state) {
case RideState.searching:
case RideState.inProgress:
case RideState.driverArrived:
await WakelockPlus.enable(); // فقط أثناء الرحلة
break;
case RideState.noRide:
case RideState.finished:
case RideState.cancelled:
await WakelockPlus.disable(); // يسمح للسكون
break;
}
}
```
#### 🔧 تحسين 2: GPS Speed-adaptive
```dart
// الوضع المقترح:
if (speed < 0.5) {
// متوقف — أوقف GPS بالكامل أو خفف الجهد
interval = 30000; // 30 ثانية بدلاً من 5
distanceFilter = 100; // 100 متر بدلاً من 10
} else if (speed < 10) {
// حركة بطيئة
interval = powerSaveMode ? 15000 : 8000;
distanceFilter = powerSaveMode ? 30 : 15;
} else {
// سرعة عادية
interval = powerSaveMode ? 10000 : 5000;
distanceFilter = powerSaveMode ? 20 : 10;
}
```
#### 🔧 تحسين 3: تقليل حجم التطبيق
```
الحلول المقترحة:
1. Android App Bundle (توفير 30-40% حجم)
2. حذف الحزم غير المستخدمة (flutter_overlay_window للـ Rider — لا يحتاجه)
3. استخدام Lottie بدلاً من GIF للرسوم المتحركة
4. Shorebird OTA للتحديثات (مستخدم بالفعل)
5. حذف assets غير المستخدمة
6. Flutter DevTools لتحديد الـ Bloat
```
#### 🔧 تحسين 4: Startup Time Optimization
```dart
// حلاً مقترحاً لتسريع بدء التشغيل:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
runApp(SpashScreen()); // أولاً: شاشة البداية سريعة
// ثم في الخلفية:
Future.wait([
initializeFirebase(), // غير ضروري فوراً
initLocationController(), // غير ضروري فوراً
WakelockPlus.enable(), // يمكن تأجيله
loadUserSession(), // ضروري
]).then((_) => runApp(SiroApp())); // بعد التحميل
}
```
---
## 9. خطة التحسين المقترحة
### الأسبوع 1: تحسينات سريعة
- [ ] Smart WakeLock — تشغيل فقط أثناء الرحلة
- [ ] GPS accuracy = high في توفير الطاقة (بدلاً من navigation)
- [ ] تفعيل Android App Bundle
### الأسبوع 2: تحسينات متوسطة
- [ ] GPS Speed-adaptive polling
- [ ] Doze Mode handling
- [ ] تأجيل Initialization بعد Splash
### الأسبوع 3: تحسينات متقدمة
- [ ] تحليل الـ Memory Leaks عبر DevTools
- [ ] تفريغ الخريطة عند عدم ظهورها
- [ ] حذف الحزم غير المستخدمة
### الأسبوع 4: مراقبة واختبار
- [ ] اختبار استهلاك البطارية على 10 أجهزة مختلفة
- [ ] قياس FPS والـ Jank
- [ ] قياس وقت بدء التشغيل
---
## خاتمة
**نظام تحسين البطارية في سيرو متقدم جداً مقارنة بمنافسيه** — نظام GPS المتكيف مع وضع توفير الطاقة التلقائي، و Batch Upload، والمعمارية التي تفصل GPS عن Background Service كلها قرارات تصميمية ممتازة.
**نقاط القوة**: Heartbeat الذكي، Distance Filter، Movement-based recording، Geofencing hardware-level
**نقاط الضعف**: WakeLock الدائم، GPS accuracy ثابت، عدم التكيف مع السرعة، حجم التطبيق
**التقييم العام**: 8/10 مع إمكانية رفع إلى 9.5/10 بعد التحسينات المقترحة
> "سيرو لديها أفضل نظام إدارة بطارية رأيناه في منصات النقل بالمنطقة، مع تحسينات بسيطة يمكن أن تصبح الأفضل عالمياً"
+786
View File
@@ -0,0 +1,786 @@
# Siro Competitive Features & Innovation Analysis
## منصة سيرو — تحليل الميزات التنافسية الشامل
> **آخر تحديث:** يوليو 2026
> **النسخة:** v3.0
> **التصنيف:** داخلي — سري
---
## Table of Contents / فهرس المحتويات
1. [Executive Summary / الملخص التنفيذي](#1-executive-summary)
2. [Platform Overview / نظرة عامة على المنصة](#2-platform-overview)
3. [All Features Matrix / مصفوفة الميزات الكاملة](#3-all-features-matrix)
4. [Competitive Features Deep Dive / الميزات التنافسية بالتفصيل](#4-competitive-features-deep-dive)
5. [Battery & Performance Optimization / تحسين البطارية والأداء](#5-battery--performance-optimization)
6. [Audio & Music Features / الميزات الصوتية والموسيقى](#6-audio--music-features)
7. [New Competitive Features Proposals / مقترحات ميزات تنافسية جديدة](#7-new-competitive-features-proposals)
8. [Competitor Comparison / مقارنة المنافسين](#8-competitor-comparison)
9. [Innovation Scorecard / بطاقة الابتكار](#9-innovation-scorecard)
10. [Strategic Recommendations / التوصيات الاستراتيجية](#10-strategic-recommendations)
---
## 1. Executive Summary
**Siro (سيرو)** is a full-stack, multi-region ride-hailing platform operating across **Syria, Jordan, and Egypt**. The platform consists of **4 Flutter mobile apps**, a **PHP backend**, a **Node.js pricing engine**, **Android native bots**, and multiple supporting servers.
### Key Statistics
| Metric | Value |
|--------|-------|
| Countries | Syria (Live), Jordan (Live), Egypt (Launching) |
| Apps | 4 (Rider, Driver, Admin, Service) |
| Vehicle Types | 12 |
| Payment Methods | 7 |
| Drivers (Syria) | 1,200+ |
| Riders (Syria) | 1,800+ |
| Drivers (Jordan) | 800+ |
| Riders (Jordan) | 700+ |
| AI Engines | 3 (Azure OCR, OpenAI, Llama) |
| Bots | 2 (Android, Social) |
| Backend Language | PHP + Node.js |
| WebSocket Servers | 2 (Driver + Passenger) |
---
## 2. Platform Overview
### Architecture
```
┌────────────────────────────────────────────────────────────────────┐
│ FLUTTER APPS │
│ ┌──────────────┐ ┌──────────────┐ ┌────────────┐ ┌─────────┐ │
│ │ siro_rider │ │ siro_driver │ │ siro_admin │ │ service │ │
│ │ (Passenger) │ │ (Captain) │ │ (Web/PWA) │ │ (Agent) │ │
│ └───────┬──────┘ └──────┬───────┘ └─────┬──────┘ └────┬────┘ │
└──────────┼─────────────────┼─────────────────┼──────────────┼──────┘
│ │ │ │
▼ ▼ ▼ ▼
┌────────────────────────────────────────────────────────────────────┐
│ API GATEWAY (connect.php) + JWT + Rate Limiting │
└────────────────────────────────────────────────────────────────────┘
│ │ │ │
▼ ▼ ▼ ▼
┌────────────────────────────────────────────────────────────────────┐
│ BACKEND LAYER │
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
│ │ Main API │ │ Ride API │ │ Location │ │ Wallet │ │
│ │ (siro_v3) │ │ (rides) │ │ (location) │ │ (wallet) │ │
│ └────────────┘ └────────────┘ └────────────┘ └────────────┘ │
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
│ │ Marketing │ │ Pricing │ │ AI Bots │ │ WebSocket │ │
│ │ Engine │ │ Engine │ │ (Cron) │ │ (PHP) │ │
│ └────────────┘ └────────────┘ └────────────┘ └────────────┘ │
└────────────────────────────────────────────────────────────────────┘
│ │ │ │
▼ ▼ ▼ ▼
┌────────────────────────────────────────────────────────────────────┐
│ MYSQL DATABASES + REDIS │
│ ┌────────────────────┐ ┌─────────────────┐ ┌────────────────┐ │
│ │ intaleqDB1 (Main) │ │ intaleq-ridesDB │ │ car_locations │ │
│ │ (60+ tables) │ │ (ride-specific) │ │ (GIS SPATIAL) │ │
│ └────────────────────┘ └─────────────────┘ └────────────────┘ │
└────────────────────────────────────────────────────────────────────┘
```
### Technology Stack
| Layer | Technology | Details |
|-------|-----------|---------|
| Mobile Apps | Flutter (Dart) | 4 apps: rider, driver, admin, service |
| State Management | GetX | Permanent + lazy-loaded controllers |
| Backend | PHP (native) | Custom JWT auth, rate limiting, Redis |
| Database | MySQL 8.0 | GIS SPATIAL indexes, POINT columns |
| Caching | Redis, GetStorage, SQLite | Rate limiting, hybrid driver search |
| WebSocket | PHP Socket.IO | Driver socket (2021), Passenger socket (3031) |
| Maps | Google Maps + Siro Maps + Map SaaS + OSRM | Custom Flutter map plugin |
| Payments | PayMob, Stripe, custom wallet | Visa, MTN, Syriatel, E-Cash, CLIQ |
| Push Notifications | FCM + Local + iOS Live Activities | Firebase Cloud Messaging |
| Voice/Video | Agora + WebRTC | In-call sessions |
| AI Services | Azure OCR, OpenAI GPT, Llama AI | Document scanning |
| SMS | Twilio, WhatsApp Cloud API, SMS Kazumi | OTP delivery |
| Auth | Custom JWT + Firebase + Google + Apple | Device fingerprint binding |
| Storage | GetStorage + FlutterSecureStorage | Encrypted boxes, Keychain/Keystore |
| CI/CD | Shorebird | Over-the-air updates |
| Admin | Flutter Web / PWA | Cross-platform admin panel |
| Pricing Engine | Node.js / TypeScript | MAD, K-Means, regression analysis |
---
## 3. All Features Matrix
### Passenger Features (siro_rider)
| Category | Feature | Status | Competitive Value |
|----------|---------|--------|-------------------|
| **Core Ride** | 12 ride types (Speed, Comfort, Family, Delivery, Free/Blash, Late, Heavy, Nature, Electric, Pink Bike, Van, Female Driver) | ✅ Live | ⭐⭐⭐⭐⭐ |
| **Core Ride** | Real-time driver tracking via WebSocket | ✅ Live | ⭐⭐⭐⭐ |
| **Core Ride** | Price estimation with competitor comparison badges | ✅ Live | ⭐⭐⭐⭐⭐ |
| **Core Ride** | Multi-point trips (Mishwari) up to 5 waypoints | ✅ Live | ⭐⭐⭐⭐⭐ |
| **Core Ride** | Ride state machine (8 states) | ✅ Live | ⭐⭐⭐ |
| **Core Ride** | Deviation detection (50m threshold, auto re-route) | ✅ Live | ⭐⭐⭐⭐ |
| **Core Ride** | Local ETA calculation | ✅ Live | ⭐⭐⭐ |
| **Maps** | Google Maps rendering | ✅ Live | ⭐⭐⭐ |
| **Maps** | Here Maps place autocomplete | ✅ Live | ⭐⭐⭐ |
| **Maps** | Custom Siro Maps (Map SaaS) | ✅ Live | ⭐⭐⭐⭐⭐ |
| **Maps** | OSRM routing (OpenStreetMap) | ✅ Live | ⭐⭐⭐⭐ |
| **Maps** | Offline maps via SQLite caching | ✅ Live | ⭐⭐⭐⭐ |
| **Maps** | Heatmap visualization | ✅ Live | ⭐⭐⭐⭐ |
| **Payments** | Cash | ✅ Live | ⭐⭐⭐ |
| **Payments** | Visa/Mastercard (PayMob) | ✅ Live | ⭐⭐⭐ |
| **Payments** | Wallet (internal balance) | ✅ Live | ⭐⭐⭐⭐ |
| **Payments** | MTN Mobile Money | ✅ Live | ⭐⭐⭐⭐⭐ (Syria) |
| **Payments** | Syriatel Mobile Money | ✅ Live | ⭐⭐⭐⭐⭐ (Syria) |
| **Payments** | E-Cash (Egypt) | ✅ Live | ⭐⭐⭐⭐⭐ (Egypt) |
| **Payments** | Stripe | ✅ Live | ⭐⭐⭐ |
| **Payments** | CLIQ (Egypt) | ✅ Live | ⭐⭐⭐⭐ (Egypt) |
| **Payments** | Wallet top-up & transaction history | ✅ Live | ⭐⭐⭐ |
| **Payments** | Prime membership subscription | ✅ Live | ⭐⭐⭐⭐⭐ |
| **Communication** | In-app chat with driver | ✅ Live | ⭐⭐⭐ |
| **Communication** | Voice/video calls (Agora + WebRTC) | ✅ Live | ⭐⭐⭐⭐ |
| **Communication** | Text-to-speech (TTS) | ✅ Live | ⭐⭐⭐ |
| **Communication** | Voice recording | ✅ Live | ⭐⭐⭐ |
| **Safety** | SOS/Emergency signal service | ✅ Live | ⭐⭐⭐⭐ |
| **Safety** | Geofencing service | ✅ Live | ⭐⭐⭐⭐ |
| **Safety** | Device fingerprint binding | ✅ Live | ⭐⭐⭐⭐ |
| **Safety** | Jailbreak/root detection | ✅ Live | ⭐⭐⭐ |
| **Safety** | SSL pinning | ✅ Live | ⭐⭐⭐ |
| **Safety** | Encrypted local storage | ✅ Live | ⭐⭐⭐ |
| **Safety** | Biometric authentication | ✅ Live | ⭐⭐⭐ |
| **Promotions** | Promo codes | ✅ Live | ⭐⭐⭐ |
| **Promotions** | Referral system (unified codes) | ✅ Live | ⭐⭐⭐⭐ |
| **Promotions** | Points for riders | ✅ Live | ⭐⭐⭐ |
| **Notifications** | Firebase push notifications | ✅ Live | ⭐⭐⭐ |
| **Notifications** | Local notifications | ✅ Live | ⭐⭐⭐ |
| **Notifications** | iOS Live Activities | ✅ Live | ⭐⭐⭐⭐⭐ |
| **Notifications** | In-app notification pages | ✅ Live | ⭐⭐⭐ |
| **Profile** | Passenger profile with photo | ✅ Live | ⭐⭐⭐ |
| **Profile** | Order history | ✅ Live | ⭐⭐⭐ |
| **Profile** | Contact support | ✅ Live | ⭐⭐⭐ |
| **Profile** | FAQ | ✅ Live | ⭐⭐⭐ |
| **Profile** | Language selection (18+ languages) | ✅ Live | ⭐⭐⭐⭐ |
| **Profile** | Share app | ✅ Live | ⭐⭐⭐ |
| **Profile** | Delete account | ✅ Live | ⭐⭐⭐ |
| **Other** | Deep linking | ✅ Live | ⭐⭐⭐ |
| **Other** | App shortcuts (quick actions) | ✅ Live | ⭐⭐⭐ |
| **Other** | Multiple themes | ✅ Live | ⭐⭐⭐ |
### Driver/Captain Features (siro_driver)
| Category | Feature | Status | Competitive Value |
|----------|---------|--------|-------------------|
| **Ride Mgmt** | Online/offline toggle | ✅ Live | ⭐⭐⭐ |
| **Ride Mgmt** | Ride offers via Android native overlay | ✅ Live | ⭐⭐⭐⭐⭐ |
| **Ride Mgmt** | Accept/reject with 15-second auto-close timer | ✅ Live | ⭐⭐⭐⭐ |
| **Ride Mgmt** | Navigate to pickup (turn-by-turn with TTS) | ✅ Live | ⭐⭐⭐⭐ |
| **Ride Mgmt** | Arrive, begin ride, end ride flow | ✅ Live | ⭐⭐⭐ |
| **Ride Mgmt** | Order speed request | ✅ Live | ⭐⭐⭐ |
| **Ride Mgmt** | VIP order handling | ✅ Live | ⭐⭐⭐⭐ |
| **Navigation** | Turn-by-turn with route recalculation | ✅ Live | ⭐⭐⭐⭐ |
| **Navigation** | Polyline decoding in isolate | ✅ Live | ⭐⭐⭐ |
| **Navigation** | Route matcher worker | ✅ Live | ⭐⭐⭐ |
| **Navigation** | OSM/map view | ✅ Live | ⭐⭐⭐ |
| **Financial** | Driver wallet (earnings, withdrawals) | ✅ Live | ⭐⭐⭐⭐ |
| **Financial** | Weekly payment summary | ✅ Live | ⭐⭐⭐ |
| **Financial** | Bank account management (Egypt) | ✅ Live | ⭐⭐⭐ |
| **Financial** | Pay out screen | ✅ Live | ⭐⭐⭐ |
| **Financial** | Transfer budget | ✅ Live | ⭐⭐⭐ |
| **Financial** | Points/rewards for drivers | ✅ Live | ⭐⭐⭐⭐ |
| **Financial** | Payment history | ✅ Live | ⭐⭐⭐ |
| **Financial** | Statistics dashboard (daily goals, level, charts) | ✅ Live | ⭐⭐⭐⭐ |
| **Financial** | Commission (Kazan) with dynamic adjustment | ✅ Live | ⭐⭐⭐⭐⭐ |
| **Gamification** | Challenges | ✅ Live | ⭐⭐⭐⭐⭐ |
| **Gamification** | Leaderboard | ✅ Live | ⭐⭐⭐⭐ |
| **Gamification** | Referral center | ✅ Live | ⭐⭐⭐⭐ |
| **Gamification** | Streaks | ✅ Live | ⭐⭐⭐⭐ |
| **Gamification** | Behavior scoring | ✅ Live | ⭐⭐⭐⭐ |
| **Gamification** | Driver scorecard | ✅ Live | ⭐⭐⭐⭐ |
| **Background** | Android foreground service for GPS | ✅ Live | ⭐⭐⭐⭐⭐ |
| **Background** | Background location updates | ✅ Live | ⭐⭐⭐⭐ |
| **Background** | Battery optimization (battery_plus, wakelock_plus) | ✅ Live | ⭐⭐⭐⭐ |
| **Background** | Overlay window for ride offers | ✅ Live | ⭐⭐⭐⭐⭐ |
| **Communication** | Voice/video calls (Agora) | ✅ Live | ⭐⭐⭐⭐ |
| **Communication** | In-app chat | ✅ Live | ⭐⭐⭐ |
| **Communication** | Text-to-speech (TTS) | ✅ Live | ⭐⭐⭐⭐ |
| **Communication** | Voice recording | ✅ Live | ⭐⭐⭐ |
| **Communication** | SOS connect | ✅ Live | ⭐⭐⭐⭐ |
| **Registration** | AI-powered document scanning (Azure OCR, OpenAI, Llama) | ✅ Live | ⭐⭐⭐⭐⭐ |
| **Registration** | Face detection | ✅ Live | ⭐⭐⭐⭐ |
| **Registration** | Car registration (multiple cars) | ✅ Live | ⭐⭐⭐ |
| **Registration** | License upload | ✅ Live | ⭐⭐⭐ |
| **Registration** | Criminal document check | ✅ Live | ⭐⭐⭐⭐ |
| **Registration** | Syria-specific registration flow | ✅ Live | ⭐⭐⭐⭐ |
| **Registration** | Device compatibility check | ✅ Live | ⭐⭐⭐ |
| **Registration** | AI-powered registration page | ✅ Live | ⭐⭐⭐⭐ |
| **Performance** | Battery monitoring (battery_plus) | ✅ Live | ⭐⭐⭐⭐ |
| **Performance** | Wake lock (wakelock_plus) | ✅ Live | ⭐⭐⭐ |
| **Performance** | Foreground service | ✅ Live | ⭐⭐⭐⭐ |
| **Performance** | Device performance testing | ✅ Live | ⭐⭐⭐⭐ |
| **Performance** | Device analysis | ✅ Live | ⭐⭐⭐ |
| **Safety** | Jailbreak/root detection | ✅ Live | ⭐⭐⭐ |
| **Safety** | SSL pinning | ✅ Live | ⭐⭐⭐ |
| **Safety** | Device fingerprint | ✅ Live | ⭐⭐⭐⭐ |
| **Safety** | Scam detection system | ✅ Live | ⭐⭐⭐⭐⭐ |
| **Safety** | Driver assurance program | ✅ Live | ⭐⭐⭐⭐ |
| **Profile** | Captain profile | ✅ Live | ⭐⭐⭐ |
| **Profile** | Car management | ✅ Live | ⭐⭐⭐ |
| **Profile** | Behavior page | ✅ Live | ⭐⭐⭐ |
| **Profile** | Help center | ✅ Live | ⭐⭐⭐ |
| **Profile** | Settings | ✅ Live | ⭐⭐⭐ |
| **Profile** | Using app guide | ✅ Live | ⭐⭐⭐ |
| **Profile** | Video tutorials | ✅ Live | ⭐⭐⭐ |
### Admin Features (siro_admin)
| Category | Feature | Status | Competitive Value |
|----------|---------|--------|-------------------|
| **Dashboard** | Main dashboard (ride stats, revenue) | ✅ Live | ⭐⭐⭐⭐ |
| **Dashboard** | v2 Dashboard with advanced analytics | ✅ Live | ⭐⭐⭐⭐⭐ |
| **Dashboard** | Advanced analytics page | ✅ Live | ⭐⭐⭐⭐ |
| **Dashboard** | Static data views | ✅ Live | ⭐⭐⭐ |
| **Dashboard** | Driver notes | ✅ Live | ⭐⭐⭐ |
| **Captain Mgmt** | Captain list with details | ✅ Live | ⭐⭐⭐⭐ |
| **Captain Mgmt** | Driver document review | ✅ Live | ⭐⭐⭐ |
| **Captain Mgmt** | Driver tracker (live GPS monitoring) | ✅ Live | ⭐⭐⭐⭐⭐ |
| **Captain Mgmt** | Register new captain | ✅ Live | ⭐⭐⭐ |
| **Captain Mgmt** | Not active drivers | ✅ Live | ⭐⭐⭐ |
| **Captain Mgmt** | Syrian driver management | ✅ Live | ⭐⭐⭐⭐ |
| **Captain Mgmt** | Driver gift check | ✅ Live | ⭐⭐⭐ |
| **Captain Mgmt** | Driver scorecard (quality) | ✅ Live | ⭐⭐⭐⭐ |
| **Captain Mgmt** | Blacklist management | ✅ Live | ⭐⭐⭐⭐ |
| **Passenger Mgmt** | Passenger list & details | ✅ Live | ⭐⭐⭐ |
| **Passenger Mgmt** | Passenger form | ✅ Live | ⭐⭐⭐ |
| **Ride Mgmt** | Ride list & lookup | ✅ Live | ⭐⭐⭐ |
| **Ride Mgmt** | Ride monitor (live) | ✅ Live | ⭐⭐⭐⭐ |
| **Ride Mgmt** | Ride cancellation management | ✅ Live | ⭐⭐⭐ |
| **Financial** | Financial dashboard v2 | ✅ Live | ⭐⭐⭐⭐ |
| **Financial** | Wallet management | ✅ Live | ⭐⭐⭐ |
| **Financial** | Invoices (add, list) | ✅ Live | ⭐⭐⭐ |
| **Financial** | Payout management (bank_account) | ✅ Live | ⭐⭐⭐ |
| **Pricing** | Kazan (percentage commission) editor | ✅ Live | ⭐⭐⭐⭐⭐ |
| **Pricing** | Auto-adapt pricing | ✅ Live | ⭐⭐⭐⭐⭐ |
| **Pricing** | Pricing engine integration | ✅ Live | ⭐⭐⭐⭐⭐ |
| **Marketing** | Heatmaps (demand/surge) | ✅ Live | ⭐⭐⭐⭐⭐ |
| **Marketing** | Marketing page | ✅ Live | ⭐⭐⭐⭐ |
| **Marketing** | Social intelligence (Telegram scraping, etc.) | ✅ Live | ⭐⭐⭐⭐⭐ |
| **Marketing** | Campaign management | ✅ Live | ⭐⭐⭐⭐ |
| **Marketing** | What-if simulator | ✅ Live | ⭐⭐⭐⭐⭐ |
| **Promotions** | Promo management page | ✅ Live | ⭐⭐⭐ |
| **Promotions** | Promo code CRUD | ✅ Live | ⭐⭐⭐ |
| **Security** | Audit logs | ✅ Live | ⭐⭐⭐⭐ |
| **Security** | Security monitoring v2 | ✅ Live | ⭐⭐⭐⭐ |
| **Security** | Server monitoring | ✅ Live | ⭐⭐⭐⭐ |
| **Security** | Encrypt/decrypt tools | ✅ Live | ⭐⭐⭐ |
| **Staff** | Add staff | ✅ Live | ⭐⭐⭐ |
| **Staff** | Pending admins | ✅ Live | ⭐⭐⭐ |
| **Staff** | Employee management | ✅ Live | ⭐⭐⭐ |
| **Complaints** | Complaint list & resolution | ✅ Live | ⭐⭐⭐ |
| **Quality** | Driver scorecards | ✅ Live | ⭐⭐⭐⭐ |
| **Quality** | Blacklist management | ✅ Live | ⭐⭐⭐ |
| **Server** | Live server monitoring | ✅ Live | ⭐⭐⭐⭐ |
| **Server** | Error viewing | ✅ Live | ⭐⭐⭐ |
| **Other** | Geofence management | ✅ Live | ⭐⭐⭐⭐ |
| **Other** | Facebook integration | ✅ Live | ⭐⭐⭐ |
| **Other** | WhatsApp messaging | ✅ Live | ⭐⭐⭐ |
---
## 4. Competitive Features Deep Dive
### 4.1 Twelve Vehicle Types — Industry-Leading Variety
Siro offers **12 distinct vehicle types**, more than Uber (5), Careem (6), or Bolt (4):
| Type | Code | Use Case | Competitor Equivalent |
|------|------|----------|----------------------|
| Speed | Speed | Standard rides | UberX, Careem Go |
| Comfort | Comfort | Premium rides | Uber Comfort, Careem Premium |
| Family | Family | Large groups | UberXL, Careem Max |
| Delivery | Delivery | Package delivery | Uber Connect, Careem NOW |
| Free/Blash | Blash | Economy rides | Uber Moto (some markets) |
| Late | Late | Off-peak discounts | N/A — unique |
| Heavy | Heavy | Cargo transport | N/A — unique |
| Nature | Nature | Scenic/intercity | N/A — unique |
| Electric | Electric | Eco-friendly | Uber Green, Careem Eco |
| Pink Bike | PinkBike | Quick motorcycle | Uber Moto, Careem Bike |
| Van | Van | Minibus groups | UberXL, Careem Bus |
| **Female Driver** | **FemalDriver** | **Women-only** | **Careem (limited)** |
**Competitive Moat**: The Female Driver and Heavy/Nature categories are rare in the region. The variety allows market segmentation and niche targeting.
### 4.2 Female Driver Option — Women-Only Service
- Dedicated car type for female drivers serving female passengers
- Addresses cultural sensitivity in the Middle East market
- **Competitor comparison**: Careem offers it in some markets, Uber does not in this region
### 4.3 Mishwari (Multi-Point Trip) — Up to 5 Waypoints
- Passengers can add up to 5 stops in a single trip
- Dynamic pricing adjusts per segment
- **Unique**: No direct equivalent in regional competitors
### 4.4 Native Android Overlay (TripOverlayPlugin)
- Shows ride offers in a floating window above ALL apps
- Works even when phone is locked
- 15-second countdown timer embedded in overlay
- **Unique**: No competitor offers this; even the phone being locked won't miss a ride
### 4.5 AI-Powered Document Scanning (3 AI Engines)
- **Azure OCR**: Text extraction from documents
- **OpenAI GPT**: Data understanding and validation
- **Llama AI**: Fallback/alternative model
- Reduces driver registration from days to minutes
- **Competitive advantage**: Most competitors use basic OCR or manual verification
### 4.6 Dynamic Commission System (Kazan)
- Per-country, per-city, per-vehicle-type commission rates
- Auto-adjusted by AI based on competitor activity
- 15-30% reduction in high-competition surge zones
- **Transparent**: Driver sees commission before accepting ride
### 4.7 Competitive Pricing Intelligence (Node.js Engine)
- Statistical analysis: MAD (Mean Absolute Deviation), K-Means clustering, regression
- Scrapes competitor prices via Android Bot
- Real-time price comparison displayed to passengers
- **Unique**: Full competitive intelligence pipeline
### 4.8 Dual WebSocket Architecture
- **Driver Socket** (port 2021): Driver location streaming, ride offers
- **Passenger Socket** (port 3031): Ride requests, driver tracking
- Polling fallback when WebSocket disconnects
- **Architecture**: Prevents bottleneck — driver and passenger traffic isolated
### 4.9 iOS Live Activities
- Ride progress displayed on iPhone lock screen
- Real-time updates: driver arrival, ETA, ride status
- **Unique**: Rare in regional ride-hailing apps
### 4.10 Gamification System
- **4 Levels**: Bronze → Silver → Gold → Diamond (1-5% commission reduction)
- **8 Achievements**: First ride, 5-star, 10/50/100/500 rides, 7/30-day streaks, 5 referrals
- **Challenges**: Daily (5/10 rides, target earnings), Weekly (30 rides, target earnings, 20h work)
- **Leaderboard**: Podium for top 3 drivers
- **Behavior Scoring**: Speed, hard brakes, overall behavior score
### 4.11 Marketing Engine (AI-Powered)
- **cron_auto_marketing_pusher.php**: AI-generated promotional messages based on competitor prices
- **cron_passenger_reengagement.php**: Re-engagement for inactive passengers (3+ days)
- **cron_silent_push_inactive.php**: Silent push to wake app and sync location
- **cron_ai_engine.php**: Smart pricing module — reverse-engineers competitor pricing
- **cron_kazan_adjuster.php**: Auto-adjusts commissions based on competitor surge zones
- **cron_gemini_advisor.php**: Weekly strategic analysis of competitor pricing formulas
- **cron_predictive_demand.php**: Demand forecasting from historical patterns
- **cron_seasonal_pricing.php**: Seasonal and holiday pricing adjustment
- **cron_surge_opportunity.php**: Identifies surge pricing opportunities
- **Content Pipeline**: AI script writing → ElevenLabs voice → Creatomate/HeyGen video
### 4.12 Scam Detection System (ride/driver_scam/)
- Dedicated module for detecting fraudulent driver behavior
- Pattern analysis and anomaly detection
- **Competitive advantage**: Rare in regional platforms
### 4.13 Driver Behavior Scoring
- Speed monitoring
- Hard brake detection
- Overall behavior score
- Used for quality control and gamification
### 4.14 Predictive Demand & Heatmaps
- Real-time heatmap generation (`heatmap_live.json`, `heatmap.html`)
- Predictive demand zones via cron job
- Helps drivers find high-demand areas
### 4.15 Multi-Region Support (3 Countries)
- **Syria**: Live with ~1,200 drivers, ~1,800 riders — unique market (no Uber/Careem due to sanctions)
- **Jordan**: Live with ~800 drivers, ~700 riders
- **Egypt**: Ready to launch with Egypt-specific configs
- Each country has: dedicated server, separate database, local payment methods, specific pricing
### 4.16 Custom Map (Siro Maps / Map SaaS)
- Proprietary mapping solution — **not dependent on Google Maps**
- Updates every ~10 days at $0 cost
- Custom routing, geocoding, place search
- Saves $800-$30,000/month in Google Maps API costs
- **Unique**: Most competitors rely entirely on Google Maps
### 4.17 Comprehensive Payment Coverage (7 Methods)
| Method | Region | Notes |
|--------|--------|-------|
| Cash | All | Standard |
| Visa/Mastercard (PayMob) | All | Credit/debit cards |
| Internal Wallet | All | Balance system |
| MTN Mobile Money | Syria | Mobile money |
| Syriatel Mobile Money | Syria | Mobile money |
| E-Cash | Egypt | Local e-payment |
| Stripe | International | Global payments |
| CLIQ | Egypt | Local e-payment |
### 4.18 Android Bot (Price Scraping)
- Uses Android Accessibility Service to automate competitor apps
- Supported apps: YallaGo, Zakinn, Tfadal, Careem, Uber, TaxiF, Jeeny
- Task types: `get_price`, `check_promos`, `scrape_nearby_drivers`
- HMAC-SHA256 authenticated
- **Unique**: Full competitor price scraping at device level
### 4.19 Social Bot (Social Media Intelligence)
- **Facebook**: Read comments, post AI-generated replies, autonomous scrolling
- **Instagram**: Browse feeds, search, comment
- **Telegram**: Channel scraping, content extraction
- Uses Gemini AI for natural comment generation
- **Account rotation** with cooldown to avoid bans
- **SeenPostDatabase**: SHA-256 hash database to prevent reprocessing
### 4.20 Agora + WebRTC Voice/Video Calls
- Full WebRTC implementation with STUN/TURN
- ICE restart on connection failure
- Echo cancellation, noise suppression, auto gain control
- 120-second call limit
- Signaling server: `wss://calls.intaleqapp.com/ws`
---
## 5. Battery & Performance Optimization
### 5.1 Adaptive GPS Polling
| Parameter | Normal Mode | Power-Save Mode (≤20%) |
|-----------|-------------|------------------------|
| GPS interval | 5 seconds | 10 seconds |
| Distance filter | 10 meters | 20 meters |
| Record timer | 3 seconds | 10 seconds |
| Upload batch | 2 minutes | 5 minutes |
| Battery trigger | — | Enter at 20%, exit at 25% |
### 5.2 Battery-Saving Techniques
| Technique | Description | Impact |
|-----------|-------------|--------|
| Movement-based recording | Only records if moved >10m AND speed >0.5 m/s OR 60s elapsed | Prevents stationary recording |
| Heartbeat skip | Skips socket heartbeat when GPS stream is active | Prevents redundant emissions |
| Batch upload | Uploads location in batches every 2-5 min (not per-location HTTP) | Major network battery savings |
| Background service = socket only | Architectural rule: no GPS in background service | Eliminates duplicate GPS listeners |
| Low priority notifications | Background service uses Importance.low | Minimal battery from notifications |
| Geofencing (hardware-level) | Uses native GeofencingApi (Android) / CLRegion (iOS) | Hardware-efficient vs continuous GPS |
| iOS optimization | iOS does NOT run background service | Saves iOS battery |
| Buffer limit (500 entries) | Prevents memory buildup | Stable memory usage |
### 5.3 Performance Optimization
| Technique | Location | Benefit |
|-----------|----------|---------|
| GetX lazyPut with fenix | `app_bindings.dart` | Heavy controllers loaded on demand |
| Image compression (70%, 1024x1024) | `upload_image.dart` | Reduces upload size & bandwidth |
| Map icon resize (120x120 in isolate) | `map_engine_controller.dart` | Reduces GPU memory pressure |
| Route response caching | `map_driver_controller.dart` | Avoids redundant API calls |
| Statistics caching (3h expiry) | `statistics_controller.dart` | Reduces network calls |
| Video list caching | `video_controller.dart` | Instant load after first fetch |
| Ride list cache (5s) | `ride_available_controller.dart` | Prevents rapid re-fetching |
| Error debouncing (1 min) | `crud.dart` | Suppresses repetitive errors |
| Connectivity check before requests | `net_guard.dart` | Prevents failed network calls |
| Socket reconnection with backoff | Both socket controllers | Efficient reconnection |
| Offline map caching (10km radius) | `offline_map_service.dart` | Reduces tile downloads |
| Device tier classification | `device_tier.dart`, `device_performance.dart` | Adjusts features for low-end devices |
| Map zoom reduction on low-end | `google_map_passenger_widget.dart` | 14.5 vs 15 zoom on low-perf devices |
| WakeLock + hardware acceleration | AndroidManifest | Keeps app responsive |
### 5.4 Device Tier Classification
| Tier | Criteria | Behavior |
|------|----------|----------|
| **Low** | Score ≥ 6 (old SDK, few cores, many ABIs, emulator) | Reduced map quality, fewer animations |
| **Mid** | Score ≥ 3 | Standard experience |
| **High** | Score < 3; or whitelisted flagship models (S21+, Pixel 6+, etc.) | Full features, high-quality maps |
**Detection factors**: Android SDK version, CPU core count, supported ABIs, RAM (3GB threshold), processor blacklist (MT65xx, MT6735, SC77xx)
### 5.5 Weaknesses & Recommendations
| Issue | Current State | Recommendation |
|-------|--------------|----------------|
| **WakeLock always on** | Enabled at startup, never disabled | Enable only during active ride |
| **GPS accuracy = navigation always** | Highest accuracy even in power-save | Use `LocationAccuracy.high` in power-save mode |
| **No speed-based GPS adaptation** | Same polling regardless of speed | Pause GPS when speed = 0 (stopped) |
| **No Doze mode handling** | No special Android Doze handling | Implement doze-optimized location requests |
| **App size** | Large due to Flutter + many packages | Use Android App Bundle, remove unused deps |
| **Startup time** | Wakelock + Firebase + Location slow startup | Defer non-critical init after splash |
---
## 6. Audio & Music Features
### 6.1 Current Audio Capabilities
| Feature | Package | Purpose | Status |
|---------|---------|---------|--------|
| Text-to-Speech (TTS) | `flutter_tts` | Navigation voice guidance, accessibility | ✅ |
| Sound effects | `just_audio` | Ride request alerts, notifications | ✅ |
| Voice/Video calls | `flutter_webrtc`, Agora | Driver-passenger communication | ✅ |
| Audio recording | `record` v6 | Trip voice recording (safety) | ✅ |
| Audio upload | `upload_audio.php` | Upload recordings to server | ✅ |
### 6.2 TTS Features (Most Extensive Audio Feature)
**Driver App TTS Usage:**
- Turn-by-turn navigation voice guidance
- Ride status announcements
- Destination descriptions
- AI document verification voice prompts
- Contact us info reading
- **Mute button** with `isSpeaking` observable
**Rider App TTS Usage:**
- Dialog text reading for accessibility
- Car/ride info voiceover
- Language-auto-detection with device fallback
### 6.3 Sound Assets Inventory
**Rider App:**
| File | Purpose |
|------|---------|
| `start.wav` | Ringtone for voice calls |
| `promo.wav`, `ding.wav`, `tone2.wav` | Notifications |
| `cancel.wav` | Cancel/decline sound |
| `tone1.mp3` | Notification tone |
**Driver App:**
| File | Purpose |
|------|---------|
| `order.mp3` | New ride request alert (looped) |
| `order1.wav` | Secondary order alert |
| `aggrement.wav` | Agreement/consent confirmation |
| `alert.wav` | Generic alert |
| `iphone_ringtone.wav` | iPhone-style ringtone |
### 6.4 Voice Call Architecture
```
VoiceCallController → WebRTC PeerConnection → SignalingService (wss://calls.intaleqapp.com/ws)
→ PHP Backend (create_call_session.php)
→ FCM notification to other party
```
- States: idle → dialing → ringing → connecting → active → ended
- Features: mute, speaker toggle, 120s timer, ICE restart
### 6.5 Audio Recording
- Codec: AAC-LC, 44.1kHz, 128kbps
- Format: .m4a
- File naming: `{YYYY-MM-DD}_{rideId}.m4a`
- Playback with position tracking
### 6.6 ❗ Missing Audio/Music Features — Opportunities
| Missing Feature | Opportunity | Implementation Complexity |
|----------------|-------------|--------------------------|
| **In-cabin music streaming** | Spotify/Apple Music integration or Siro Radio | Medium |
| **Music player UI** | Playlist, controls, volume | Medium |
| **Podcasts/Audio content** | Educational content for drivers | Low |
| **Siro Radio station** | In-app radio with ads (revenue source) | Medium |
| **Voice commands** | "Hey Siro, navigate to..." | High |
| **Sound zones** | Welcome/departure music for rides | Low |
| **AI music curator** | Music based on passenger mood | High |
| **Audio ads** | Sponsored audio content before rides | Medium |
---
## 7. New Competitive Features Proposals
### 7.1 Immediate Priority (Short-term — 1-3 months)
| # | Feature | Impact | Effort | Rationale |
|---|---------|--------|--------|-----------|
| 1 | **Carpool (Ride Sharing)** | 🟢 Very High | 3-4 weeks | Multiple passengers same direction share cost — huge demand in region |
| 2 | **Scheduled Rides (حجوزات مسبقة)** | 🟢 Very High | 2-3 weeks | Book rides hours/days ahead — standard feature in Uber/Careem |
| 3 | **Smart WakeLock** | 🟡 High | 1 week | Disable Wakelock when no active ride — saves significant battery |
| 4 | **Safety Audio Recording (Auto)** | 🟡 High | 2-3 weeks | Auto-record ride audio, encrypt, upload — trust factor |
### 7.2 Medium-term (3-6 months)
| # | Feature | Impact | Effort | Rationale |
|---|---------|--------|--------|-----------|
| 5 | **Spotify/Apple Music Integration** | 🟢 Very High | 3-4 weeks | In-cabin music streaming — major differentiation |
| 6 | **AI Customer Support Chatbot** | 🟢 Very High | 4-6 weeks | Reduce support costs by 70% |
| 7 | **Split Fare (تقسيم الفاتورة)** | 🟡 High | 2 weeks | Send split request to co-passengers |
| 8 | **Parcel Tracking (تتبع الطرود)** | 🟡 High | 3-4 weeks | Tracking number, status updates for delivery |
| 9 | **Driver Dashboard (Real-time)** | 🟡 High | 2-3 weeks | Show best work times, high-demand areas, predicted earnings |
| 10 | **Voice Assistant** | 🟡 High | 4-6 weeks | "Hey Siro, take me to..." — full voice control |
### 7.3 Long-term (6-12 months)
| # | Feature | Impact | Effort | Rationale |
|---|---------|--------|--------|-----------|
| 11 | **Siro Market (E-commerce)** | 🟢 Very High | 8-12 weeks | In-app marketplace with delivery — like Careem NOW |
| 12 | **Driver Subscription Model** | 🟢 Very High | 4-6 weeks | Monthly subscription instead of commission — alternative revenue |
| 13 | **Web Version for Riders** | 🟡 High | 4-6 weeks | Book rides from browser without app install |
| 14 | **Dashcam Integration** | 🟡 High | 4-6 weeks | Connect driver dashcam, auto-upload ride video |
| 15 | **Wear OS / Apple Watch** | 🟠 Medium | 3-4 weeks | Companion app for smartwatches |
| 16 | **In-app Games (While Waiting)** | 🟠 Medium | 3-4 weeks | Lightweight games for passengers waiting for driver |
| 17 | **Zone-based Dynamic Pricing** | 🟡 High | 2-3 weeks | Event-based pricing (concert, match, rain) |
| 18 | **Siro Radio (Music + Ads)** | 🟠 Medium | 2-3 weeks | Revenue-generating audio content |
### 7.4 Feature Details — Top 5 Proposals
#### 1. 🚗 Carpool (مشاركة الرحلة)
```
Passenger A requests ride → System finds Passenger B (same direction)
→ Split cost → Both pay less → Driver earns more per trip
```
- **Algorithm**: Route matching via GIS SPATIAL queries (already exists)
- **UI**: Option "Carpool" as 13th ride type
- **Pricing**: 30-40% cheaper for passengers, driver gets 120-130% of normal fare
- **Revenue**: More trips per driver-hour, higher platform utilization
#### 2. 📅 Scheduled Rides (حجوزات مسبقة)
```
Passenger books ride for tomorrow 8 AM → System assigns driver 30 min before
→ Automatic notification to both parties
```
- **Backend**: New `scheduled_rides` table + cron job for 30-min-before matching
- **UI**: Date/time picker + "Schedule" button in ride request
- **Differentiation**: Not available in any regional competitor
#### 3. 🎵 Spotify/Apple Music Integration
```
Passenger connects Spotify account → Controls music during ride
→ Driver's car speakers play passenger's playlist
```
- **Integration**: Spotify SDK + Apple MusicKit
- **UI**: Music controls in ride screen (play/pause/skip/volume)
- **Revenue**: Affiliate revenue from premium referrals + ad revenue
#### 4. 🤖 AI Customer Support
```
Passenger types issue → AI analyzes → Auto-resolve 70% of cases
→ Escalate to human only for complex issues
```
- **Tech**: OpenAI GPT fine-tuned on Siro's FAQ and support history
- **Integration**: Chat UI already exists — plug AI into existing chat system
- **Savings**: ~70% reduction in support staff costs
#### 5. 🔋 Smart WakeLock Optimization
```dart
// Current: WakelockPlus.enable() at startup (never disabled)
// Proposed:
if (rideState == RideState.inProgress || rideState == RideState.searching) {
WakelockPlus.enable(); // Keep awake during active ride
} else {
WakelockPlus.disable(); // Allow sleep when idle
}
```
- **Impact**: 15-30% battery improvement during idle periods
- **Implementation**: 1 week, minimal risk
---
## 8. Competitor Comparison
### 8.1 Feature Comparison Matrix
| Feature | Siro (سيرو) | Uber | Careem | Bolt | YallaGo |
|---------|-------------|------|--------|------|---------|
| **Vehicle Types** | **12** | 5 | 6 | 4 | 3 |
| **Female Driver** | ✅ Yes | ❌ No (region) | ✅ Yes | ❌ No | ❌ No |
| **Multi-point trips** | ✅ (5 waypoints) | ✅ (3) | ✅ (2) | ❌ | ❌ |
| **Local Payments** | **7 methods** | 4 | 5 | 3 | 2 |
| **Android Overlay** | **✅ Unique** | ❌ | ❌ | ❌ | ❌ |
| **iOS Live Activity** | ✅ | ❌ | ❌ | ❌ | ❌ |
| **AI Document Scan** | ✅ 3 engines | ❌ Basic | ❌ Basic | ❌ | ❌ |
| **Competitor Pricing** | **✅ Real-time** | ❌ | ❌ | ❌ | ❌ |
| **Gamification** | ✅ Full system | ❌ | ❌ Limited | ❌ | ❌ |
| **Admin Panel** | **✅ 15+ modules** | ❌ Limited | ❌ Limited | ❌ | ❌ |
| **Custom Maps** | **✅ Siro Maps** | ❌ Google | ❌ Google | ❌ Google | ❌ Google |
| **Social Bot** | **✅ Unique** | ❌ | ❌ | ❌ | ❌ |
| **Price Bot** | **✅ Unique** | ❌ | ❌ | ❌ | ❌ |
| **Marketing Engine** | **✅ AI-powered** | ❌ | ❌ | ❌ | ❌ |
| **Scam Detection** | ✅ Dedicated | ✅ Basic | ❌ | ❌ | ❌ |
| **Multi-region** | 3 countries | Global | Regional | Global | 1 country |
| **Scheduled Rides** | ❌ Missing | ✅ | ✅ | ✅ | ❌ |
| **Carpool** | ❌ Missing | ✅ UberPool | ✅ Careem Carpool | ✅ | ❌ |
| **Music Streaming** | ❌ Missing | ✅ (Spotify) | ❌ | ❌ | ❌ |
### 8.2 Competitive Advantages Summary
| Advantage | Siro Strength | Competitor Weakness |
|-----------|--------------|-------------------|
| More vehicle types (12) | Niche coverage (Heavy, Nature, Female) | Limited to standard types |
| Local payment methods | Mobile money (MTN, Syriatel, E-Cash) | Limited to cards/cash |
| Full admin panel | 15+ management modules | Basic or no admin tools |
| AI-powered registration | 3 AI engines, minutes vs days | Manual or basic OCR |
| Android Overlay | Never miss a ride offer | Standard notification only |
| Custom maps (Siro Maps) | $0 map cost, no Google dependency | $800-$30k/mo Google Maps cost |
| Competitor intelligence | Real-time price scraping | Blind to market |
| Marketing automation | AI campaigns, re-engagement | Manual marketing |
| Scam detection | Dedicated module | Reactive, not proactive |
| Gamification | Driver retention + performance | High churn, no incentives |
---
## 9. Innovation Scorecard
| Category | Score (1-10) | Notes |
|----------|-------------|-------|
| **Technical Architecture** | 9/10 | Dual WebSocket, GIS SPATIAL, hybrid Redis/MySQL search |
| **Feature Completeness** | 9/10 | 200+ features across 4 apps |
| **Battery Optimization** | 7/10 | Good adaptive system, WakeLock needs improvement |
| **Performance/Lightness** | 7/10 | GetX helps, app size and startup need work |
| **Audio/Music** | 4/10 | Voice calls + TTS only — no music/entertainment |
| **AI Integration** | 9/10 | 3 AI engines, marketing AI, pricing AI |
| **Payment Coverage** | 9/10 | 7 methods including local mobile money |
| **Admin/Monitoring** | 9/10 | 15+ modules, live monitoring, audit logs |
| **Security** | 9/10 | JWT, fingerprint, SSL pinning, encryption |
| **Scalability** | 8/10 | Multi-region, modular, ready for expansion |
| **Competitor Intelligence** | 10/10 | Android bot + pricing engine — unique |
| **Marketing Automation** | 9/10 | AI content, social bot, campaigns |
| **Driver Experience** | 9/10 | Gamification, overlay, behavior scoring |
| **Passenger Experience** | 8/10 | Great core features, missing carpool/scheduling |
| **Innovation Uniqueness** | 9/10 | Custom maps, bots, overlay — truly unique in region |
| **Overall** | **8.3/10** | Strong platform with clear improvement areas |
---
## 10. Strategic Recommendations
### Immediate Actions (Next 30 Days)
1. ✅ **Add Carpool feature** — 13th ride type, route matching
2. ✅ **Implement Smart WakeLock** — battery optimization quick win
3. ✅ **Add Scheduled Rides** — basic booking table + cron job
4. ✅ **Begin music integration research** — Spotify SDK evaluation
### Short-term (Quarter 1)
1. 🎯 **Launch AI Customer Support chatbot**
2. 🎯 **Implement Safety Audio Recording (auto)**
3. 🎯 **Android App Bundle for size reduction**
4. 🎯 **Music streaming MVP — Siro Radio**
### Medium-term (Quarter 2-3)
1. 🚀 **Driver Subscription Model**
2. 🚀 **Siro Market pilot**
3. 🚀 **Voice Assistant integration**
4. 🚀 **Web version for riders**
### Long-term (Year 2)
1. 💎 **Wear OS / Apple Watch apps**
2. 💎 **Dashcam integration**
3. 💎 **AI-driven dynamic pricing 2.0**
4. 💎 **Full entertainment system (music + podcasts + games)**
---
## Appendix: Competitive Moats Summary
| Moat | Type | Defensibility |
|------|------|---------------|
| Custom Maps (Siro Maps) | Technical | 🟢 Very High — years to replicate |
| Android Bot + Social Bot | Technical + Data | 🟢 Very High — unique infrastructure |
| AI Pricing Engine | Technical + Data | 🟢 Very High — trained on market data |
| 12 Vehicle Types | Product | 🟡 Medium — copyable but time-consuming |
| Multi-region Setup (3 countries) | Operational | 🟡 Medium — operational complexity |
| Payment Integration (7 methods) | Partnership | 🟢 High — local partnerships hard to replicate |
| Driver Gamification | Product | 🟡 Medium — copyable |
| Admin Panel (15+ modules) | Product | 🟡 Medium — copyable |
| Scam Detection | Technical + Data | 🟢 High — improves with data scale |
| Marketing Engine | Technical + Data | 🟢 High — AI trained on market response |
---
> **Document Version:** 3.0
> **Last Updated:** July 2026
> **Classification:** Internal — Confidential
> **Prepared for:** Siro Management & Investor Relations
@@ -0,0 +1,490 @@
# مقترحات الميزات التنافسية الجديدة — سيرو
## New Competitive Features Proposal — Siro Platform
> **النسخة:** 2.0 | **تاريخ:** يوليو 2026 | **التصنيف:** استراتيجي — سري
---
## 📋 فهرس المحتويات
1. [الملخص التنفيذي](#1-الملخص-التنفيذي)
2. [الميزات المقترحة — حسب الأولوية](#2-الميزات-المقترحة--حسب-الأولوية)
3. [الميزات المقترحة — بالتفصيل](#3-الميزات-المقترحة--بالتفصيل)
4. [تحليل العائد على الاستثمار (ROI)](#4-تحليل-العائد-على-الاستثمار-roi)
5. [خارطة الطريق](#5-خارطة-الطريق)
6. [الملحق: استبيان السوق](#6-الملحق-استبيان-السوق)
---
## 1. الملخص التنفيذي
بناءً على التحليل الشامل لمنصة سيرو ودراسة السوق في سوريا، الأردن، ومصر، نقترح **18 ميزة تنافسية جديدة** مصنفة حسب الأولوية والأثر المتوقع.
### الميزات المقترحة (وجبة سريعة)
| # | الميزة | الفئة | الأثر | الجهد | الأولوية |
|---|--------|-------|-------|-------|----------|
| 1 | **🚗 Carpool (مشاركة الرحلة)** | نقل | 🟢 عال جداً | 3-4 أسابيع | 🥇 |
| 2 | **📅 حجوزات مسبقة (Scheduled Rides)** | نقل | 🟢 عال جداً | 2-3 أسابيع | 🥇 |
| 3 | **🤖 AI Customer Support** | خدمة | 🟢 عال جداً | 4-6 أسابيع | 🥇 |
| 4 | **🔋 Smart WakeLock** | أداء | 🟡 عال | 1 أسبوع | 🥇 |
| 5 | **🎵 Spotify/Apple Music** | ترفيه | 🟢 عال جداً | 3-4 أسابيع | 🥇 |
| 6 | **🛡️ Safety Recording (تلقائي)** | أمان | 🟢 عال جداً | 2-3 أسابيع | 🥇 |
| 7 | **👥 Split Fare (تقسيم الفاتورة)** | دفع | 🟡 عال | 2 أسبوع | 🥈 |
| 8 | **📦 Parcel Tracking** | توصيل | 🟡 عال | 3-4 أسابيع | 🥈 |
| 9 | **📊 Driver Dashboard (Real-time)** | سائق | 🟡 عال | 2-3 أسابيع | 🥈 |
| 10 | **🗣️ Voice Assistant** | تجربة | 🟡 عال | 4-6 أسابيع | 🥈 |
| 11 | **🏪 Siro Market** | تجارة | 🟢 عال جداً | 8-12 أسبوع | 🥉 |
| 12 | **🚀 Driver Subscription Model** | إيرادات | 🟢 عال جداً | 4-6 أسابيع | 🥉 |
| 13 | **🌐 Web Version للراكب** | وصول | 🟡 عال | 4-6 أسابيع | 🥉 |
| 14 | **📹 Dashcam Integration** | أمان | 🟡 عال | 4-6 أسابيع | 🥉 |
| 15 | **⌚ Wear OS / Apple Watch** | أجهزة | 🟠 متوسط | 3-4 أسابيع | 🥉 |
| 16 | **🎮 In-app Games** | ترفيه | 🟠 متوسط | 3-4 أسابيع | 🥉 |
| 17 | **🎯 Zone-based Dynamic Pricing** | تسعير | 🟡 عال | 2-3 أسابيع | 🥉 |
| 18 | **📻 Siro Radio** | ترفيه | 🟠 متوسط | 2-3 أسابيع | 🥉 |
---
## 2. الميزات المقترحة — حسب الأولوية
### 🥇 الأولوية القصوى (شهر 1-2)
الميزات التي تقدم أعلى قيمة بأقل جهد:
```
1. Smart WakeLock → جهد: 1 أسبوع → أثر: بطارية أفضل 30%
2. Scheduled Rides → جهد: 2-3 أسابيع → أثر: شريحة عملاء جديدة
3. Safety Recording (Auto) → جهد: 2-3 أسابيع → أثر: ثقة + أمان
4. Carpool (MVP) → جهد: 3-4 أسابيع → أثر: مضاعفة الرحلات
5. AI Customer Support → جهد: 4-6 أسابيع → أثر: توفير 70% دعم
```
### 🥈 الأولوية المتوسطة (شهر 3-4)
```
6. Spotify/Apple Music → جهد: 3-4 أسابيع → أثر: تمييز تنافسي
7. Split Fare → جهد: 2 أسابيع → أثر: راحة راكب
8. Parcel Tracking → جهد: 3-4 أسابيع → أثر: تحسين التوصيل
9. Driver Dashboard → جهد: 2-3 أسابيع → أثر: إنتاجية سائق
10. Voice Assistant (MVP) → جهد: 4-6 أسابيع → أثر: واجهة جديدة
```
### 🥉 الأولوية البعيدة (شهر 5-8)
```
11. Siro Market → جهد: 8-12 أسبوع → أثر: منصة تجارة
12. Driver Subscription → جهد: 4-6 أسابيع → أثر: إيراد بديل
13. Web Version → جهد: 4-6 أسابيع → أثر: وصول أوسع
14. Dashcam Integration → جهد: 4-6 أسابيع → أثر: أمان + توثيق
15. Wear OS / Watch → جهد: 3-4 أسابيع → أثر: تميز تقني
16. In-app Games → جهد: 3-4 أسابيع → أثر: تجربة انتظار
17. Zone Dynamic Pricing → جهد: 2-3 أسابيع → أثر: إيرادات إضافية
18. Siro Radio → جهد: 2-3 أسابيع → أثر: إيراد إعلاني
```
---
## 3. الميزات المقترحة — بالتفصيل
---
### الميزة 1: 🚗 Carpool — مشاركة الرحلة
#### الوصف
نظام يسمح لراكبين أو أكثر في نفس الاتجاه بمشاركة الرحلة والتكلفة.
#### آلية العمل
```
1. الراكب A يطلب رحلة إلى وجهته
2. النظام يبحث عن الراكب B (في نفس الاتجاه خلال 500m)
3. يعرض خيار "Carpool" بتكلفة مخفضة 30-40%
4. يقبل الراكبان → يتم احتساب مسار يمر بكليهما
5. السائق يستلم 120-130% من أجر الرحلة العادية
6. المنصة تربح 10-15% من كل راكب (ضعف الدخل)
```
#### الفرق بين Carpool و Mishwari الحالي
| الخاصية | Mishwari (موجود) | Carpool (مقترح) |
|---------|-----------------|-----------------|
| المستخدم | راكب واحد (5 نقاط) | راكبان مختلفان |
| التكلفة | يدفع راكب واحد | يتقاسم الراكبان |
| الربح للمنصة | عمولة رحلة واحدة | عمولتان (ضعف) |
| الربح للسائق | أجر رحلة عادية | أجر أعلى 20-30% |
#### متطلبات التنفيذ
- **الواجهة**: إضافة "Carpool" كنوع رحلة 13
- **الخوارزمية**: مطابقة المسارات عبر GIS SPATIAL (موجود)
- **التسعير**: نموذج تسعير خاص لـ Carpool
- **التكامل**: WebSocket للبحث عن الراكب الثاني
#### العائد المتوقع
| المؤشر | القيمة |
|--------|--------|
| زيادة عدد الرحلات لكل سائق | +40-60% |
| توفير للراكب | 30-40% |
| زيادة دخل المنصة لكل راكب | +80-100% (عمولتان) |
| رضا السائقين | +25% |
---
### الميزة 2: 📅 حجوزات مسبقة (Scheduled Rides)
#### الوصف
حجز رحلة مسبقاً (قبل ساعات أو أيام) مع تأكيد تلقائي.
#### آلية العمل
```
1. الراكب يختار "حجز مسبق"
2. يحدد: التاريخ، الوقت، نقطة الانطلاق، الوجهة
3. النظام يؤكد الحجز فوراً
4. قبل 30 دقيقة من الموعد → يبحث النظام عن سائق
5. السائق يؤكد → إشعار للراكب
6. إذا لم يوجد سائق → إشعار وإلغاء مجاني
```
#### المتطلبات التقنية
| المكون | الوصف | الجهد |
|--------|-------|-------|
| جدول `scheduled_rides` | DB new table | يوم |
| صفحة اختيار الوقت | Date/Time picker UI | 3 أيام |
| Cron job | 30-min قبل الموعد | 2 يوم |
| Matching algorithm | تعديل الموجود | 3 أيام |
| Notifications | تأكيد + تذكير | يومين |
#### العائد المتوقع
- فتح شريحة جديدة من الركاب (رحلات المطار، المواعيد)
- زيادة ولاء الركاب النظاميين
- تمييز عن المنافسين المحليين (YallaGo, Zakinn)
---
### الميزة 3: 🤖 AI Customer Support
#### الوصف
شات بوت ذكي يجيب على 70% من استفسارات الركاب والسائقين تلقائياً.
#### آلية العمل
```
استفسار من المستخدم
↓
AI Bot (OpenAI GPT fine-tuned on Siro FAQ + history)
↓
┌──────────────────────┐
│ مفهوم؟ │ ← إجابة فورية + زر "هل ساعدك؟"
│ غير مفهوم أو معقد │ ← تحويل لفريق الدعم البشري
└──────────────────────┘
```
#### التحسينات المطلوبة على الكود الموجود
```dart
// الموجود: chat UI + PHP backend للدردشة
// المطلوب إضافته:
1. Endpoint: POST /api/support/ai-query
2. AI prompt مع Siro-specific context
3. Confidence scoring (إذا > 85% → إجابة تلقائية)
4. Feedback: "هل حل هذا مشكلتك؟" ← تدريب مستمر للـ AI
5. Escalation: تحويل تلقائي للدعم البشري
```
#### التوفير المتوقع
| المؤشر | القيمة |
|--------|--------|
| نسبة الأتمتة | 70% من الاستفسارات |
| توفير في فريق الدعم | 50-70% |
| وقت الرد للاستفسارات الآلية | < 3 ثوانٍ |
| رضا المستخدمين | متوقع +15% |
---
### الميزة 4: 🔋 Smart WakeLock
#### الوصف
تشغيل WakeLock فقط عند الحاجة (أثناء الرحلة النشطة) بدلاً من تشغيله الدائم.
#### التغيير على الكود الموجود
```dart
// ======== الوضع الحالي (مشكلة) ========
// في main.dart (سطر 87):
await WakelockPlus.enable(); // دائم — يستهلك بطارية
// ======== الوضع المقترح ========
// في ride_lifecycle_controller.dart:
class RideLifecycleController extends GetxController {
RideState _currentState = RideState.noRide;
void onRideStateChanged(RideState newState) {
switch (newState) {
case RideState.searching:
case RideState.driverApplied:
case RideState.driverArrived:
case RideState.inProgress:
WakelockPlus.enable(); // تشغيل أثناء الرحلة
break;
case RideState.noRide:
case RideState.cancelled:
case RideState.finished:
WakelockPlus.disable(); // إيقاف خارج الرحلة
break;
}
_currentState = newState;
}
}
```
#### التأثير على البطارية
| الحالة | الوضع الحالي | الوضع المقترح | التوفير |
|--------|--------------|---------------|---------|
| خارج الرحلة (16 ساعة) | WakeLock دائم | WakeLock متوقف | 🔋 100% توفير |
| أثناء الرحلة (8 ساعات) | WakeLock دائم | WakeLock دائم | 🔋 0% توفير |
| **إجمالي اليوم** | 24 ساعة WakeLock | 8 ساعات WakeLock | **67% توفير** |
---
### الميزة 5: 🎵 Spotify/Apple Music Integration
#### الوصف
السماح للراكب بالتحكم بالموسيقى أثناء الرحلة عبر ربط حساب Spotify.
#### آلية العمل
```
1. الراكب يربط حساب Spotify من الإعدادات
2. أثناء الرحلة، تظهر أيقونة موسيقى
3. الراكب يختار قائمة تشغيل أو أغنية
4. الصوت يشتغل عبر سماعات السيارة (بلوتوث)
5. السائق يتحكم بمستوى الصوت
```
#### المكونات المطلوبة
```
┌─────────────────────────────────────────────┐
│ MUSIC INTEGRATION │
├─────────────────────────────────────────────┤
│ │
│ Passenger App: │
│ ┌─────────────────────────────┐ │
│ │ Spotify SDK / Apple MusicKit │ │
│ │ Auth + Playback Controls │ │
│ │ UI: Play/Pause/Skip/Volume │ │
│ └─────────────┬───────────────┘ │
│ │ │
│ Driver App: │
│ ┌─────────────▼───────────────┐ │
│ │ Volume Control │ │
│ │ Mute Button │ │
│ └─────────────────────────────┘ │
│ │
│ Revenue: │
│ - Spotify Premium referral (affiliate) │
│ - تمايز عن المنافسين │
└─────────────────────────────────────────────┘
```
---
### الميزة 6: 🛡️ Safety Recording (تلقائي)
#### الوصف
تسجيل تلقائي للصوت (وربما الفيديو لاحقاً) أثناء الرحلة مع رفع مشفر للخادم.
#### آلية العمل
```
1. عند بدء الرحلة → بدء التسجيل التلقائي
2. تسجيل مستمر للصوت (AAC-LC 44.1kHz)
3. تشفير التسجيل AES-256 قبل الرفع
4. رفع إلى الخادم مع نهاية الرحلة
5. متاح للراكب والسائق لمدة 48 ساعة
6. يحذف تلقائياً بعد 48 ساعة (ما لم يُبلغ عن مشكلة)
```
#### التحسينات على الكود الموجود
```dart
// AudioRecorderController موجود بالفعل — نحتاج:
1. Auto-start عند ride.start
2. Auto-stop عند ride.end
3. Encryption قبل الرفع
4. Upload عند انتهاء الرحلة
5. UI indicator: ● Recording (أثناء التسجيل)
```
---
### الميزة 7: 👥 Split Fare (تقسيم الفاتورة)
#### الوصف
إرسال طلب تقسيم الفاتورة للراكبين الآخرين في نفس الرحلة.
```
1. بعد انتهاء الرحلة → زر "تقسيم الفاتورة"
2. اختيار جهات الاتصال (من التطبيق أو هاتف)
3. إرسال رابط دفع لكل شخص
4. كل شخص يدفع حصته عبر المحفظة
5. السائق يستلم المبلغ كاملاً
```
---
### الميزة 8: 📦 Parcel Tracking (تتبع الطرود)
#### الوصف
لخدمة Delivery، إضافة رقم تتبع وتحديثات حالة للطرد.
```
1. المرسل يطلب Delivery
2. يولد النظام رقم تتبع فريد
3. تحديثات: تم الاستلام → في الطريق → تم التوصيل
4. المرسل والمستلم يتلقون إشعارات
5. إثبات استلام (صورة + توقيع)
```
---
### الميزة 9: 📊 Driver Real-time Dashboard
#### الوصف
لوحة قيادة ذكية للسائق تعرض أفضل أوقات العمل والمناطق.
```
المحتوى:
🕐 أفضل أوقات العمل (حسب التاريخ)
📍 المناطق الأعلى طلباً (Heatmap محدث)
💰 الأرباح المتوقعة (AI prediction)
📈 مقارنة أداء مع السائقين الآخرين
🎯 اقتراحات ذكية (اذهب إلى المنطقة X)
```
---
### الميزة 10: 🗣️ Voice Assistant
#### الوصف
مساعد صوتي متكامل للسائق والراكب.
```
أمر صوتي ← Speech-to-Text ← NLP (معالجة) ← تنفيذ
أمثلة:
- "خذني إلى شارع بغداد" → طلب رحلة
- "كم ربحت اليوم؟" → عرض الإحصائيات
- "اتصل بالراكب" → بدء مكالمة
- "شبك واي فاي" → إيقاف استقبال الطلبات
التقنية: Speech-to-Text (Google/Apple) + NLP (OpenAI/llama)
```
---
### الميزة 11: 🏪 Siro Market
#### الوصف
سوق إلكتروني داخل التطبيق للمتاجر المحلية مع توصيل فوري.
```
┌─────────────────────────────────────┐
│ SIRO MARKET │
├─────────────────────────────────────┤
│ │
│ 🏪 متاجر: مواد غذائية، صيدليات، │
│ إلكترونيات، ملابس │
│ 🚚 توصيل: خلال 30-60 دقيقة │
│ 💳 دفع: جميع طرق سيرو │
│ ⭐ تقييم المتاجر + المنتجات │
│ │
│ يشبه: Careem NOW / Talabat │
└─────────────────────────────────────┘
```
---
### الميزة 12: 🚀 Driver Subscription Model
#### الوصف
نموذج اشتراك شهري بديل عن العمولة.
```
┌─────────────────────────────────────┐
│ خطط الاشتراك للسائقين │
├────────────┬────────────┬───────────┤
│ Basic │ Premium │ VIP │
│ $29/شهر │ $79/شهر │ $199/شهر │
│────────────┼────────────┼───────────┤
│ عمولة 10% │ عمولة 5% │ عمولة 0% │
│ دعم عادي │ دعم VIP │ أولوية │
│ │ تقارير │ مدير حساب │
└────────────┴────────────┴───────────┘
```
---
## 4. تحليل العائد على الاستثمار (ROI)
### 4.1 جدول المقارنة المالية
| الميزة | التكلفة المقدرة | الإيراد الشهري المتوقع | ROI (شهر) |
|--------|-----------------|------------------------|-----------|
| Carpool | $3,000-$5,000 | $2,000-$5,000 | 1-2 شهر |
| Scheduled Rides | $2,000-$3,000 | $1,000-$3,000 | 1-3 شهر |
| AI Support | $2,000-$4,000 | توفير $1,500-$3,000 | 1-3 شهر |
| Smart WakeLock | $300-$500 | غير مباشر (تحسين) | فوري |
| Spotify Music | $2,000-$4,000 | $500-$2,000 | 2-4 شهر |
| Safety Recording | $1,000-$2,000 | غير مباشر (ثقة) | 3-6 شهر |
| Siro Market | $8,000-$15,000 | $5,000-$15,000 | 1-3 شهر |
| Subscription | $2,000-$3,000 | $3,000-$8,000 | 1 شهر |
### 4.2 أولويات ROI
```
الأعلى عائداً:
1. Driver Subscription → ROI فوري (شهر 1)
2. Carpool → ROI 1-2 شهر
3. AI Support → ROI 1-3 شهر (توفير)
4. Scheduled Rides → ROI 1-3 شهر
5. Siro Market → ROI 1-3 شهر (أعلى إيراد)
6. Spotify Music → ROI 2-4 شهر
7. Safety Recording → غير مباشر
8. Smart WakeLock → غير مباشر
```
---
## 5. خارطة الطريق
```
الشهر 1 الشهر 2 الشهر 3 الشهر 4
────────────────────────────────────────────────────────────────────
🔋 Smart WL 🎵 Spotify 📊 Driver Dash 🗣️ Voice Asst
📅 Scheduled 🛡️ Safety Rec 👥 Split Fare ⌚ Watch App
🤖 AI Support 🚗 Carpool 📦 Parcel Track 🚀 Subscription
🏪 Siro Market
تحسينات سريعة ميزات تنافسية توسع + تكامل منصات جديدة
```
---
## 6. الملحق: استبيان السوق
### أسئلة لتوجيه الأولويات (يُجرى مع 100 مستخدم):
1. **أي ميزة تريدها في تطبيق النقل؟**
- [ ] مشاركة الرحلة (Carpool)
- [ ] حجز مسبق
- [ ] موسيقى في السيارة
- [ ] تقسيم الفاتورة
2. **هل ستدفع اشتراك شهري لتطبيق النقل؟**
- [ ] نعم (بدون عمولة)
- [ ] لا أفضل العمولة
- [ ] ربما
3. **هل تثق بتسجيل الصوت التلقائي للرحلة؟**
- [ ] نعم — يزيد الأمان
- [ ] لا — قلق على الخصوصية
- [ ] لا أعرف
4. **هل تستخدم Spotify أو Apple Music؟**
- [ ] Spotify
- [ ] Apple Music
- [ ] لا أستخدم
- [ ] YouTube Music
---
> **تم إعداد هذا التقرير بناءً على تحليل الكود المصدري الكامل لمنصة سيرو ودراسة السوق في سوريا، الأردن، ومصر.**
>
> **النسخة:** 2.0 | **تاريخ:** يوليو 2026 | **التصنيف:** استراتيجي — سري
+843
View File
@@ -0,0 +1,843 @@
# منصة سيرو — الوضع الحالي والميزات الموجودة
## Siro Platform — Current State & Existing Features
> **التصنيف:** سري | داخلي | للمستثمرين
> **آخر تحديث:** يوليو 2026
> **النسخة:** v1.0
> **الغرض:** عرض الحالة الحالية للمنصة - الميزات الموجودة الآن
---
## جدول المحتويات
1. [نظرة عامة سريعة](#نظرة-عامة-سريعة)
2. [على ماذا يعتمد التطبيق تقنياً](#على-ماذا-يعتمد-التطبيق-تقنياً)
3. [الميزات الموجودة حالياً](#الميزات-الموجودة-حالياً)
4. [تطبيقات المستخدمين](#تطبيقات-المستخدمين)
5. [الخوادم والأنظمة](#الخوادم-والأنظمة)
6. [الدوافع والروبوتات](#الدوافع-والروبوتات)
7. [أنظمة الأمان](#أنظمة-الأمان)
8. [التكاملات الخارجية](#التكاملات-الخارجية)
---
## الملخص التنفيذي
سيرو منصة نقل متكاملة وسيرة ذاتية تتميز بـ:
| المؤشر | القيمة |
|-------|-------|
| **دول التشغيل** | سوريا ✅ | الأردن ✅ | مصر 🚀 |
| **السائقين النشطين** | 2,000+ |
| **الركاب النشطين** | 2,500+ |
| **أنواع المركبات** | 12 نوع فريد |
| **طرق الدفع المدعومة** | 7 خيارات محلية |
| **محركات الذكاء الاصطناعي** | 3 (Azure OCR, OpenAI, Llama) |
| **الروبوتات الذكية** | 2 (Android Bot + Social Bot) |
| **معدل التوفير السنوي** | $500K+ (بدون Google Maps, SMS API, وغيرها) |
---
## الميزات التقنية الفريدة
### 1. 🗺️ خرائط مملوكة (Siro Maps / Map SaaS)
**المشكلة الأصلية:**
- Google Maps تكلف $800 - $30,000 شهرياً حسب عدد الطلبات
- تعتمد على شركة خارجية (قد توقف الخدمة أي وقت)
- قيود API وحدود استخدام
**الحل لدينا:**
- ✅ خرائط مملوكة بالكامل من Siro
- ✅ تحديث كل 10 أيام بـ **$0 تكلفة**
- ✅ توجيه مخصص، البحث عن الأماكن، تشفير يدوي
- ✅ استقلالية كاملة عن Google
**التوفير السنوي:**
```
$800-$30,000/شهر × 12 شهر = $10K - $360K / السنة
✅ توفير متوسط: ~$150K سنوياً
```
---
### 2. 📱 نظام العروض الأصلي (Android Native Overlay)
**المشكلة:**
- التطبيقات العادية تستخدم إخطارات عادية (يمكن أن تغيبها)
- إذا كان الهاتف مغلقاً أو التطبيق مأغلقاً → تفويت العرض
**الحل:**
```dart
class TripOverlayPlugin {
// عرض عائم فوق جميع التطبيقات
// يعمل حتى لو كان الهاتف مأغلقاً
// عداد تنازلي 15 ثانية مدمج
// قبول/رفض من العرض مباشرة
}
```
**الفائدة:**
- ✅ **لا تفويت عروض أبداً**
- ✅ زيادة معدل قبول العروض بـ **35-40%**
- ✅ تجربة فريدة لا تملكها أي تطبيق آخر في المنطقة
---
### 3. 🤖 ثلاث محركات ذكاء اصطناعي للمستندات
**المشكلة:**
- تسجيل السائق يستغرق **أيام** (التحقق اليدوي)
- كل OCR قد يفشل أو يتطلب إعادة تقديم
- تجربة سيئة للسائق الجديد
**الحل:**
```
مستند السائق (رخصة، تأمين، إلخ)
↓
┌────────────────────────────────────────┐
│ Azure OCR → استخراج النصوص │
│ OpenAI GPT → فهم البيانات والتحقق │
│ Llama AI → بديل احتياطي/حل بديل │
└────────────────────────────────────────┘
↓
✅ نتيجة موثوقة في **دقائق** (ليس أيام)
```
**التوفير:**
- ✅ **توفير 80% من وقت التحقق اليدوي**
- ✅ زيادة عدد السائقين الجدد في الشهر بـ **3-5 مرات**
---
### 4. 📊 نظام التسعير الديناميكي الذكي (Kazan)
**الميزة:**
- عمولة **مختلفة لكل دولة، مدينة، نوع مركبة**
- تعديل تلقائي بناءً على نشاط المنافسين
- شفافية كاملة للسائق قبل قبول العرض
```
السائق يرى:
┌──────────────────────┐
│ السعر: 500 ليرة │
│ عمولتك (Kazan): 20% │
│ صافي كسبك: 400 ليرة │
└──────────────────────┘
```
**الفائدة:**
- ✅ عمولات أقل في المناطق الكثيفة (15%) للحفاظ على السائقين
- ✅ عمولات أعلى في المناطق القليلة (25%) لتحفيز التغطية
- ✅ **سائقين أكثر رضى** = أداء أفضل
---
### 5. 🔍 محرك الذكاء الاصطناعي للتسعير (Pricing Engine)
**التقنية:**
- Node.js + TypeScript
- تحليل إحصائي: MAD (Mean Absolute Deviation), K-Means Clustering
- تحليل الانحدار
**الميزة الفريدة:**
- ✅ **يشاهد أسعار المنافسين في الوقت الفعلي** (عبر Android Bot)
- ✅ يقدم مقارنة أسعار للراكب
- ✅ يعدل الأسعار تلقائياً للبقاء تنافسياً
**مثال:**
```
راكب يطلب رحلة → سيرو $12
Uber $15 ❌ (أغلى)
Careem $13 ❌ (أغلى قليلاً)
✅ سيرو هي الأرخص! → معدل تحويل أعلى
```
---
### 6. 🚨 نظام كشف الاحتيال (Scam Detection)
**المشكلة:**
- سائقون وهميون يقبلون العروض ثم يلغونها
- رحلات وهمية تكلف الجميع
**الحل:**
```
كل رحلة تُحلل بـ:
├── سلوك السائق التاريخي
├── نمط الملغيات
├── الانحرافات عن المسار
├── السرعة الغير طبيعية
└── أنماط الاحتيال المعروفة
→ اكتشاف وسحب الحساب تلقائياً
```
**الفائدة:**
- ✅ **رحلات آمنة موثوقة**
- ✅ ثقة عالية من الركاب
- ✅ راكبين أكثر = أرباح أعلى
---
### 7. 📡 بنية WebSocket المزدوجة
**الميزة:**
```
Driver Socket (Port 2021) ← موقع السائق + عروض الرحلات
(حركة مرور عالية من الأماكن)
Passenger Socket (Port 3031) ← طلبات الركاب + تتبع السائق
(عمليات أقل تكراراً)
```
**الفائدة:**
- ✅ **لا يوجد اختناق** (traffic bottleneck)
- ✅ كل جانب له نقطة اتصال مخصصة
- ✅ أداء أسرع وأكثر موثوقية
---
### 8. 🎮 نظام التغييرات (Gamification)
**الفئات:**
- 4 مستويات: برونز → فضة → ذهب → الماس
- تقليل عمولة بـ **1-5%** حسب المستوى
- إنجازات: أول رحلة، 100 رحلة، 7 أيام متتالية، إلخ
- تحديات يومية وأسبوعية
**مثال:**
```
سائق عادي: 20% عمولة
سائق ماس: 15% عمولة (توفير 5%)
على 100 رحلة × $10 = $1000:
عادي: $200 عمولة
ماس: $150 عمولة → توفير $50
```
**الفائدة:**
- ✅ **احتفاظ السائقين أعلى**
- ✅ أداء أفضل
- ✅ رحلات أكثر
---
## نظم الأتمتة والذكاء الاصطناعي
### 1. 🤖 روبوت الأسعار (Android Bot)
**المهمة:**
- يفتح تطبيقات المنافسين تلقائياً
- يحصل على الأسعار الحالية
- يرسلها لمحرك التسعير
**التطبيقات المراقبة:**
- Uber, Careem, Bolt, YallaGo, Zakinn, Tfadal, TaxiF
**التوفير:**
- ✅ بدل دفع فريق متفرغ لمراقبة الأسعار يدوياً
- ✅ تحديثات فورية 24/7
---
### 2. 📱 روبوت وسائل التواصل (Social Bot)
**القدرات:**
```
Facebook:
├── قراءة التعليقات
├── الرد التلقائي (AI-generated)
└── تصفح ذكي للمنشورات
Instagram:
├── تصفح التغذيات
├── البحث عن علامات تصنيف
└── التعليق الذكي
Telegram:
├── خدش قنوات (Scraping)
└── استخراج المحتوى
```
**الفائدة:**
- ✅ **تسويق مجاني 24/7**
- ✅ توليد العملاء المحتملين بلا تكلفة
- ✅ تفاعل سريع مع الجماهير
---
### 3. 📧 محرك التسويق الذكي (Marketing Engine)
**المهام المؤتمتة:**
| الآلية | الغرض | التكرار |
|--------|-------|---------|
| `cron_auto_marketing_pusher.php` | إرسال رسائل ترويجية ذكية | كل ساعة |
| `cron_passenger_reengagement.php` | إعادة تفعيل الركاب النائمين | يومي |
| `cron_silent_push_inactive.php` | دفع صامت لتحديث الموقع | كل 4 ساعات |
| `cron_ai_engine.php` | تحليل التسعير العكسي | كل ساعة |
| `cron_kazan_adjuster.php` | ضبط العمولات | كل ساعة |
| `cron_gemini_advisor.php` | تحليل استراتيجي أسبوعي | أسبوعياً |
| `cron_predictive_demand.php` | التنبؤ بالطلب | كل 6 ساعات |
| `cron_seasonal_pricing.php` | تسعير موسمي | يومياً |
| `cron_surge_opportunity.php` | اكتشاف فرص الارتفاع | كل 15 دقيقة |
**مثال نتيجة:**
```
الراكب الغير نشط لمدة 3 أيام:
AI يحلل: "هذا الراكب يحب الرحلات الليلية"
يرسل: "عرض خاص: 20% خصم على الرحلات بعد 10 ليلاً"
→ 30-40% معدل استجابة
```
**التوفير:**
- ✅ **بدل فريق تسويق كامل**
- ✅ تسويق مخصص 24/7
- ✅ ROI أعلى من التسويق اليدوي
---
### 4. 🎬 خط أنابيب المحتوى (Content Pipeline)
**العملية:**
```
AI Script Writer
↓ (يكتب نص ترويجي)
ElevenLabs (صوت)
↓ (ينطق النص)
Creatomate / HeyGen (فيديو)
↓ (ينتج فيديو احترافي)
📱 إرسال تلقائي للركاب والسائقين
```
**الفائدة:**
- ✅ **مئات مقاطع الفيديو بلا استوديو**
- ✅ تكلفة = ركض كود فقط
- ✅ توفير $5K-$20K شهرياً (إنتاج فيديو عادي)
---
### 5. 🔔 نظام الإشعارات الذكي
**الإشعارات المؤتمتة:**
```
الراكب ينتظر → تنبيهات كل 30 ثانية
السائق بعيد 5 دقائق → "سائقك قادم خلال 5 دقائق"
تأخر السائق عن الموعد → "عذراً، سائقك متأخر، سندرك بسرعة"
انتهاء الرحلة → "قيّم رحلتك وربح نقاط!"
```
**الفائدة:**
- ✅ تقليل إلغاءات الرحلات
- ✅ تجربة أفضل
- ✅ رحلات أكثر مكتملة
---
## التوفيرات المالية
### 📊 جدول التوفيرات السنوية الشاملة
| البند | التكلفة العادية | تكلفة سيرو | التوفير | النسبة |
|------|-----------------|-----------|---------|--------|
| **خدمة الخرائط** | $150K-$360K | $0 | $150K-$360K | **100%** |
| **خدمة الرسائل (SMS/API)** | $50K-$100K | $5K* | $45K-$95K | **90%** |
| **خدمة التسويق الآلي** | $80K-$150K** | $0 | $80K-$150K | **100%** |
| **خدمة دعم العملاء*** | $120K-$200K | $20K**** | $100K-$180K | **80%** |
| **أتمتة العمليات** | $60K-$100K | $0 | $60K-$100K | **100%** |
| **جمع ذكاء المنافسين** | $50K-$80K | $0 | $50K-$80K | **100%** |
**الإجمالي السنوي:** **$485K - $965K توفير** ✅
---
### تفاصيل التوفيرات:
#### 1️⃣ خدمة الخرائط (-$150K-$360K سنوياً)
```
Google Maps API:
- بطاقات في التطبيق: $7-$10 لكل 1000 طلب
- إذا كان 1 مليون طلب شهرياً:
1M × $0.00875 = $8,750/شهر = $105K/السنة
- بيانات المواقع: إضافية $50K-$100K
- التوجيه: إضافية $30K-$50K
→ **الإجمالي: $185K-$255K/السنة**
سيرو Maps:
- خادم مملوك
- تحديث كل 10 أيام = دفعة واحدة
- لا توجد رسوم استخدام API
→ **التكلفة: $0/السنة**
🎯 التوفير: $150K-$360K/السنة (بناءً على الحجم)
```
#### 2️⃣ خدمات الرسائل (-$45K-$95K سنوياً)
```
Twilio (SMS API):
- $0.0075 لكل رسالة
- 100K رسالة شهرياً = $750/الشهر = $9K/السنة
- مع WhatsApp API: $14K-$25K/السنة
سيرو:
- خادم رسائل مملوك
- تكامل مع Twilio و WhatsApp
- تخزين محلي مؤقت
→ **تكلفة: $5K أو أقل**
🎯 التوفير: $45K-$95K/السنة
```
#### 3️⃣ التسويق الآلي (-$80K-$150K سنوياً)
```
خدمات التسويق العادية:
- HubSpot / ActiveCampaign: $2K-$5K/الشهر = $24K-$60K/السنة
- فريق تسويق: 2-3 موظفين = $50K-$100K/السنة
→ **الإجمالي: $74K-$160K/السنة**
سيرو:
- Cron jobs مؤتمتة بالكامل
- AI-powered campaigns
- فريق تطوير موجود = $0 إضافي
→ **التكلفة: $0/السنة**
🎯 التوفير: $80K-$150K/السنة
```
#### 4️⃣ دعم العملاء (-$100K-$180K سنوياً)
```
دعم عادي:
- 10-15 موظف دعم = $100K-$150K/السنة
- نظام تذاكر (Zendesk): $5K-$10K/السنة
→ **الإجمالي: $105K-$160K/السنة**
سيرو:
- Chatbot AI (OpenAI fine-tuned)
- يحل 70% من المشاكل تلقائياً
- يحتاج 2-3 موظفين فقط للحالات المعقدة = $20K/السنة
→ **التكلفة: $20K/السنة**
🎯 التوفير: $85K-$140K/السنة
```
#### 5️⃣ جمع ذكاء المنافسين (-$50K-$80K سنوياً)
```
الطريقة التقليدية:
- فريق يفتح التطبيقات يدوياً كل يوم
- 2-3 موظفين متفرغين = $40K-$70K/السنة
- تأخر في جمع البيانات
سيرو:
- Android Bot يعمل 24/7
- تحديثات كل 15 دقيقة
- لا موظفين إضافيين = $0 تكلفة إضافية
→ **التكلفة: $0 إضافية/السنة**
🎯 التوفير: $50K-$80K/السنة
```
---
## الاستقلالية عن الأطراف الثالثة
### الخدمات المملوكة (In-House)
| الخدمة | المزود التقليدي | الحل بسيرو | الاستقلالية | التوفير |
|--------|-----------------|-----------|------------|---------|
| 🗺️ الخرائط | Google Maps | Siro Maps | ✅ 100% | $150K+ |
| 📍 التوجيه | Google Routes | OSRM + Custom | ✅ 95% | $50K+ |
| 📱 الرسائل | Twilio | خادم مملوك + Twilio | ✅ 80% | $45K+ |
| 💬 Chat | Firebase | خادم PHP/WebSocket | ✅ 100% | $20K+ |
| 📊 التحليلات | Mixpanel/Amplitude | MySQL + الرسم البياني المخصص | ✅ 100% | $30K+ |
| 🔐 المصادقة | Firebase Auth | JWT مخصص | ✅ 100% | $10K+ |
| 💾 التخزين | Firebase Storage | S3 + خادم مملوك | ✅ 80% | $25K+ |
| 📺 الفيديو | AWS Elemental | ffmpeg + خادم مملوك | ✅ 90% | $40K+ |
| 🎤 الصوت | Twilio Voice | Agora + WebRTC | ✅ 95% | $30K+ |
**النتيجة:**
- ✅ **عدم الاعتماد على منصات خارجية** → حرية كاملة
- ✅ **بيانات المستخدمين محلية تماماً** → أمان + خصوصية
- ✅ **توفير $430K+** من رسوم الأطراف الثالثة
---
## ميزات السائق
### 🎯 نظام التحفيز الشامل
#### المكافآت الفورية:
```
كل 5 رحلات → 5 نقاط
كل 50 ريال كسب → 1 نقة
كل 50 تقييم 5 نجوم → 10 نقاط
النقاط:
- 100 نقطة = خصم 10% من العمولة (الشهر التالي)
- 250 نقطة = خصم 15% + بطل الشهر
- 500 نقطة = ترقية إلى ماسي (عمولة 15% دائمة)
```
#### التحديات اليومية:
```
- أكمل 5 رحلات → 50 ريال مكافأة
- أكمل 10 رحلات → 100 ريال مكافأة
- اكسب 500 ريال → 50 ريال مكافأة
```
#### المتتاليات:
```
7 أيام متتالية = 200 ريال مكافأة
14 يوم متتالي = 500 ريال مكافأة
30 يوم متتالي = 1000 ريال مكافأة + بطاقة ماس
```
---
### 📊 لوحة معلومات السائق
```
┌─────────────────────────────────────┐
│ إحصائياتك اليوم │
├─────────────────────────────────────┤
│ رحلات مكتملة: 15 │
│ كسبك: 750 ريال │
│ هدفك: 1000 ريال (اكسب 250 أخرى) │
│ المتبقي من اليوم: 6 ساعات │
├─────────────────────────────────────┤
│ 🎯 إذا استمررت: ستكسب 950 ريال │
│ 🚀 إذا زادت السرعة: 1000+ ريال │
└─────────────────────────────────────┘
لوحة بيانات المهام:
- أعلى الأوقات كسباً
- أفضل المناطق (الطلب)
- تنبيهات الفرص (surge pricing)
```
---
### 🎖️ نظام الشارات والمستويات
```
Bronze (0-99 نقطة) → عمولة عادية 20%
Silver (100-249 نقطة) → عمولة 19%
Gold (250-499 نقطة) → عمولة 18%
Diamond (500+ نقطة) → عمولة 15% + مميزات خاصة
المميزات الخاصة لـ Diamond:
✅ فترات عمل مرنة
✅ عروض خاصة من المتاجر
✅ أولوية في الطلبات المرتفعة السعر
✅ إشعارات surge pricing فورية
✅ دعم VIP
```
---
### 🏆 لوحة الترتيب
```
هذا الأسبوع:
🥇 أحمد محمود: 150 رحلة (أرباح: 8000 ريال)
🥈 سارة الحسن: 145 رحلة (أرباح: 7800 ريال)
🥉 محمد علي: 140 رحلة (أرباح: 7600 ريال)
المكافآت:
🥇 500 ريال + 100 نقطة
🥈 300 ريال + 60 نقطة
🥉 150 ريال + 30 نقطة
```
---
### 📱 ميزات عملية
| الميزة | الفائدة |
|--------|---------|
| **عرض عائم (Overlay)** | لن تفويت عرض رحلة أبداً |
| **تنبيهات صوتية** | اسمع العرض حتى لو كان الهاتف مأغلقاً |
| **توجيه صوتي** | استمع للاتجاهات بدون لمس الهاتف |
| **اكتشاف الاحتيال** | حماية من العملاء الوهميين |
| **قائمة الأمان** | أرقام الطوارئ + ميزات الأمان |
| **صور الركاب** | اعرف من تلتقط قبل القبول |
---
## ميزات الراكب
### 🎯 خيارات الرحلات (12 نوع)
| النوع | الاستخدام | المميز |
|------|-----------|--------|
| **Speed** | رحلات عادية سريعة | اقتصادي ✅ |
| **Comfort** | راحة + سيارة أحدث | فاخر |
| **Family** | عائلات + مساحة أكبر | آمن للأطفال |
| **Delivery** | طرود وطلبيات | توصيل سريع |
| **Blash** | اقتصادي جداً | أرخص سعر |
| **Late** | رحلات ليلية | خصم ليلي 20% |
| **Heavy** | شحنات ثقيلة | معدات خاصة |
| **Nature** | رحلات ريفية | آمن للطرقات الوعرة |
| **Electric** | صديق للبيئة | بطارية كهربائية |
| **PinkBike** | دراجة نارية | سريع في الزحام |
| **Van** | ميني باص | مجموعات كبيرة |
| **Female Driver** | سائقة امرأة | آمن وثقة |
---
### 🛣️ رحلات متعددة النقاط (Mishwari)
```
الراكب: "أريد أن أذهب لـ 3 أماكن"
✅ سيرو يسمح:
├── المحطة 1: المدرسة (08:00)
├── المحطة 2: العمل (09:00)
└── المحطة 3: البيت (17:00)
السعر:
- نقطة واحدة = $5
- نقطة ثانية = $3
- نقطة ثالثة = $2
→ الإجمالي: $10 (أرخص من 3 رحلات منفصلة)
```
**الفائدة:**
- ✅ توفير الراكب 20-30%
- ✅ رحلات أكثر للسائق
- ✅ استخدام أفضل للمركبة
---
### 💰 طرق الدفع (7 خيارات محلية)
```
كل بلد له:
سوريا:
- نقد
- Visa/Mastercard
- محفظة سيرو
- MTN Mobile Money
- Syriatel Mobile Money
الأردن:
- نقد
- Visa/Mastercard
- محفظة سيرو
- JIO (local)
مصر:
- نقد
- Visa/Mastercard
- محفظة سيرو
- E-Cash
- CLIQ
```
---
### 📊 مقارنة الأسعار الفورية
```
الراكب يطلب رحلة:
┌──────────────────────────────────┐
│ 🏆 سيرو: $12 │
│ Uber: $15 (+25%) │
│ Careem: $14 (+17%) │
│ Bolt: $13 (+8%) │
└──────────────────────────────────┘
✅ سيرو هي الأرخص!
→ معدل تحويل أعلى بـ 40-50%
```
---
### 🎁 برنامج الإحالة الموحد
```
الراكب يحصل على:
- كود إحالة فريد
- 100 ريال مكافأة لكل صديق جديد
- حد أقصى: 10 أصدقاء = 1000 ريال
السائق يحصل على:
- كود إحالة فريد
- 50 ريال مكافأة لكل سائق جديد
- حد أقصى: 50 سائق = 2500 ريال
```
---
### 🔐 ميزات الأمان
| الميزة | الفائدة |
|--------|---------|
| **زر SOS** | تنبيه الطوارئ فوراً |
| **مشاركة الرحلة** | أخبر العائلة بموقعك |
| **تقييم وتعليقات** | اختر سائقاً موثوقاً |
| **تسجيل صوتي** | سجل المحادثة لأمانك |
| **معايرة الموقع** | تأكد من الطريق الصحيح |
---
## لوحة التحكم والإدارة
### 📊 لوحة الإدارة الرئيسية
```
┌─────────────────────────────────────────┐
│ 📈 لوحة المعلومات الرئيسية │
├─────────────────────────────────────────┤
│ إجمالي الرحلات (اليوم): 2,450 │
│ الإيرادات (اليوم): $24,500 │
│ عمولة سيرو: $4,900 │
│ السائقين النشطين: 1,200 │
│ الركاب النشطين: 2,500 │
│ معدل الإلغاء: 3.2% │
│ متوسط التقييم: 4.8/5.0 │
└─────────────────────────────────────────┘
```
---
### 🎯 أدوات الإدارة (15+ موديول)
#### 1. إدارة السائقين
```
✅ قائمة السائقين بالتفاصيل الكاملة
✅ مراقبة موقع السائق الفعلي (GPS حي)
✅ تقييم مستندات (صورة + رخصة + تأمين)
✅ تقارير السلوك (تقيمات، التزامات)
✅ إدارة القائمة السوداء
```
#### 2. إدارة الركاب
```
✅ قائمة الركاب بالمعلومات الشخصية
✅ تاريخ الرحلات الكامل
✅ الشكاوى والتقييمات
✅ حالة المحفظة الرقمية
```
#### 3. إدارة الرحلات
```
✅ لوحة مراقبة الرحلات الحية
✅ البحث المتقدم (بالتاريخ، السعر، إلخ)
✅ إدارة الإلغاءات والمشاكل
✅ تحليل توزيع الرحلات بالمناطق
```
#### 4. إدارة التسعير (Kazan)
```
✅ تحديد نسبة العمولة لكل:
- دولة
- مدينة
- نوع مركبة
- ساعة من اليوم
✅ التعديل التلقائي بناءً على المنافسين
✅ رؤية التأثير الفوري على الأرباح
```
#### 5. إدارة التسويق
```
✅ إنشاء حملات ترويجية
✅ رسائل مخصصة للركاب والسائقين
✅ إدارة الكوبونات والخصومات
✅ تقارير ROI مفصلة
```
#### 6. الخرائط الحرارية (Heatmaps)
```
┌────────────────────────────┐
│ 🔴 مناطق طلب عالي جداً │
│ 🟠 مناطق طلب عالي │
│ 🟡 مناطق طلب متوسط │
│ 🟢 مناطق طلب قليل │
│ 🔵 مناطق بدون طلب │
└────────────────────────────┘
الفائدة:
✅ وضع السائقين في أماكن الطلب
✅ تقليل وقت انتظار الراكب
✅ زيادة الرحلات المكتملة
```
#### 7. التحليلات المتقدمة
```
✅ رسوم بيانية للإيرادات
✅ تحليل سلوك الراكب
✅ أنماط الطلب بالساعة والأسبوع
✅ التنبؤ بالطلب المستقبلي
✅ تحليل تكاليف التشغيل
```
#### 8. المراقبة الأمنية
```
✅ سجلات الوصول والتعديلات
✅ كشف محاولات الاحتيال
✅ مراقبة الحسابات المريبة
✅ تنبيهات أمان فورية
```
---
## مقارنة التكاليف مع المنافسين
### نموذج الأتمتة والتوفير
| العملية | Uber/Careem | سيرو | الفرق |
|--------|------------|------|-------|
| **رسم الخريطة** | $150K-$360K | $0 | ✅ توفير كامل |
| **جمع أسعار المنافسين** | يدوي (غير دقيق) | آلي 24/7 | ✅ أتمتة كاملة |
| **التسويق** | فريق مخصص ($80K+) | آلي بـ AI | ✅ توفير 80% |
| **دعم العملاء** | فريق كامل ($100K+) | Chatbot AI (70% حل) | ✅ توفير 60% |
| **تحليل الطلب** | يدوي | تنبؤ تلقائي | ✅ أتمتة |
| **إدارة العمولات** | يدوي | تعديل آلي | ✅ أتمتة |
| **إعادة تفعيل الراكب** | إعلانات مدفوعة | AI + Cron مجاني | ✅ توفير 90% |
---
### حساب الربحية
```
سيناريو: 2,000 رحلة يومية
Uber:
├── الإيرادات: 2,000 × $12 = $24,000
├── عمولة Uber (25-30%): -$6,000
├── رسوم إضافية: -$2,000
├── تكاليف التشغيل: -$4,000
└── الربح الصافي: $12,000 (50%)
سيرو:
├── الإيرادات: 2,000 × $12 = $24,000
├── عمولة سيرو (20%): -$4,800
├── توفيرات الخرائط: +$12,500 (نصيب يومي)
├── توفيرات التسويق: +$6,700 (نصيب يومي)
├── توفيرات الأتمتة: +$5,000 (نصيب يومي)
├── تكاليف التشغيل: -$3,000 (بدون خدمات خارجية)
└── الربح الصافي: $40,400 (168%!!)
```
**الفارق:** +$28,400 يومياً = **+$10.4M سنوياً** من نفس الحجم! 🚀
---
### الملخص التنافسي
```
┌────────────────────────────────────────────────────────┐
│ سيرو = منصة نقل بـ: │
├────────────────────────────────────────────────────────┤
│ ✅ تكاليف تشغيل أقل بـ 60-70% │
│ ✅ أتمتة كاملة للعمليات (24/7) │
│ ✅ ذكاء اصطناعي في كل جانب │
│ ✅ استقلالية كاملة عن الأطراف الثالثة │
│ ✅ ربحية 3-4 مرات أعلى │
│ ✅ سائقين أكثر رضى (المكافآت + الشفافية) │
│ ✅ ركاب أكثر ولاءً (الأسعار + الأمان) │
│ ✅ قابلية تطور عالية جداً │
└────────────────────────────────────────────────────────┘
```
---
> **إعداد:** فريق سيرو
> **آخر تحديث:** يوليو 2026
> **التصنيف:** سري / داخلي
@@ -0,0 +1,119 @@
# AI Document Extraction Prompt — Country-Specific Field Mapping
## Overview
Extract driver registration fields from uploaded document images. Below is the exact field-to-document-side mapping verified against real government documents for each country.
## Field Extraction Matrix
| Field | Jordan | Syria | Egypt |
|---|---|---|---|
| `first_name` + `last_name` | ID front, License front | ID front, License front | ID front, License front |
| `national_number` | ID front, License front | **ID front** (bottom), License front | ID front, License front |
| `birthdate` | ID front, License front | ID front, License front | ID **front** (above national number, left side) |
| `gender` | ID front | ID **back** | ID **back** |
| `address` | ID **back**, License front | ID **back** | ID front, License front |
| `site` (مكان القيد) | ID **back** | ID **back** | — |
| `maritalStatus` | **Not on ID** (`null`) | **Not on ID** (`null`) | ID **back** |
| `license_type` | License front (symbols/numbers at bottom) | License front | License front |
| `license_categories` | — | License **back** (detailed) | — |
| `issue_date` | License front | License front | License front |
| `expiry_date` | License **front** | License front | License front |
| `owner` | Car reg front | Car reg front | Car reg front |
| `car_plate` | Car reg front | Car reg front | Car reg front |
| `make`, `model`, `year` | Car reg front | Car reg front | Car reg **back** |
| `color` | Car reg front | Car reg front | Car reg **back** |
| `vin` | Car reg front | Car reg front | Car reg **back** |
| `fuel` | Car reg front | Car reg front | Car reg **back** |
| `expiration_date` | Car reg front | Car reg front | Car reg **back** |
## Country-Specific Details
### 🇯🇴 Jordan
- **ID Front:** Full name (one line → split to `first_name` + `last_name`), `national_number`, `gender`, `birthdate`, place of birth, mother's name
- **ID Back:** Place of registration (`site`), card expiry date, place of issue, `address`
- **License Front:** Full name + English, `national_number`, `birthdate`, `address`, license number, `issue_date`, `expiry_date`, `license_type` (symbols/numbers)
- **License Back:** Blood type, medical restrictions/notes only
- **Car Reg Front:** All vehicle data (`owner`, `car_plate`, `make`, `model`, `year`, `color`, `vin`, `fuel`, `expiration_date`)
- **Note:** `maritalStatus` does NOT appear on Jordanian documents → set to `null`
### 🇸🇾 Syria
- **ID Front:** Full name (first name + father name + mother name + last name), place of birth, `birthdate`, `national_number` (bottom)
- **ID Back:** Registration (`site`), `address`, `gender`, eye color, complexion, distinguishing marks, issue date
- **License Front:** Name, father name, `national_number`, `birthdate`, `issue_date`, `expiry_date`
- **License Back:** `license_categories` (detailed categories)
- **Car Reg Front:** All vehicle data (`owner`, `car_plate`, `make`, `model`, `year`, `color`, `vin`, `fuel`, `expiration_date`)
- **Note:** `maritalStatus` does NOT appear on Syrian documents → set to `null`
### 🇪🇬 Egypt
- **ID Front:** Full name (first name + rest), complete `address`, `birthdate` (printed on front, above national number, left side), `national_number` (14 digits)
- **ID Back:** Occupation, `maritalStatus`, `gender` (ذكر/أنثى), religion, issue date, expiry date
- **License Front:** Name, `address`, `national_number`, `issue_date`, `expiry_date`, license type/grade
- **Car Reg Back:** All technical vehicle data (`make`, `model`, `year`, `vin`, `fuel`, `color`, `expiration_date`)
- **Note:** `birthdate` is on ID **front**, not back
## Criminal Record Verification
- `full_name` — name on document
- `result` — varies: "لا حكم عليه" (Syria), "عدم محكومية" (Jordan), "فيش وتشبيه" (Egypt)
- `is_valid` — true/false (document is valid and current)
## Face Matching
- `profile_vs_id` — match/mismatch/unclear
- `profile_vs_license` — match/mismatch/unclear
## Output Format
Return ONLY raw JSON:
```json
{
"status": "success|failure",
"face_match_confidence": "high|medium|low",
"driver": {
"first_name": "",
"last_name": "",
"phone": "",
"email": "",
"gender": "Male|Female",
"birthdate": "YYYY-MM-DD",
"national_number": "",
"site": "",
"address": "",
"maritalStatus": "",
"license_type": "",
"license_categories": "",
"issue_date": "YYYY-MM-DD",
"expiry_date": "YYYY-MM-DD",
"licenseIssueDate": "YYYY-MM-DD"
},
"car": {
"owner": "",
"car_plate": "",
"make": "",
"model": "",
"year": "",
"color": "",
"color_hex": "",
"fuel": "",
"vin": "",
"expiration_date": "YYYY-MM-DD"
},
"criminal_record": {
"full_name": "",
"result": "",
"is_valid": true
},
"face_matching": {
"profile_vs_id": "match|mismatch|unclear",
"profile_vs_license": "match|mismatch|unclear"
}
}
```
## Rules
1. Convert Eastern-Arabic digits (٠١٢٣٤٥٦٧٨٩) to Western (0-9).
2. Dates in ISO format: `YYYY-MM-DD`.
3. If unreadable/missing → set to `null`, do NOT fail.
4. Fail only on: face mismatch, forged/fake documents, or missing primary identity.
5. `national_number` and `vin` must contain only Latin digits/characters.
6. Normalize color names: "أبيض" → "White", with hex code.
7. Return ONLY raw JSON → no markdown formatting.
8. Refer to the Field Extraction Matrix above: extract each field from the correct document side.
+193
View File
@@ -0,0 +1,193 @@
# Android Auto & Apple CarPlay — Compliance Checklist
## Legend
- ✅ **Completed** — implemented by this PR
- 📋 **Manual** — must be done outside code (App Store Connect, Play Console, Apple Developer)
- ⚠️ **Verify** — needs testing on real hardware before release
---
## ANDROID AUTO (`siro_driver`)
### 1. AndroidManifest.xml
| Requirement | Status | File | Notes |
|---|---|---|---|
| `androidx.car.app.CarAppService` intent-filter | ✅ | `AndroidManifest.xml:142-148` | Declared with exported="true" |
| Automotive `<meta-data>` for `automotive_app_desc.xml` | ✅ | `AndroidManifest.xml:71-74` | `com.android.car.meta` → `@xml/automotive_app_desc` |
| Required location permissions | ✅ | `AndroidManifest.xml:5-7` | FINE, COARSE, BACKGROUND |
| FOREGROUND_SERVICE permission | ✅ | `AndroidManifest.xml:8-10` | location type |
| FOREGROUND_SERVICE_TYPE_REMOTE_MESSAGING | ✅ | `AndroidManifest.xml:10` | For FCM |
| Notification permission (API 33+) | ⚠️ | `main.dart:60-81` | Runtime request exists; verify on Android 14+ |
### 2. Automotive Resources
| Requirement | Status | File | Notes |
|---|---|---|---|
| `automotive_app_desc.xml` with `<uses name="navigation" />` | ✅ | `res/xml/automotive_app_desc.xml` | Correctly declares navigation category |
### 3. Gradle / Dependencies
| Requirement | Status | File | Notes |
|---|---|---|---|
| `androidx.car.app:app:1.4.0` | ✅ | `app/build.gradle:118` | Latest stable version |
| `compileSdk 36` | ✅ | `app/build.gradle:38` | Meets minimum for Car App Library |
| `minSdk 30` | ✅ | `app/build.gradle:67` | Sufficient for Android Auto |
### 4. Car App Service
| Requirement | Status | File | Notes |
|---|---|---|---|
| `CarAppService` subclass | ✅ | `MyCarAppService.kt` | Creates `MyCarSession` |
| `createHostValidator()` | ✅ | `MyCarAppService.kt:9-18` | Debug ALLOW_ALL, release allowlist |
| `onCreateSession()` | ✅ | `MyCarAppService.kt:21-23` | Returns `MyCarSession` |
### 5. Session
| Requirement | Status | File | Notes |
|---|---|---|---|
| `Session` subclass with `onCreateScreen()` | ✅ | `MyCarSession.kt` | Returns `MyCarScreen` |
| `SurfaceCallback` for VirtualDisplay | ✅ | `MyCarSession.kt:24-61` | Creates VirtualDisplay for MapLibre |
| Lifecycle observer for map pause/resume | ✅ | `MyCarSession.kt:66-68` | `onResume`/`onPause`/`onDestroy` |
### 6. Screen / Navigation Template
| Requirement | Status | File | Notes |
|---|---|---|---|
| `NavigationTemplate` with turn-by-turn | ✅ | `MyCarScreen.kt` | Shows current step, maneuver, distance |
| `Maneuver` mapping from Siro codes | ✅ | `MyCarScreen.kt:66-79` | Maps all 8 maneuver types |
| `RoutingInfo` with current step | ✅ | `MyCarScreen.kt:46-48` | |
| Waiting screen when not navigating | ✅ | `MyCarScreen.kt:26-31` | MessageTemplate |
| Action strip with APP_ICON | ✅ | `MyCarScreen.kt:53-57` | |
### 7. Map Display
| Requirement | Status | File | Notes |
|---|---|---|---|
| MapLibre rendering on VirtualDisplay | ✅ | `MapPresentation.kt` | Full-screen map on car display |
| Camera follows GPS | ✅ | `MapPresentation.kt:71-107` | Zoom/tilt adaptive to speed |
### 8. Navigation Data Bridge
| Requirement | Status | File | Notes |
|---|---|---|---|
| `car_navigation` MethodChannel on native | ✅ | `MainActivity.kt:66-107` | Handles `updateNavState`, `updateLocation`, `updateInstruction`, `stopNavigation` |
| `CarNavigationData` singleton | ✅ | `CarNavigationData.kt` | Thread-safe listener pattern |
| Dart→Native bridge calls | ✅ | `NavigationController.dart` | Every location/step/nav event pushes to channel |
### 9. Foreground Service
| Requirement | Status | File | Notes |
|---|---|---|---|
| Background service with location type | ✅ | `AndroidManifest.xml:124-129` | `id.flutter.flutter_background_service.BackgroundService` |
| Location update service | ✅ | `AndroidManifest.xml:135-136` | `.LocationUpdatesService` |
### 10. Play Store Requirements
| Requirement | Status | Notes |
|---|---|---|
| Navigation category declaration | ✅ | `automotive_app_desc.xml` |
| App is signed with release key | ✅ | `key.properties` configured |
| MinSDK ≥ 30 | ✅ | |
| Screen reader / accessibility | ⚠️ | Verify TalkBack works with NavigationTemplate |
| Android Auto screenshot | 📋 | Upload in Play Console under "Android Auto" section |
| Review Android Auto Quality Guidelines | 📋 | See https://developer.android.com/training/cars |
---
## APPLE CARPLAY (`siro_driver`)
### 1. Entitlements
| Requirement | Status | File | Notes |
|---|---|---|---|
| `com.apple.developer.carplay-driving-task` | ✅ | `Runner.entitlements:8-9` | Required for navigation apps |
| `aps-environment` (push) | ✅ | `Runner.entitlements:6-7` | Pre-existing |
### 2. Info.plist
| Requirement | Status | File | Notes |
|---|---|---|---|
| `CPApplication` with `CPApplicationDriverManeuver` | ✅ | `Info.plist:98-111` | `supportsNavigation: true` |
| `UIBackgroundModes` with `location` | ✅ | `Info.plist:117` | Pre-existing |
| `NSLocationAlwaysAndWhenInUseUsageDescription` | ✅ | `Info.plist:83-85` | Pre-existing |
### 3. AppDelegate / CarPlay Connection
| Requirement | Status | File | Notes |
|---|---|---|---|
| `application(_:didConnectCarInterfaceController:to:)` | ✅ | `AppDelegate.swift:43-58` | Sets up CPMapTemplate |
| `application(_:didDisconnectCarInterfaceController:from:)` | ✅ | `AppDelegate.swift:60-67` | Cleans up navigation |
| `setupCarNavigationChannel()` method channel | ✅ | `AppDelegate.swift:89-167` | Handles all nav updates |
| `CarPlaySceneDelegate` helper class | ✅ | `CarPlaySceneDelegate.swift` | Navigation session, maneuvers, arrival |
### 4. Navigation Templates
| Requirement | Status | File | Notes |
|---|---|---|---|
| `CPMapTemplate` as root template | ✅ | `CarPlaySceneDelegate.swift:6` | |
| `startNavigationSession(for:)` | ✅ | `CarPlaySceneDelegate.swift:27-38` | Creates CPTrip with origin/destination |
| `CPManeuver` with instruction variants | ✅ | `CarPlaySceneDelegate.swift:44-59` | |
| Maneuver color mapping | ✅ | `CarPlaySceneDelegate.swift:116-124` | Green for arrival, blue for turns |
| Arrival estimates update | ✅ | `CarPlaySceneDelegate.swift:65-75` | `updatingArrival(to:)` |
| Cancel navigation on stop | ✅ | `CarPlaySceneDelegate.swift:86-93` | `session.cancel()` |
### 5. Navigation Data Bridge
| Requirement | Status | Notes |
|---|---|---|
| `updateNavState` → full nav sync | ✅ | Creates/updates CPNavigationSession |
| `updateLocation` → map panning | ✅ | Shows panning interface |
| `updateInstruction` → maneuver update | ✅ | Updates CPManeuver |
| `stopNavigation` → session cancel | ✅ | Cleans up |
### 6. Background Execution
| Requirement | Status | Notes |
|---|---|---|
| Background location mode | ✅ | Already enabled |
| Always auth for location | ✅ | Already present |
| CarPlay runs in its own process | ✅ | Handled by iOS automatically |
### 7. App Store Requirements
| Requirement | Status | Notes |
|---|---|---|
| CarPlay entitlement in provisioning profile | 📋 | Must be added in Apple Developer → Certificates, Identifiers & Profiles |
| App ID has CarPlay capability enabled | 📋 | Enable in Apple Developer Portal for the bundle ID |
| Xcode Capability: CarPlay (Driving Task) | 📋 | Check in Xcode Signing & Capabilities |
| CarPlay screenshots for App Store | 📋 | 6.7" and 5.5" screenshots with CarPlay UI |
| CarPlay icon asset (if required) | 📋 | CarPlay app icon (40pt @2x/3x) — optional for navigation apps |
| Review CarPlay navigation HIG | 📋 | https://developer.apple.com/carplay/ |
---
## DART / FLUTTER
| Requirement | Status | File | Notes |
|---|---|---|---|
| `CarPlatformBridge` created | ✅ | `lib/controller/car_platform_bridge.dart` | Static methods for both platforms |
| Bridge initialized in `main()` | ✅ | `main.dart:269` | After background service |
| Bridge initialized in `NavigationController.onInit()` | ✅ | `NavigationController.dart:304` | Redundant but safe |
| Nav state pushed on location update | ✅ | `NavigationController.dart:552` | Via `_pushCarBridgeUpdate()` |
| Nav state pushed on `startActiveNavigation()` | ✅ | `NavigationController.dart:1141` | |
| Instruction pushed on `_advanceStep()` | ✅ | `NavigationController.dart:1235-1241` | |
| Stop on `_finishNavigation()` | ✅ | `NavigationController.dart:1259` | |
| Stop on `clearRoute()` | ✅ | `NavigationController.dart:1164` | |
---
## MANUAL STEPS REQUIRED
### Pre-Submission
- [ ] **Apple Developer Portal**: Add `CarPlay (Driving Task)` capability to App ID
- [ ] **Apple Developer Portal**: Regenerate provisioning profiles after enabling CarPlay
- [ ] **Xcode**: Enable CarPlay capability in Signing & Capabilities
- [ ] **Google Play Console**: Declare Android Auto integration → set "Navigation" category
- [ ] **Google Play Console**: Upload Android Auto screenshots (required for listing)
- [ ] **Signing**: Both platforms must use production signing/distribution certificates
### Testing
- [ ] **Android Auto**: Test with DHU (Desktop Head Unit) emulator
- [ ] **Android Auto**: Test on real car head unit with USB
- [ ] **Apple CarPlay**: Test with CarPlay Simulator in Xcode
- [ ] **Apple CarPlay**: Test on real car with Lightning/USB-C cable
- [ ] **Voice guidance**: Verify TTS integration works while CarPlay/Android Auto is active
- [ ] **Rerouting**: Verify auto-recalculation reflects on car screen
- [ ] **Trip end**: Verify navigation session ends cleanly on both platforms
### Compliance
- [ ] **Android Auto Quality Guidelines**: https://developer.android.com/training/cars
- [ ] **Apple CarPlay HIG**: https://developer.apple.com/carplay/
- [ ] **Privacy**: Ensure location data usage is clearly documented in privacy policy
---
## SUMMARY
| Platform | Implemented | Files Changed/Added |
|---|---|---|
| **Android Auto** | ✅ Production-ready | `AndroidManifest.xml` (fix), `car_platform_bridge.dart` (new), `NavigationController.dart` (wiring), `main.dart` (init) |
| **Apple CarPlay** | ✅ Production-ready | `CarPlaySceneDelegate.swift` (new), `AppDelegate.swift` (CarPlay + channel), `Info.plist` (CPApplication), `Runner.entitlements` (carplay-driving-task), `car_platform_bridge.dart` (shared), `NavigationController.dart` (wiring), `main.dart` (init) |
@@ -0,0 +1,440 @@
# قائمة التحقق من الامتثال لـ Android Auto و Apple CarPlay - تطبيق Siro Driver
## الرموز التوضيحية
- ✅ **مكتمل** — تم التنفيذ في الكود الحالي
- 📋 **يدوي** — يجب تنفيذه خارج الكود (App Store Connect، Play Console، Apple Developer)
- ⚠️ **يحتاج تحقق** — يحتاج اختبار على أجهزة حقيقية قبل الإطلاق
---
## ANDROID AUTO (`siro_driver`)
### 1. AndroidManifest.xml
| المتطلب | الحالة | الملف | ملاحظات |
|---|---|---|---|
| `androidx.car.app.CarAppService` مع intent-filter | ✅ | `AndroidManifest.xml:142-148` | مُعلن مع `exported="true"` |
| `<meta-data>` للسيارات يشير إلى `automotive_app_desc.xml` | ✅ | `AndroidManifest.xml:72-74` | `com.android.car.meta` → `@xml/automotive_app_desc` |
| أذونات الموقع المطلوبة (FINE، COARSE، BACKGROUND) | ✅ | `AndroidManifest.xml:5-7` | جميع الأذونات الثلاثة موجودة |
| إذن `FOREGROUND_SERVICE` | ✅ | `AndroidManifest.xml:8-10` | نوع location |
| `FOREGROUND_SERVICE_TYPE_REMOTE_MESSAGING` | ✅ | `AndroidManifest.xml:10` | لـ FCM |
| إذن الإشعارات (API 33+) | ⚠️ | `main.dart:60-81` | طلب وقت التشغيل موجود؛ تحقق على Android 14+ |
### 2. موارد السيارات (Automotive Resources)
| المتطلب | الحالة | الملف | ملاحظات |
|---|---|---|---|
| `automotive_app_desc.xml` مع `<uses name="navigation" />` | ✅ | `res/xml/automotive_app_desc.xml` | يعلن فئة التنقل بشكل صحيح |
### 3. Gradle / التبعيات (Dependencies)
| المتطلب | الحالة | الملف | ملاحظات |
|---|---|---|---|
| `androidx.car.app:app:1.4.0` | ✅ | `app/build.gradle:118` | أحدث إصدار مستقر |
| `compileSdk 36` | ✅ | `app/build.gradle:38` | يلبي الحد الأدنى لمكتبة Car App |
| `minSdk 30` | ✅ | `app/build.gradle:67` | كافٍ لـ Android Auto |
### 4. خدمة تطبيق السيارة (Car App Service)
| المتطلب | الحالة | الملف | ملاحظات |
|---|---|---|---|
| فئة فرعية من `CarAppService` | ✅ | `MyCarAppService.kt` | تنشئ `MyCarSession` |
| `createHostValidator()` | ✅ | `MyCarAppService.kt:9-18` | `ALLOW_ALL` في الوضع التجريبي، allowlist في الإنتاج |
| `onCreateSession()` | ✅ | `MyCarAppService.kt:21-23` | تُرجع `MyCarSession` |
### 5. الجلسة (Session)
| المتطلب | الحالة | الملف | ملاحظات |
|---|---|---|---|
| فئة فرعية من `Session` مع `onCreateScreen()` | ✅ | `MyCarSession.kt` | تُرجع `MyCarScreen` |
| `SurfaceCallback` لـ VirtualDisplay | ✅ | `MyCarSession.kt:24-61` | ينشئ VirtualDisplay لـ MapLibre |
| مراقب دورة الحياة لإيقاف/استئناف الخريطة | ✅ | `MyCarSession.kt:66-68` | `onResume`/`onPause`/`onDestroy` |
### 6. الشاشة / قالب التنقل (Screen / Navigation Template)
| المتطلب | الحالة | الملف | ملاحظات |
|---|---|---|---|
| `NavigationTemplate` مع تعليمات منعطف-بمنعطف | ✅ | `MyCarScreen.kt` | يعرض الخطوة الحالية، المناورة، المسافة |
| تعيين `Maneuver` من أكواد Siro | ✅ | `MyCarScreen.kt:66-79` | يربط جميع 8 أنواع مناورات |
| `RoutingInfo` مع الخطوة الحالية | ✅ | `MyCarScreen.kt:46-48` | |
| شاشة انتظار عند عدم التنقل | ✅ | `MyCarScreen.kt:26-31` | `MessageTemplate` |
| شريط إجراءات مع `APP_ICON` | ✅ | `MyCarScreen.kt:53-57` | |
### 7. عرض الخريطة (Map Display)
| المتطلب | الحالة | الملف | ملاحظات |
|---|---|---|---|
| عرض MapLibre على VirtualDisplay | ✅ | `MapPresentation.kt` | خريطة بملء الشاشة على شاشة السيارة |
| الكاميرا تتبع GPS | ✅ | `MapPresentation.kt:71-107` | زوم/ميل متكيف مع السرعة |
### 8. جسر بيانات التنقل (Navigation Data Bridge)
| المتطلب | الحالة | الملف | ملاحظات |
|---|---|---|---|
| قناة `car_navigation` MethodChannel على الـ Native | ✅ | `MainActivity.kt:66-107` | تعالج `updateNavState`، `updateLocation`، `updateInstruction`، `stopNavigation` |
| `CarNavigationData` singleton بنمط المستمع (listener pattern) | ✅ | `CarNavigationData.kt` | نمط المستمع آمن لل threads |
| مكالمات جسر Dart→Native | ✅ | `NavigationController.dart` | كل حدث موقع/خطوة/تنقل يدفع إلى القناة |
### 9. خدمة المقدمة (Foreground Service)
| المتطلب | الحالة | الملف | ملاحظات |
|---|---|---|---|
| خدمة خلفية مع نوع location | ✅ | `AndroidManifest.xml:124-129` | `id.flutter.flutter_background_service.BackgroundService` |
| خدمة تحديث الموقع | ✅ | `AndroidManifest.xml:135-136` | `.LocationUpdatesService` |
### 10. متطلبات متجر Play
| المتطلب | الحالة | ملاحظات |
|---|---|---|
| إعلان فئة التنقل | ✅ | `automotive_app_desc.xml` |
| التطبيق موقع بمفتاح إصدار | ✅ | `key.properties` مضبوط |
| MinSDK ≥ 30 | ✅ | |
| قارئ الشاشة / إمكانية الوصول | ⚠️ | تحقق من عمل TalkBack مع NavigationTemplate |
| لقطة شاشة Android Auto | 📋 | ارفع في Play Console تحت قسم "Android Auto" |
| مراجعة إرشادات جودة Android Auto | 📋 | راجع https://developer.android.com/training/cars |
---
## APPLE CARPLAY (`siro_driver`)
### 1. الاستحقاقات (Entitlements)
| المتطلب | الحالة | الملف | ملاحظات |
|---|---|---|---|
| `com.apple.developer.carplay-driving-task` | ✅ | `Runner.entitlements:7-8` | مطلوب لتطبيقات التنقل |
| `aps-environment` (push) | ✅ | `Runner.entitlements:6-7` | موجود مسبقاً |
### 2. Info.plist
| المتطلب | الحالة | الملف | ملاحظات |
|---|---|---|---|
| `CPApplication` مع `CPApplicationDriverManeuver` | ✅ | `Info.plist:98-111` | `supportsNavigation: true` |
| `UIBackgroundModes` مع `location` | ✅ | `Info.plist:117` | موجود مسبقاً |
| `NSLocationAlwaysAndWhenInUseUsageDescription` | ✅ | `Info.plist:83-85` | موجود مسبقاً |
### 3. AppDelegate / اتصال CarPlay
| المتطلب | الحالة | الملف | ملاحظات |
|---|---|---|---|
| `application(_:didConnectCarInterfaceController:to:)` | ✅ | `AppDelegate.swift:43-58` | ينشئ `CPMapTemplate` |
| `application(_:didDisconnectCarInterfaceController:from:)` | ✅ | `AppDelegate.swift:60-67` | ينظف التنقل |
| قناة `setupCarNavigationChannel()` Method Channel | ✅ | `AppDelegate.swift:89-167` | تعالج كل تحديثات التنقل |
| فئة مساعدة `CarPlaySceneDelegate` | ✅ | `CarPlaySceneDelegate.swift` | جلسة تنقل، مناورات، وصول |
### 4. قوالب التنقل (Navigation Templates)
| المتطلب | الحالة | الملف | ملاحظات |
|---|---|---|---|
| `CPMapTemplate` كقالب جذر | ✅ | `CarPlaySceneDelegate.swift:6` | |
| `startNavigationSession(for:)` | ✅ | `CarPlaySceneDelegate.swift:27-38` | ينشئ `CPTrip` مع origem/destination |
| `CPManeuver` مع متغيرات التعليمات | ✅ | `CarPlaySceneDelegate.swift:44-59` | |
| تعيين ألوان المناورة | ✅ | `CarPlaySceneDelegate.swift:116-124` | أخضر للوصول، أزرق للمنعرجات |
| تحديث تقديرات الوصول | ✅ | `CarPlaySceneDelegate.swift:65-75` | `updatingArrival(to:)` |
| إلغاء التنقل عند الإيقاف | ✅ | `CarPlaySceneDelegate.swift:86-93` | `session.cancel()` |
### 5. جسر بيانات التنقل (Navigation Data Bridge)
| المتطلب | الحالة | ملاحظات |
|---|---|---|
| `updateNavState` → مزامنة تنقل كاملة | ✅ | ينشئ/يحدث `CPNavigationSession` |
| `updateLocation` → تحريك الخريطة | ✅ | يعرض واجهة التحريك (panning interface) |
| `updateInstruction` → تحديث المناورة | ✅ | يحدث `CPManeuver` |
| `stopNavigation` → إلغاء الجلسة | ✅ | ينظف الموارد |
### 6. التنفيذ في الخلفية (Background Execution)
| المتطلب | الحالة | ملاحظات |
|---|---|---|
| وضع خلفية الموقع | ✅ | ممكّن مسبقاً |
| إذن الموقع الدائم (Always) | ✅ | موجود مسبقاً |
| CarPlay يعمل في عملية خاصة به | ✅ | تديره iOS تلقائياً |
### 7. متطلبات متجر التطبيقات (App Store Requirements)
| المتطلب | الحالة | ملاحظات |
|---|---|---|
| استحقاق CarPlay في ملف التوفير (provisioning profile) | 📋 | يجب إضافته في Apple Developer → Certificates, Identifiers & Profiles |
| معرف التطبيق (App ID) به قدرة CarPlay مفعلة | 📋 | فعّل في Apple Developer Portal للمعرف (bundle ID) |
| Xcode Capability: CarPlay (Driving Task) | 📋 | تأكد في Xcode Signing & Capabilities |
| لقطات شاشة CarPlay لمتجر التطبيقات | 📋 | لقطات 6.7" و 5.5" مع واجهة CarPlay |
| أيقونة تطبيق CarPlay (إذا مطلوبة) | 📋 | أيقونة تطبيق CarPlay (40pt @2x/3x) — اختياري لتطبيقات التنقل |
| مراجعة إرشادات واجهة CarPlay (HIG) | 📋 | https://developer.apple.com/carplay/ |
---
## DART / FLUTTER (الجسر المشترك)
| المتطلب | الحالة | الملف | ملاحظات |
|---|---|---|---|
| `CarPlatformBridge` مُنشأ | ✅ | `lib/controller/car_platform_bridge.dart` | دوال ثابتة لكلا المنصتين |
| الجسر مهيأ في `main()` | ✅ | `main.dart:269` | بعد خدمة الخلفية |
| الجسر مهيأ في `NavigationController.onInit()` | ✅ | `NavigationController.dart:304` | زائد لكن آمن |
| حالة التنقل تُدفع عند تحديث الموقع | ✅ | `NavigationController.dart:552` | عبر `_pushCarBridgeUpdate()` |
| حالة التنقل تُدفع عند `startActiveNavigation()` | ✅ | `NavigationController.dart:1141` | |
| تعليمات تُدفع عند `_advanceStep()` | ✅ | `NavigationController.dart:1235-1241` | |
| إيقاف عند `_finishNavigation()` | ✅ | `NavigationController.dart:1259` | |
| إيقاف عند `clearRoute()` | ✅ | `NavigationController.dart:1164` | |
---
## الخطوات اليدوية المطلوبة (MANUAL STEPS REQUIRED)
### قبل الإرسال (Pre-Submission)
- [ ] **Apple Developer Portal**: أضف قدرة `CarPlay (Driving Task)` لمعرف التطبيق
- [ ] **Apple Developer Portal**: أعد إنشاء ملفات التوفير بعد تفعيل CarPlay
- [ ] **Xcode**: فعّل قدرة CarPlay في Signing & Capabilities
- [ ] **Google Play Console**: أعلن تكامل Android Auto → اضبط فئة "Navigation"
- [ ] **Google Play Console**: ارفع لقطات شاشة Android Auto (مطلوبة للإدراج)
- [ ] **التوقيع**: يجب أن يستخدم كلا النظامين توقيع الإنتاج/التوزيع
### الاختبار (Testing)
- [ ] **Android Auto**: اختبر مع محاكي DHU (Desktop Head Unit)
- [ ] **Android Auto**: اختبر على وحدة رأس سيارة حقيقية مع USB
- [ ] **Apple CarPlay**: اختبر مع محاكي CarPlay في Xcode
- [ ] **Apple CarPlay**: اختبر على سيارة حقيقية مع كابل Lightning/USB-C
- [ ] **الإرشاد الصوتي**: تحقق من عمل تكامل TTS أثناء نشاط CarPlay/Android Auto
- [ ] **إعادة التوجيه**: تحقق من انعكاس إعادة الحساب التلقائي على شاشة السيارة
- [ ] **نهاية الرحلة**: تحقق من انتهاء جلسة التنقل بنظافة على المنصتين
### الامتثال (Compliance)
- [ ] **إرشادات جودة Android Auto**: https://developer.android.com/training/cars
- [ ] **إرشادات واجهة CarPlay (HIG) من Apple**: https://developer.apple.com/carplay/
- [ ] **الخصوصية**: تأكد من توثيق استخدام بيانات الموقع بوضوح في سياسة الخصوصية
---
## الملخص (SUMMARY)
| المنصة | الحالة | الملفات المعدلة/المضافة |
|---|---|---|
| **Android Auto** | ✅ جاهز للإنتاج | `AndroidManifest.xml` (إصلاح)، `car_platform_bridge.dart` (جديد)، `NavigationController.dart` (توصيل)، `main.dart` (تهيئة) |
| **Apple CarPlay** | ✅ جاهز للإنتاج | `CarPlaySceneDelegate.swift` (جديد)، `AppDelegate.swift` (CarPlay + القناة)، `Info.plist` (CPApplication)، `Runner.entitlements` (carplay-driving-task)، `car_platform_bridge.dart` (مشترك)، `NavigationController.dart` (توصيل)، `main.dart` (تهيئة) |
---
## تفاصيل التنفيذ التقنية (Technical Implementation Details)
### Android Auto - البنية التحتية (Architecture)
```
┌─────────────────────────────────────────────────────────────────┐
│ السائق (Driver App) │
│ ┌─────────────────┐ MethodChannel ┌──────────────────┐ │
│ │ NavigationController │◄─────────────────►│ MainActivity.kt │ │
│ │ (Flutter/Dart) │ car_navigation │ (Native/Kotlin) │ │
│ └────────┬──────────┘ └────────┬─────────┘ │
│ │ │ │
│ │ _pushCarBridgeUpdate() │ │
│ ▼ ▼ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ CarNavigationData (Kotlin Singleton) │ │
│ │ - currentLat/Lng/Bearing/Speed │ │
│ │ - currentInstruction, distanceToStep, ETA, maneuverType │ │
│ │ - isNavigating │ │
│ │ - Listener pattern للـ UI updates │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ MyCarScreen.kt │ │ MapPresentation │ │
│ │ (NavigationTemplate) │ (MapLibre on │ │
│ │ - يعرض الخطوة الحالية │ VirtualDisplay)│ │
│ │ - المناورة، المسافة │ - كاميرا تتبع GPS│ │
│ │ - شريط إجراءات │ - زوم/ميل متكيف │ │
│ └─────────────────┘ └─────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
```
**ملفات Android Auto الرئيسية:**
- `MyCarAppService.kt` — نقطة دخول CarAppService
- `MyCarSession.kt` — يدير دورة الحياة و VirtualDisplay
- `MyCarScreen.kt` — يبني NavigationTemplate
- `MapPresentation.kt` — يعرض MapLibre على شاشة السيارة
- `CarNavigationData.kt` — مخزن بيانات مشترك آمن للـ threads
- `MainActivity.kt` — جسر MethodChannel
### Apple CarPlay - البنية التحتية (Architecture)
```
┌─────────────────────────────────────────────────────────────────┐
│ السائق (Driver App) │
│ ┌─────────────────┐ MethodChannel ┌──────────────────┐ │
│ │ NavigationController │◄─────────────────►│ AppDelegate.swift │ │
│ │ (Flutter/Dart) │ car_navigation │ (Native/Swift) │ │
│ └────────┬──────────┘ └────────┬─────────┘ │
│ │ │ │
│ │ _pushCarBridgeUpdate() │ │
│ ▼ ▼ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ CarPlaySceneDelegate (Singleton) │ │
│ │ - interfaceController: CPInterfaceController │ │
│ │ - mapTemplate: CPMapTemplate │ │
│ │ - navigationSession: CPNavigationSession? │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ CPMapTemplate │ │ CPTrip + │ │
│ │ (Root Template) │ │ CPNavigationSession│ │
│ │ - guidanceBackgroundStyle = .light │ - origin/dest │ │
│ │ - يعرض المناورات والـ ETA │ - maneuvers │ │
│ └─────────────────┘ │ - arrival estimates│ │
│ └─────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
```
**ملفات CarPlay الرئيسية:**
- `AppDelegate.swift` — يتعامل مع الاتصال/فصل الاتصال، جسر MethodChannel
- `CarPlaySceneDelegate.swift` — يدير جلسة التنقل، المناورات، التقديرات
- `CarPlayState.swift` — singleton مشترك للوصول إلى الـ delegate
- `Info.plist` — يعلن `CPApplication` مع `supportsNavigation: true`
- `Runner.entitlements` — استحقاق `com.apple.developer.carplay-driving-task`
### جسر Flutter المشترك (Shared Flutter Bridge)
**`car_platform_bridge.dart`** — واجهة موحدة لكلا المنصتين:
```dart
class CarPlatformBridge {
static const _channel = MethodChannel('com.siro.siro_driver/car_navigation');
// تحديث حالة التنقل الكاملة (للبدء/التحديث)
static Future<void> updateNavState({
required double lat, lng, bearing, speed,
required String instruction,
required double distanceToStep, totalDistance, eta,
required int maneuver,
required bool isNavigating,
});
// تحديث الموقع فقط (للتحريك على الخريطة)
static Future<void> updateLocation({
required double lat, lng, bearing, speed,
});
// تحديث التعليمات/المناورة فقط
static Future<void> updateInstruction({
required String instruction,
required int maneuver,
required double distanceToStep,
});
// إيقاف التنقل
static Future<void> stopNavigation();
}
```
**تدفق البيانات في `NavigationController.dart`:**
```dart
// عند بدء التنقل النشط
void startActiveNavigation() {
isNavigating = true;
_pushCarBridgeUpdate(); // يرسل isNavigating: true
}
// عند كل تحديث موقع (كل ~4 ثوانٍ)
void _onLocationUpdate(Position pos) {
// ... معالجة الموقع ...
_pushCarBridgeUpdate(); // يرسل lat/lng/bearing/speed/instruction/ETA/maneuver
}
// عند التقدم لخطوة جديدة
void _advanceStep() {
// ... تحديث currentInstruction، currentManeuverModifier ...
CarPlatformBridge.updateInstruction(
instruction: currentInstruction,
maneuver: currentManeuverModifier,
distanceToStep: _distanceToNextStepMeters,
);
}
// عند إنهاء التنقل (وصول أو إلغاء)
void _finishNavigation() {
isNavigating = false;
CarPlatformBridge.stopNavigation(); // يرسل isNavigating: false
}
void clearRoute() {
// ...
CarPlatformBridge.stopNavigation();
}
```
### تعيين المناورات (Maneuver Mapping)
| كود Siro | Android Auto (`Maneuver.TYPE_*`) | CarPlay (`CPManeuver`) |
|---|---|---|
| 0 (مستقيم) | `TYPE_STRAIGHT` | سهم مستقيم |
| 2 (يمين) | `TYPE_TURN_NORMAL_RIGHT` | يمين |
| 3 (يمين خفيف) | `TYPE_TURN_SLIGHT_RIGHT` | يمين خفيف |
| -2 (يسار) | `TYPE_TURN_NORMAL_LEFT` | يسار |
| -1 (يسار خفيف) | `TYPE_TURN_SLIGHT_LEFT` | يسار خفيف |
| 4 (وصول) | `TYPE_DESTINATION` | أخضر (وصول) |
| 6 (دوار) | `TYPE_ROUNDABOUT_ENTER_AND_EXIT_CW` | دوار |
| 7 (ابق يمين) | `TYPE_KEEP_RIGHT` | ابق يمين |
| -7 (ابق يسار) | `TYPE_KEEP_LEFT` | ابق يسار |
**الألوان على CarPlay:**
- النوع 4 (وصول) → أخضر نظامي (`systemGreen`)
- النوع 2، -2 (يمين/يسار) → أزرق نظامي (`systemBlue`)
- الباقي → لا لون خاص
---
## قائمة التحقق من الاختبار (Testing Checklist)
### Android Auto
| الاختبار | الحالة | ملاحظات |
|---|---|---|
| تشغيل التطبيق على DHU (Desktop Head Unit) | ⬜ | محاكي Android Auto |
| اتصال USB بوحدة رأس حقيقية | ⬜ | سيارة حقيقية أو وحدة رأس خارجية |
| بدء التنقل من التطبيق → يظهر على الشاشة | ⬜ | |
| تعليمات منعطف-بمنعطف تظهر بشكل صحيح | ⬜ | |
| المناورات (يمين/يسار/دوار/وصول) تعرض الأيقونات الصحيحة | ⬜ | |
| تحديثات ETA والمسافة تعمل | ⬜ | |
| الكاميرا تتبع الموقع على الخريطة (MapLibre) | ⬜ | |
| إعادة التوجيه التلقائي ينعكس على شاشة السيارة | ⬜ | |
| إيقاف التنقل ينظف الجلسة | ⬜ | |
| خدمة المقدمة تستمر في الخلفية | ⬜ | |
| TalkBack / إمكانية الوصول تعمل | ⬜ | |
### Apple CarPlay
| الاختبار | الحالة | ملاحظات |
|---|---|---|
| تشغيل على محاكي CarPlay في Xcode | ⬜ | iOS Simulator → I/O → External Displays → CarPlay |
| اتصال Lightning/USB-C بسيارة حقيقية | ⬜ | |
| بدء التنقل → يظهر CPMapTemplate | ⬜ | |
| المناورات مع ألوان (أخضر/أزرق) | ⬜ | |
| تقديرات الوصول (ETA) تُحدث | ⬜ | |
| واجهة التحريك (panning) تظهر عند تحديث الموقع | ⬜ | |
| الأوامر الصوتية / Siri تعمل | ⬜ | |
| إلغاء التنقل → `session.cancel()` | ⬜ | |
| التشغيل في الخلفية مع موقع دائم | ⬜ | |
| VoiceOver / إمكانية الوصول تعمل | ⬜ | |
---
## العناصر المتبقية للإنتاج (Production Readiness)
### Android Auto
1. ✅ كود التطبيق مكتمل
2. 📋 **Play Console**: إعلان فئة "Navigation" في قسم Android Auto
3. 📋 **Play Console**: رفع لقطات شاشة Android Auto (مطلوبة للنشر)
4. 📋 **التوقيع**: بناء موقع بمفتاح الإصدار (`key.properties`)
5. ⚠️ **اختبار**: تحقق على DHU ووحدة رأس حقيقية
6. ⚠️ **إمكانية الوصول**: تحقق TalkBack مع NavigationTemplate
### Apple CarPlay
1. ✅ كود التطبيق مكتمل
2. 📋 **Apple Developer Portal**: أضف قدرة `CarPlay (Driving Task)` للمعرف
3. 📋 **Apple Developer Portal**: أعد إنشاء ملفات التوفير
4. 📋 **Xcode**: فعّل قدرة CarPlay في Signing & Capabilities
5. 📋 **App Store Connect**: ارفع لقطات شاشة CarPlay (6.7" و 5.5")
6. 📋 **App Store Connect**: أيقونة CarPlay (اختياري للتنقل)
7. ⚠️ **اختبار**: محاكي CarPlay + سيارة حقيقية
8. ⚠️ **مراجعة HIG**: https://developer.apple.com/carplay/
---
## ملاحظات للمطورين (Developer Notes)
### لنقل الكود لتطبيق الراكب (Rider App) لاحقاً:
1. **Android Auto**: انسخ ملفات `MyCarAppService.kt`، `MyCarSession.kt`، `MyCarScreen.kt`، `MapPresentation.kt`، `CarNavigationData.kt`، وعدل `package` إلى `com.siro.siro_rider`
2. **iOS CarPlay**: انسخ `CarPlaySceneDelegate.swift`، عدّل `AppDelegate.swift` لإضافة جسر `car_navigation`، حدث `Info.plist` و `Runner.entitlements`
3. **Flutter**: `CarPlatformBridge.dart` مشترك، فقط تأكد من تهيئته في `main.dart` للراكب وربطه بـ `NavigationController` الخاص بالراكب
4. **الأذونات**: نفس أذونات الموقع والخلفية مطلوبة
### مشاكل معروفة / تحسينات مستقبلية:
- **CarPlay**: `updatingArrival(to:)` مهمل في iOS 15+، فكر في الهجرة لـ `updating(_:)` على `arrivalEstimates` للمناورة
- **Android Auto**: `HostValidator` في الإنتاج يجب أن يستخدم `hosts_allowlist_google` وليس `hosts_allowlist_sample`
- **MapLibre على CarPlay**: تأكد من أن `asset://flutter_assets/assets/style.json` متاح في bundle التطبيق على iOS أيضاً (قد يحتاج نسخ للأصول)
- **TTS على CarPlay/Android Auto**: حالياً TTS يعمل على الهاتف؛ للتحكم الصوتي عبر مكبرات السيارة، قد تحتاج `CPVoiceControlTemplate` أو تكامل `TTS` مع `CarAppService`
---
*تم إنشاء هذا التقرير بتاريخ: 2026-07-04*
*استناداً إلى: `docs/auto_carplay_checklist.md` (النسخة الإنجليزية) ومراجعة الكود الكامل لتطبيق `siro_driver`*