Files
tripz-llc/docs/22-full-product-roadmap.md
T
Hamza-AyedandClaude Opus 4.8 4fc79181ff docs: الخريطة الشاملة (22) — من باك إند مكتمل إلى منصّة كاملة مماثلة لسيرو
مبنية على دراسة كود سيرو الفعلي: كتالوج سطح الميزات (تطبيقات · محرّك تسعير
· محرّك تسويق · بوتات · مواصلات · سياج جغرافي · متحكّم موقع السائق).
المجموعات L–Q: التسعير · الميزات المتقدّمة (المفاوض/الشرائح/السياج) · طبقة
الـSaaS (سوبر-أدمن + توليد التطبيق + سكربت Shorebird) · التحليلات/المواصلات/
البوتات · بوابات الدفع الحقيقية · إعادة بناء فلاتر. مع توصيات على القرارات
المفتوحة: ويب للوحات، مواصفات السيرفر، كتالوج الميزات لكل فئة.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 03:26:47 +03:00

130 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 22 — الخريطة الشاملة: من باك إند مكتمل إلى منصّة كاملة مماثلة لسيرو
> بعد اكتمال المجموعات A–K (باك إند النواة) واختبار E2E بـ43 محكّاً على السيرفر، هذه خريطة **بقية المنتج**: كل ما في سيرو + طبقة الـSaaS متعددة المستأجرين + تطبيق فلاتر مُعاد بناؤه.
> مبنية على **دراسة كود سيرو الفعلي** لا التخمين. كل مجموعة تُنفَّذ بعد إقرارك، مجموعة مجموعة (أسلوبنا المتّفق).
آخر تحديث: 2026-07-18.
---
## 0. ما درسته في سيرو (سطح الميزات الكامل)
| المكوّن | ما هو | التقنية |
|--------|-------|--------|
| `siro_rider` · `siro_driver` | تطبيقا الراكب والسائق | Flutter/GetX |
| `siro_admin` | تطبيق أدمن المستأجر | Flutter (متعدد المنصات) |
| `siro_service` | تطبيق خدمة العملاء | Flutter |
| `transit_dashboard` | لوحة المواصلات | ويب (Vite/JS) |
| `backend/pricing-engine` | تسعير ديناميكي/ذكاء أسعار المنافسين (انحدار · تجميع · surge · مناطق) | Node/TS |
| `backend/marketing_engine` | بوتات تسويق آلية + مولّد تعليقات Gemini + مهام مجدولة + تقارير | PHP + Python |
| `android_bot` · `socialBot` | بوتات | Kotlin/Android |
| `backend/Admin/geofence` | السياج الجغرافي | PHP |
| `backend/transit` + وضع الباص | نظام المواصلات (خطوط باص) | PHP + Flutter |
| `driver_assurance` | تأمين السائق | PHP |
| **متحكّم موقع السائق** (`location_controller.dart`) | تسجيل كل 3ث · رفع دفعات كل دقيقتين · واعٍ للبطارية (توفير عند 20%) · سوكت للبثّ + دفعات للحفظ · وضع باص منفصل · عتبة محفظة −200 | Flutter |
---
## 1. قراراتك المفتوحة — توصياتي
### 1.1 لوحة الأدمن/السوبر-أدمن/خدمة العملاء: ويب أم تطبيق؟
**توصيتي: ويب** للثلاثة (الأدمن · السوبر-أدمن · خدمة العملاء)، والموبايل (راكب/سائق) يبقى فلاتر.
- **لماذا ويب**: لا احتكاك متجر (تحديث فوري) · يعمل على سطح المكتب حيث يعمل المشغّلون فعلاً · بناء وصيانة أسهل من فلاتر · معيار الصناعة (لوحات أوبر/بولت ويب). سيرو استعمل فلاتر للأدمن لأنه أراد تطبيقاً واحداً، لكن للوحة تحكّم SaaS الويب أنسب.
- **لماذا الموبايل يبقى فلاتر**: GPS في الخلفية · overlay · إشعارات · كاميرا/حيوية وجه — كلها تحتاج أصيلاً (native).
- يطابق قرار بنية المستودع السابق: `dashboards/admin-web` · `dashboards/superadmin-web`.
### 1.2 مواصفات السيرفر (بحث الحمل: 1.15M رحلة/يوم على صندوق مشترك واحد)
| الدور | المواصفات | الحمل |
|-------|-----------|-------|
| **سيرفر مستأجر مشترك** (launch/brand) | 8 vCPU · 32GB · NVMe | عدة مستأجرين صغار على نفس الصندوق (عزل بالبادئة) |
| **سيرفر مستأجر سيادي** (sovereign) | 8 vCPU · 16–32GB · NVMe مخصّص | مستأجر واحد كبير حتى ~1M/يوم |
| **السيرفر الاحتياطي** | مماثل أو أصغر | نسخة Postgres متدفّقة (streaming replica) + Redis AOF |
| **Control Plane** (سوبر-أدمن + فوترة) | 4 vCPU · 8GB | يدير كل المستأجرين، منفصل |
- **العنق دائماً Postgres** (بركة الاتصالات) لا الـCPU/RAM. Redis 4–8GB يكفي (نصوص صغيرة).
- **الاحتياطي**: تكرار فيزيائي متدفّق لـPostgres (hot standby) + `docker compose` جاهز للإقلاع. RPO ≈ ثوانٍ، RTO ≈ دقائق.
- التوسّع: نسخ API أفقية خلف Nginx (الـredis-io-adapter مبني أصلاً) قبل تقسيم القاعدة.
### 1.3 كتالوج الميزات: أساسية مقابل مدفوعة (يوسّع المجموعة K)
| فئة | ميزات |
|-----|-------|
| **نواة (كل الباقات)** | رحلات · مطابقة · محفظة · تقييم · إشعارات · دردشة · مكالمات · وثائق · مركبات |
| **علامة+** | محرّك تعرفة كامل · country pack · أنواع رحلات مخصّصة · dispatch |
| **أسطول+** | API/Webhooks · تقارير متقدمة · بوابة شركات |
| **مدفوعة منفصلة (add-ons)** | 🤖 التسعير الديناميكي · 📊 استخبار السوق · 📣 محرّك التسويق/البوتات · 🚌 المواصلات · 🛡️ تأمين السائق · المفاوض الذكي · شرائح السائقين |
| **سيادة** | كل الميزات + عزل داخل الدولة |
### 1.4 توفير المستأجر من السوبر-أدمن (الخيارات التي تزوّدها)
عند إنشاء مستأجر، السوبر-أدمن يحدّد: **الاسم · اللوغو · الدولة (country pack) · وسائل الدفع · الباقة · الميزات المفعّلة · الحدود العددية**. أغلبها مبني في K (`tenants.features`/`settings`)؛ الناقص: رفع اللوغو + توليد الحزمة (§2 المجموعة N).
---
## 2. المجموعات القادمة (تكملةً لـA–K)
### المجموعة L — إكمال نموذج التسعير (B9/B10/B11 + الديناميكي)
| # | البند |
|---|-------|
| L1 | **B9**: نقاط CRUD لتحرير التعرفة من لوحة الأدمن (jsonb موجود؛ نحتاج واجهة + تحقّق) |
| L2 | **B10**: كتالوج أنواع رحلات عالمي جاهز (بدل 6 مبثوثة) — المستأجر يختار منه |
| L3 | **B11**: بُعد تسعير بالوزن (شحن/توصيل) بجانب المسافة/الزمن |
| L4 | **التسعير الديناميكي** (من `pricing-engine`): surge حسب الطلب/العرض في المنطقة + مناطق تسعير. add-on مدفوع. محرّكنا يستقبل مضاعف surge. |
### المجموعة M — ميزات التشغيل المتقدّمة (F سابقاً)
| # | البند |
|---|-------|
| M1 | **المفاوض الذكي**: الراكب يعرض سعراً، السائق يقبل/يفاوض (نمط inDrive). |
| M2 | **شرائح السائقين** (tiers): برونزي/فضي/ذهبي حسب الأداء → أولوية عروض/عمولة أقل. |
| M3 | **السياج الجغرافي** (من `Admin/geofence`): مناطق مسموح/ممنوع · تسعير حسب المنطقة · حظر دخول. |
| M4 | **تأمين السائق** (`driver_assurance`). |
### المجموعة N — طبقة الـSaaS: السوبر-أدمن وتوليد التطبيق ⭐ (الهدف الأساسي)
| # | البند |
|---|-------|
| N1 | **لوحة سوبر-أدمن (ويب)**: إنشاء مستأجر · اسم/لوغو/دولة/دفع/باقة/ميزات · تعديل الاشتراك · مراقبة الأسطول. (الباك إند K جاهز؛ نبني الواجهة.) |
| N2 | **رفع اللوغو + توليد الأيقونات/splash** تلقائياً لكل مستأجر. |
| N3 | **سكربت توليد التطبيق الواحد**: يضبط bundle ID · يبدّل الأيقونات/الـsplash من اللوغو · يحقن FCM · **يربط إضافات Kotlin/C++ الأصيلة** (overlay · method channels · NDK · root) المبنية على bundle ID · يبني · **يسجّل ويدفع عبر Shorebird**. |
| N4 | **لوحة أدمن المستأجر (ويب)**: dispatch · سائقون · رحلات · تعرفة · تقارير · مراجعة وثائق. |
| N5 | **لوحة خدمة العملاء (ويب)**: بحث مستخدم · شكاوى · تدخّل. |
### المجموعة O — التحليلات والمواصلات والتسويق
| # | البند |
|---|-------|
| O1 | **تحليل بيانات المواقع**: `driver_tracks` (مبني في H) → خرائط حرارية · تنبّؤ الطلب · سلوك السائق (H6/H7 المؤجَّلتان). |
| O2 | **نظام المواصلات** (`transit` + وضع الباص): خطوط · محطات · بثّ موقع الباص منفصل. add-on. |
| O3 | **محرّك التسويق** (`marketing_engine`): بوتات آلية · مولّد تعليقات Gemini · مهام مجدولة · تقارير. add-on. |
| O4 | **البوتات** (`socialBot` · `android_bot`): نسخ + تهيئة كـadd-ons مدفوعة خلف الاستحقاقات. |
### المجموعة P — إكمال المدفوعات (بوابات حقيقية)
| # | البند |
|---|-------|
| P1 | **بوابات فعلية**: PayMob (مصر) · CliQ (الأردن) · MTN/SyriaTel/شام كاش (سوريا) — من I3 (جدول لكل طريقة) + محوّل موحّد. |
| P2 | **webhook رسائل + Gemini** (I8): تسوية الدفع من رسائل المزوّد للأسواق بلا API. |
| P3 | **محفظة المنصة/تقرير الإيراد** (I2). |
### المجموعة Q — تطبيق فلاتر (إعادة بناء كاملة) 📱
> **إعادة استعمال الأصيل الثابت** (Kotlin/iOS من التطبيق القديم Ride/Tripz)، **وإعادة بناء Dart من الصفر** بـCubit+Bloc (لا GetX).
> راجع [[tripz-mobile-store-identity]] لمعرّفات المتاجر التي يجب الحفاظ عليها.
| # | البند |
|---|-------|
| Q1 | **الأساس**: splash · onboarding · login (هاتف+OTP، بلا كلمة مرور) · الخريطة (flutter_map + بلاطات انطلق). |
| Q2 | **الراكب**: صفحة الطلب · اختيار الوجهة/التوقفات · widgets الرحلة · تتبّع السائق حياً · الدفع · التقييم (شاشة إجبارية عند وجود رحلة معلّقة). |
| Q3 | **السائق**: overlay العرض · قبول · widgets الرحلة · **متحكّم الموقع** (تسجيل 3ث/رفع دفعات/واعٍ للبطارية — نمط سيرو) · حيوية الوجه · الرصيد/الشحن. |
| Q4 | **الخرائط المتقدّمة**: خريطة حرارية · خريطة تنبّؤية (من O1). |
| Q5 | **البنية التحتية للتطبيق**: طبقة الشبكة (توقيع HMAC · x-device-id) · country pack ديناميكي · flavors. |
---
## 3. ترتيب التنفيذ المقترح
1. **L** (التسعير) — يكمل النواة المالية، باك إند صرف، سريع.
2. **N** ⭐ (السوبر-أدمن + توليد التطبيق) — **الهدف الأساسي**؛ يجعل المنتج قابلاً للبيع لمستأجر جديد.
3. **Q** (فلاتر) — بالتوازي مع N، لأنه أطول جزء.
4. **M** (ميزات متقدّمة) · **P** (بوابات) · **O** (تحليلات/بوتات) — add-ons تُباع تِباعاً.
## 4. ما لا أعرفه بعد (أحتاج دراسة أعمق قبل تنفيذ كل مجموعة)
- تفاصيل `pricing-engine` (خوارزميات surge الفعلية) — قبل L4.
- بروتوكول `intaleq_maps` وبلاطات انطلق للـflutter_map — قبل Q1.
- تفاصيل إضافات Kotlin/C++ (overlay/NDK) وربطها بـbundle ID — قبل N3.
- API بوابات الدفع الفعلية (PayMob/CliQ/MTN) — قبل P1.
---
← ذو صلة: [17-backend-backlog](17-backend-backlog.md) · [05-pricing-billing](05-pricing-billing.md) · [06-tenant-model](06-tenant-model.md) · [19-entitlements-licensing](19-entitlements-licensing.md) · [20-tls](20-tls.md)