diff --git a/backend/migrations/2026_08_07_kazan_cancel_penalty_policy.sql b/backend/migrations/2026_08_07_kazan_cancel_penalty_policy.sql new file mode 100644 index 00000000..f29f24fd --- /dev/null +++ b/backend/migrations/2026_08_07_kazan_cancel_penalty_policy.sql @@ -0,0 +1,22 @@ +-- 2026_08_07_kazan_cancel_penalty_policy.sql +-- +-- ‏سبب الترحيل: كان مبلغ غرامة الإلغاء في ride/rides/cancel_ride_by_driver.php +-- ‏يُقرأ من طلب العميل مباشرة (filterRequest("penalty_fee")) ويُخصم من محفظة +-- ‏الراكب بلا سقف ولا تحقق — أي أن طلباً مصاغاً يدوياً كان يقدر يخصم أي مبلغ +-- ‏من أي راكب. صار المبلغ يُقرأ من هنا فقط، ولا يقبل الخادم أي قيمة من العميل. +-- +-- ‏القيمة الافتراضية '0' تحفظ السلوك الحالي حرفياً: لا عميل يرسل penalty_fee +-- ‏اليوم، فالغرامة لا تُطبَّق فعلياً. تفعيلها قرار إداري صريح بتحديث الصف. +-- +-- ‏القاعدة المستهدفة: primary فقط — الكود يقرأ kazan عبر $con، وجدول kazan في +-- ‏قاعدتي ride/tracking بنية أقدم ومختلفة الأعمدة (لا يُستخدم في هذا المسار). + +ALTER TABLE `kazan` + ADD COLUMN `cancelPenaltyFee` VARCHAR(10) + CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci + NOT NULL DEFAULT '0' + COMMENT 'غرامة إلغاء السائق بعد القبول، تُخصم من محفظة الراكب. 0 = معطّلة' + AFTER `startPrice`; + +-- ‏للتراجع: +-- ALTER TABLE `kazan` DROP COLUMN `cancelPenaltyFee`; diff --git a/backend/ride/rides/cancel_ride_by_driver.php b/backend/ride/rides/cancel_ride_by_driver.php index 53c7dd6b..b454b0da 100644 --- a/backend/ride/rides/cancel_ride_by_driver.php +++ b/backend/ride/rides/cancel_ride_by_driver.php @@ -13,11 +13,22 @@ require_once __DIR__ . '/streak_helper.php'; $rideId = filterRequest("ride_id"); $driverId = filterRequest("driver_id"); $reason = filterRequest("reason"); -$passengerToken = filterRequest("passenger_token"); -$penaltyFee = (float) filterRequest("penalty_fee"); +$passengerToken = filterRequest("passenger_token"); + +// ‏مبلغ الغرامة لا يُقرأ من الطلب إطلاقاً. كان سابقاً filterRequest("penalty_fee") +// ‏فيُخصم من محفظة الراكب بلا سقف ولا تحقق. صار يُحسم من سياسة الخادم أدناه. +// ‏إن وصل المفتاح من عميل فهو إما نسخة قديمة أو محاولة عبث — نسجّله ونتجاهله. +if (filterRequest("penalty_fee") !== null && filterRequest("penalty_fee") !== '') { + error_log("[cancel_ride_by_driver] SECURITY: تجاهل penalty_fee من العميل" + . " (ride=$rideId driver=$driverId) — السياسة تُقرأ من kazan فقط"); +} + +// ‏سقف صلب فوق أي قيمة في قاعدة البيانات — يمنع خطأ إدارياً أو صفاً تالفاً +// ‏من تحويل الغرامة إلى خصم كارثي. +const CANCEL_PENALTY_ABSOLUTE_CAP = 50000.0; // تثبيت الحالة -$statusText = "CancelFromDriverAfterApply"; +$statusText = "CancelFromDriverAfterApply"; if (!$rideId || !$driverId) { jsonError("Missing parameters"); @@ -27,6 +38,28 @@ if (!$rideId || !$driverId) { try { $con->beginTransaction(); + // --------------------------------------------------------- + // 0. التحقق من الملكية — الرحلة يجب أن تكون مُسندة لهذا السائق + // ‏بدون هذا الفحص كان أي driver_id يقدر يلغي أي رحلة ويغرّم راكبها. + // --------------------------------------------------------- + $stmtOwn = $con->prepare("SELECT driver_id FROM ride WHERE id = ? FOR UPDATE"); + $stmtOwn->execute([$rideId]); + $assignedDriver = $stmtOwn->fetchColumn(); + + if ($assignedDriver === false) { + $con->rollBack(); + jsonError("Ride not found"); + exit; + } + + if ((string) $assignedDriver !== (string) $driverId) { + $con->rollBack(); + error_log("[cancel_ride_by_driver] SECURITY: رفض إلغاء رحلة غير مُسندة" + . " (ride=$rideId caller=$driverId assigned=$assignedDriver)"); + jsonError("Ride is not assigned to this driver"); + exit; + } + // --------------------------------------------------------- // 1. معالجة driver_orders (Insert or Update) // --------------------------------------------------------- @@ -99,17 +132,35 @@ try { notifyPassengerOnRideServer($passenger_id, $socketPayload); } - // 4.1. إضافة غرامة الإلغاء على الراكب (الدين) إذا كانت موجودة + // 4.1. غرامة الإلغاء على الراكب — المبلغ من سياسة الخادم لا من العميل + // Resolve country + penalty policy (kazan هو مصدر الحقيقة الوحيد) + // ‏قراءة متسامحة: لو نزل الكود قبل ترحيل cancelPenaltyFee، لا نُسقط + // ‏الإلغاء كله — نرجع لقراءة الدولة وحدها ونعتبر الغرامة صفراً. + try { + $stmtKazan = $con->prepare("SELECT country, cancelPenaltyFee FROM kazan LIMIT 1"); + $stmtKazan->execute(); + $kazan = $stmtKazan->fetch(PDO::FETCH_ASSOC) ?: []; + } catch (PDOException $eKazan) { + error_log("[cancel_ride_by_driver] cancelPenaltyFee غير موجود بعد" + . " (شغّل migrations/2026_08_07_kazan_cancel_penalty_policy.sql): " + . $eKazan->getMessage()); + $stmtKazan = $con->prepare("SELECT country FROM kazan LIMIT 1"); + $stmtKazan->execute(); + $kazan = $stmtKazan->fetch(PDO::FETCH_ASSOC) ?: []; + } + $country = $kazan['country'] ?? 'Jordan'; + + $penaltyFee = (float) ($kazan['cancelPenaltyFee'] ?? 0); + if ($penaltyFee > CANCEL_PENALTY_ABSOLUTE_CAP) { + error_log("[cancel_ride_by_driver] kazan.cancelPenaltyFee=$penaltyFee" + . " تجاوز السقف الصلب — قُصّ إلى " . CANCEL_PENALTY_ABSOLUTE_CAP); + $penaltyFee = CANCEL_PENALTY_ABSOLUTE_CAP; + } + if ($penaltyFee > 0) { // إضافة القيمة كدين سالب في المحفظة $negativeDebt = -$penaltyFee; - // Resolve country and wallet server - $stmtKazan = $con->prepare("SELECT country FROM kazan LIMIT 1"); - $stmtKazan->execute(); - $kazan = $stmtKazan->fetch(PDO::FETCH_ASSOC) ?: ["country" => "Jordan"]; - $country = $kazan['country'] ?? 'Jordan'; - $walletServer = "https://walletintaleq.intaleq.xyz"; if (strtolower($country) == 'jordan') { $walletServer = getenv('WALLET_SERVER_JORDAN') ?: "https://walletintaleq.intaleq.xyz"; diff --git a/backend/schema_primary.sql b/backend/schema_primary.sql index 25c3d53b..2d7a657d 100644 --- a/backend/schema_primary.sql +++ b/backend/schema_primary.sql @@ -839,6 +839,7 @@ CREATE TABLE `kazan` ( `fuelPrice` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'سعر الوقود المرجعي', `currency` varchar(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'SYP' COMMENT 'رمز العملة: SYP, EGP, JOD, IQD, ...', `startPrice` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT 'فتحة العداد', + `cancelPenaltyFee` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT 'غرامة إلغاء السائق بعد القبول، تُخصم من محفظة الراكب. 0 = معطّلة', -- ========== 🚗 أسعار الكيلومتر لكل نوع سيارة ========== `speedPrice` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'سعر الكيلومتر - Speed', diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index ec442994..65bd4cca 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -209,7 +209,10 @@ services: PMA_PORT: 3306 UPLOAD_LIMIT: 300M ports: - - "8082:80" # ادخل عليه عبر http://your-domain:8082 أو افتح بورت 8082 في CloudPanel + # ‏مقيَّد على loopback عمداً: الربط السابق "8082:80" كان يكشف phpMyAdmin + # ‏للإنترنت بلا TLS (‏docker-proxy يلتفّ على UFW). الوصول عبر نفق SSH فقط: + # ‏ssh -N -L 8082:127.0.0.1:8082 USER@SERVER + - "127.0.0.1:8082:80" depends_on: - mysql mem_limit: 256m diff --git a/siromove.com/study.html b/siromove.com/study.html index fbf91941..685635bc 100644 --- a/siromove.com/study.html +++ b/siromove.com/study.html @@ -3,1124 +3,828 @@ - دراسة الجدوى - تطبيق سيرو 🇸🇾 - - - - - - - - - - - - - + دراسة الفرص والإضافات — منصة سيرو + - + +
+

دراسة الفرص والإضافات — منصة سيرو

- -
-
-
-

مشروع النقل الذكي (تطبيق سيرو) — سوريا 🇸🇾

-

خطة تمويل 14 شهراً — النسخة النهائية للمستثمرين

-
-
- Siro Logo -
-
- - -
-
- - - - - -
-
-
+
+

التاريخ: 2026-08-06 · الأساس: قراءة مباشرة للكود الحالي على main (904 نقطة PHP، ~300 ألف سطر Dart، 4 تطبيقات، 3 قواعد بيانات، 5 خوادم)

+

الغرض: لائحة فرص قابلة للفرز — كل بند مربوط بدليل من الكود، ومصنّف: فجوة مؤكدة / إضافة / فكرة خارج الصندوق.

+

ملاحظة منهجية: هذه الدراسة لا تكرّر NEW_FEATURES_PROPOSAL_AR.md (18 ميزة، يوليو 2026). ما يظهر هنا إما فجوة لم تُغطَّ هناك، أو نفس الفكرة بزاوية تنفيذية مختلفة، أو خط عمل جديد كلياً.

+
- -
+
- -
- -
-

المحتويات

-
-
1. الملخص التنفيذي وأطروحة الاستثمار
-
2. إثبات السوق (Pilot Validation)
-
3. الإطار القانوني والتراخيص
-
4. المصاريف التأسيسية (CAPEX)
-
5. المصاريف التشغيلية الشهرية (OPEX)
-
6. استراتيجية بناء الأسطول
-
استراتيجيات النمو والتسويق (في تبويب مستقل)
-
7. استراتيجية التوسع الجغرافي
-
8. التحليل المالي ونقطة التعادل
-
9. ملخص رأس المال المطلوب
-
10. مؤشرات الأداء الرئيسية (KPIs)
-
11. المخاطر والتخفيف
-
12. الخلاصة للمستثمر
-
-
+

القسم صفر — الخلاصة في صفحة واحدة

-

1. الملخص التنفيذي وأطروحة الاستثمار

- -

المشروع

-

إطلاق تطبيق نقل ذكي (سيرو) بهوية تجارية جديدة كلياً في السوق السوري، بدءاً من دمشق، مع خطة توسع منهجية نحو المحافظات الأخرى. التطبيق مبني على بنية تحتية تقنية جاهزة ومُختبرة ميدانياً.

- -

لماذا هذا الاستثمار مختلف ومربح؟

-
- "هذا التمويل للنمو والسيطرة على السوق، وليس لبناء المنتج." -
-

على عكس الشركات الناشئة التي تطلب المال لبناء التطبيق وتوظيف فريق البرمجة:

+

بعد قراءة الكود، النتيجة الجوهرية: سيرو ليست ناقصة ميزات، هي ناقصة طبقة قرار.

+ +

البنية التحتية استثنائية لشركة بهذا الحجم: محرك تسعير آلي يراقب المنافسين، سوكيتات لحظية معزولة، محفظة موصولة بستة مزوّدي دفع في ثلاث دول، WebRTC + TURN مبني داخلياً، وحدة باصات مؤسسية، وحدة طعام شبه جاهزة، ومنصة تسويق آلية. لكن قلب المنتج — إسناد الرحلة للسائق — ما يزال "بثّ للجميع، وأول من يضغط يفوز" (ride/rides/add_ride.php:18 → broadcastRideToMarket، ثم القفل التفاؤلي في ride/rides/acceptRide.php:52-63). هذه ليست تفصيلة تقنية: هي المتغيّر الذي يحدد وقت الانتظار، ونسبة الرفض، ودخل السائق، وهامش الشركة — أكثر من أي ميزة في اللائحة.

+ +

الترتيب الذي أوصي به لو كان القرار قراري:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#البندلماذا الآن
1محرك إسناد بالدفعات بدل البثّ الحرّأعلى أثر على كل مؤشر تشغيلي، وصفر تكلفة تسويق
2إغلاق التسرب خارج المنصةتسرب مباشر من الإيراد، والأداة نصف مبنية أصلاً
3سيرو للأعمال (حسابات الشركات)أسرع إيراد جديد، بلا أصول ولا فريق ميداني
4الحجز المسبق + رسوم الإلغاءشريحة كاملة مفقودة + وقف نزيف وقت السائق
5غرفة عمليات السلامةزر SOS الحالي لا يصل لأحد داخل الشركة
6إطلاق الطعام (المرحلة الخامسة)مبني حتى المرحلة الرابعة ومتوقف على 3 نقاط فقط
+ +
+ +

القسم الأول — فجوات مؤكدة في قلب المنتج

+ +

هذه ليست اقتراحات تحسين، هي أشياء غائبة فعلاً من الكود وتؤثر على التشغيل اليومي.

+ +
+

1.1 نظام الإسناد: بثّ حرّ بدل توزيع

+ +

الوضع المؤكد: عند إنشاء الرحلة، broadcastRideToMarket() ترسل الحمولة كاملة (السعر، نقطة البداية، الوجهة، المسافة، تقييم الراكب) إلى سوكيت السائقين، فتظهر لكل سائق قريب. ثم يتسابق الجميع على acceptRide.php، والقفل WHERE status IN ('waiting','wait') يعطيها لأول من وصل. الراكب من جهته يوسّع نطاق البحث تدريجياً (2400م → 3000م → 3100م) ويُعرض عليه "زيادة السعر" بعد 90 ثانية.

+ +

ما الذي يفعله هذا فعلياً:

    -
  • المنتج البرمجي جاهز بالكامل: تطبيق أندرويد، iOS، لوحة تحكم إدارية، نظام مطابقة ذكي، محافظ رقمية، وخرائط محلية.
  • -
  • البنية التحتية جاهزة: سيرفرات سحابية، أنظمة دفع، خوارزميات مطابقة، ونظام GPS.
  • -
  • الترخيص الحكومي متاح: خبرة سابقة كاملة في إجراءات الترخيص لدى الهيئة الناظمة ووزارة النقل.
  • -
  • كل دولار من هذه الجولة الاستثمارية سيتحول مباشرة إلى مستخدمين وسائقين وحصة سوقية.
  • +
  • الانتقائية (cherry-picking): السائق يرى الوجهة والسعر قبل القبول، فيرفض الرحلات القصيرة أو المتجهة لمناطق ميتة. الرحلات "غير المرغوبة" تدور في السوق حتى تنتهي مهلتها أو يرفع الراكب سعره — وهذه ضريبة يدفعها الراكب عن مشكلة توزيع، لا عن ندرة حقيقية.
  • +
  • سباق يخسره الجميع: عشرة سائقين يضغطون، تسعة يحصلون على "Ride not available". هذا يُنتج إحباطاً متراكماً ويُدرّب السائق على تجاهل الإشعارات.
  • +
  • لا اعتبار لزمن الوصول الفعلي: الفائز هو الأسرع ضغطاً على الشاشة، لا الأقرب للراكب. سائق على بُعد 8 دقائق قد يسبق سائقاً على بُعد دقيقتين.
  • +
  • لا إنصاف في التوزيع: لا شيء يضمن أن السائق الذي انتظر ساعة يحصل على رحلة قبل من أنهى رحلة للتو.
-

الفرضيات المالية الأساسية والميزة التنافسية

- -
-
-

مؤشرات التطبيق:

-
- - - - - - - - -
متوسط سعر الرحلة2.70$ (حوالي 280 ل.س)
نسبة عمولة التطبيق11% ثابتة
صافي عمولة الرحلة للتطبيق~0.30$
معدل رحلات السائق اليومي3 رحلات (فرضية متحفظة)
خطة التمويل (Runway)14 شهراً
-
-
-
-

مقارنة عمولات السوق (السوق السوري):

-
- - - - - - - - - - -
التطبيق المنافسنسبة العمولة
تطبيق يلا جو (YallaGo)~ 20%
تطبيق زاكن (Zakinn)~ 17%
تطبيق تفضل15%
تطبيق سيرو (Siro)11% (جذب هائل للسائقين)
-
-
-
+

الحل المقترح — محرك إسناد بالدفعات (Batched Dispatch):

-

2. إثبات السوق — نتائج التشغيل التجريبي (Pilot)

-

خلال تجربة تشغيلية سابقة مدتها 45 يوماً فقط وبميزانية تسويقية لم تتجاوز 1,400$، تم تحقيق النتائج التالية:

- -
- - - - - - - - - - - -
المؤشرالنتيجة
السائقون الموثّقون (Onboarded)1,447 سائق (انظر الملاحظة أدناه)
الركاب المسجلون2,891 راكب
طلبات الرحلات697 طلب رحلة
تكلفة اكتساب الراكب (CAC Signal)~0.48$ فقط
سبب التوقفنفاد ميزانية النمو (وليس فشل المنتج أو رفض السوق)
-
+
بدل: بثّ فوري لكل السائقين → سباق
+صار: نافذة تجميع 4-6 ثوانٍ → ترتيب المرشحين → عرض حصري متسلسل
-

الدرس المستفاد من التجربة (التغيير الاستراتيجي)

-

السائقون البالغ عددهم 1,447 كانوا موزعين ومشتتين على كافة المحافظات السورية وليس في نطاق جغرافي واحد. التحدي الوحيد كان تشتت الكثافة الجغرافية. هذا الدرس أصبح حجر الأساس لاستراتيجية "الكثافة أولاً (Density-First)" المعتمدة في هذه الخطة، حيث سيتم استهداف الرقعة الجغرافية المحددة والتركيز على السائقين المتواجدين في مناطق الاهتمام فقط.

-
- 📍 لمشاهدة خارطة توزع السائقين من التجربة السابقة، انتقل إلى تبويب: توزع السائقين -
+

طبقة قرار بين add_ride.php والسوكيت، تحسب لكل مرشح درجة:

-

3. الإطار القانوني والتراخيص

- -

الأساس القانوني

-

يعمل المشروع وفق القانون رقم 16 لعام 2021 الذي ينظم نقل الركاب عبر التطبيقات الإلكترونية في سوريا.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
العاملالوزن المقترحمصدر البيانات (موجود)
زمن الوصول الفعلي (ETA لا المسافة الهوائية)40%geo:drivers:available في Redis + OSRM
معدّل القبول التاريخي20%driver_orders + canecl
التقييم15%ratingDriver
مدة الخمول (إنصاف)15%getDriverTimeOnline.php
ملاءمة الوجهة (اتجاه السائق المسجَّل)10%save_driver_destination.php — موجود وغير مستغل
-

مراحل الترخيص والمدة المتوقعة

-
- - - - - - - - - - - - -
المرحلةالمدةالتكلفة
تأسيس الشركة + السجل التجاري1-2 أسبوعضمن رسوم المحامي
تقديم طلب الترخيص + الملف الفني1-2 أسبوع—
المراجعة الفنية + الموافقة المبدئية (الهيئة الناظمة)2-4 أسابيع—
التنسيق مع وزارة النقل2-3 أسابيع—
إصدار شهادة الاعتمادية + الترخيص النهائي1-2 أسبوع600$
الإجمالي8-14 أسبوعاً—
-
+

ثم عرض حصري 8-12 ثانية للأول، وإن رفض أو تأخر ينتقل للثاني. الوجهة تُخفى حتى القبول (أو تُعرض كاتجاه عام فقط) — هذا وحده يقتل الانتقائية.

-
- 📄 للتفاصيل الكاملة حول الوثائق المطلوبة، شروط المركبات، والمراحل الزمنية الدقيقة، يرجى الرجوع إلى تبويب: دليل التراخيص والتسجيل. -
+

الأثر المتوقع: انخفاض زمن الوصول 15-30%، انخفاض الرحلات الملغاة قبل القبول، انخفاض الضغط على "زيادة السعر" (أي حماية للراكب وللسمعة السعرية معاً — وهذا متوافق مع توجه ثبات السعر المعتمد أصلاً).

-

4. المصاريف التأسيسية الثابتة (CAPEX) — $11,000

-

تُدفع لمرة واحدة قبل بدء التشغيل:

-
- - - - - - - - - - - - - - - - - -
البندالتكلفة
شهادة اعتمادية (الهيئة الناظمة)600$
أتعاب المحامي والتخليص القانوني1,500$
رسوم حكومية (وزارة النقل، سجل تجاري)200$
هواتف خدمة العملاء (3 أجهزة)450$
أجهزة التطوير (MacBook Pro M4 + iPhone + Android)5,000$
لابتوب للسيرفرات وإدارة الإعلانات350$
تجهيز المكتب — أثاث (مكاتب، كراسي، برادي، رفوف، مراوح)1,320$
تجهيز المكتب — معدات (راوتر، طابعة 65$، إكسسوارات، مكيف، قرطاسية، أدوات ضيافة)855$
تجهيزات سكن المؤسس (سرير، فرشة، ثلاجة، غاز، سخان، برادي)695$
تكاليف السفر والنقل والإقامة التأسيسية (أسبوعين)400$ - 800$
إجمالي التأسيس11,370$ - 11,770$ ≈ 11,500$ - 12,000$
-
+

التحذير الصادق: هذا التغيير حسّاس ويلمس أخطر مسار في النظام. يجب أن ينزل خلف مفتاح DISPATCH_MODE=broadcast|batched مع إمكانية التراجع الفوري، ويُجرَّب على مدينة أو نوع سيارة واحد أولاً.

+
-

5. المصاريف التشغيلية الشهرية (OPEX) — $8,000/شهر

-
- - - - - - - - - - - - - - - - -
البندالتكلفة الشهريةملاحظات
راتب المطور والمشغل الرئيسي3,500$يغطي 5 أدوار (انظر التفصيل أدناه)
فريق خدمة العملاء (3 موظفين)400$بمتوسط $133 للموظف (ألغي السكرتير)
أجور السيرفرات والبنية التحتية السحابية200$استضافة + نسخ احتياطي + Uptime 99.9%
إيجار المكتب (مقر فعلي بدمشق)600$كفرسوسة / المزة — 50-70 م²
إيجار سكن المشغل300$ضمن خطة الرواتب
خدمات الإنترنت45$خط ثابت مزدوج للموثوقية (بدلاً من 40$)
فاتورة الكهرباء70$مكتب + معدات + مكيف
باقات خطوط هواتف (3 أرقام)30$لخدمة العملاء
إعلانات رقمية (Facebook + TikTok)2,855$الباقي من الميزانية (ألغي السوشيال ميديا + السكرتير)
الإجمالي الشهري8,000$—
-
-

ملاحظة: ألغي بند إدارة السوشيال ميديا (200$) وبند السكرتيرة (100$). الفائض (~355$) يُضاف إلى الإعلانات الرقمية (2,855$ بدلاً من 2,500$). تدريب خدمة العملاء: أسبوعين (بدلاً من 4).

+
-

🔍 المهام والمسؤوليات المطلوبة من المطور والمشغل الرئيسي (3,500$)

-

هذا المبلغ يغطي مهاماً كانت لتتطلب فريقاً كاملاً أو شركات خارجية بتكاليف مضاعفة:

-
    -
  1. الإدارة التشغيلية: الإشراف اليومي على العمليات، وتوجيه فريق خدمة العملاء، وإدارة التسعير الديناميكي.
  2. -
  3. التطوير التقني المستمر: تحديث الأكواد، برمجة الميزات الجديدة لضمان الاستقلالية التقنية الكاملة.
  4. -
  5. إدارة السيرفرات (DevOps): مراقبة استقرار السيرفرات السحابية واستيعابها للضغط المتزايد دون توقف.
  6. -
  7. الأمن السيبراني: حماية قواعد بيانات العملاء وتأمين المحافظ الرقمية والأرصدة.
  8. -
  9. إدارة خوارزميات المطابقة: تحسين ربط السائق بالراكب جغرافياً لتقليل أوقات الانتظار.
  10. +
    +

    1.2 التسرب خارج المنصة — العدّاد موجود، والعلاج غائب

    + +

    الوضع المؤكد: جدول driver_ride_scam وride/driver_scam/add.php يسجّلان الحالة (سائق قبل، اتصل بالراكب، ثم أُلغيت الرحلة) ويعدّانها يومياً في Redis. هذا كل ما يحدث. لا عقوبة، لا حجب، لا احتساب مالي، لا مراجعة إدارية.

    + +

    لماذا يهم: هذه أكثر طريقة مباشرة يخسر بها التطبيق إيراده — الرحلة تحصل فعلاً، والعمولة لا تصل. في أسواق النقد المهيمن (سوريا، الأردن) هذا ليس حالة نادرة بل سلوك اقتصادي منطقي للسائق ما دام بلا كلفة.

    + +

    الحل — ثلاث طبقات:

    +
      +
    1. إخفاء رقم الراكب نهائياً. البنية جاهزة: WebRTC + coturn مبنيان بالفعل، وride/call/turn_credentials.php صريح أن نفس القناة تخدم "مكالمات الرحلات ومكالمات توصيل الطعام المقنّعة". المطلوب: منع تسرّب الرقم في حمولات الـ API قبل بدء الرحلة، والاكتفاء بالمكالمة داخل التطبيق. (يستحق تدقيقاً: التحقق من كل نقطة تُرجع بيانات الراكب للسائق بعد القبول.)
    2. +
    3. نموذج كشف بسيط وفعّال: قبول + مكالمة + إلغاء + عدم بدء الرحلة + تكرار نفس زوج (سائق، راكب) = إشارة عالية الثقة. لا يحتاج ذكاءً اصطناعياً، يحتاج استعلاماً واحداً وكروناً.
    4. +
    5. سُلّم عقوبات آلي: تنبيه → خفض أولوية في الإسناد (يرتبط مباشرة ببند 1.1) → تعليق مؤقت → مراجعة بشرية. الترابط مع محرك الإسناد هو ما يجعل العقوبة موجعة بلا حظر.
    +
    -

    6. استراتيجية بناء الأسطول (النواة الصلبة + الانتشار العضوي)

    - -

    الفلسفة: لماذا لا ندفع لكل السائقين؟

    -

    تعتمد الخطة على تمويل "النواة الصلبة" من السائقين فقط (السائقون المحفزون)، بينما يتضاعف عدد السائقين النشطين العضويين بشكل طبيعي بفضل العامل النفسي وعدوى النجاح، دون أن يكلفوا الشركة أي حوافز إضافية.

    +
    -
    - - - - - - - - -
    النوعالتعريفالتكلفة على الشركة
    السائق المحفزيحقق 7 ساعات عمل يومياً + 80% نسبة قبول = يستحق 15$/شهرمدفوع (كاش + رصيد)
    السائق النشط العضوييعمل بدوام جزئي أو لم يحقق شروط الحافز لكنه متواجد وينجز رحلاتصفر تكلفة (يدرّ أرباحاً صافية)
    -
    +
    +

    1.3 لا رسوم إلغاء ولا سياسة عدم حضور

    -

    خطة حوافز النواة الصلبة (أول 6 أشهر فقط)

    -
    - - - - - - - - - - - - - -
    الشهرعدد السائقين المحفزينالتكلفة الشهرية
    الأول1001,500$
    الثاني1201,800$
    الثالث1301,950$
    الرابع1802,700$
    الخامس2403,600$
    السادس3004,500$
    الإجمالي—16,050$
    -
    +

    الوضع المؤكد: ride/cancelRide/ فيه add / get / update / delete / addCancelTripFromDriverAfterApplied — تسجيل فقط. لا بحث عن رسم، غرامة، أو أثر مالي في المسار كله.

    - +

    ما يعنيه: السائق يقود 7 دقائق ثم يُلغى عليه، فيخسر وقتاً ووقوداً بلا تعويض. والراكب لا يتحمل شيئاً مقابل ذلك. هذه أحد أقوى أسباب هجران السائقين، وأرخص مشكلة في اللائحة إصلاحاً.

    -

    7. استراتيجية التوسع الجغرافي — خارطة دمشق

    - -

    التقسيم الجغرافي الاستراتيجي

    -
    - - - - - - - - - - -
    المنطقةالأحياءالأولويةمستوى الدخل
    🟢 منطقة أالمزة، كفرسوسة، المالكيةالشهر 1مرتفع جداً (سفارات، شركات)
    🔵 منطقة بأبو رمانة، المهاجرين، الروضة، الجسر الأبيضالأشهر 2-3مرتفع (وزاري، حكومي)
    🟡 منطقة جدمر، ركن الدين، القصاع، المزة فيلات غربيةالأشهر 4-6متوسط-مرتفع (كثافة سكانية عالية)
    🔴 منطقة دبرزة، جرمانا، قدسيا، دارياالشهر 7+متوسط (ضواحي — يُضاف بعد التعادل)
    -
    - -
    - 🗺️ لمشاهدة التوزيع الجغرافي التفصيلي، انتقل إلى تبويب: خارطة التوسع الجغرافي -
    +

    الحل: رسم إلغاء متدرّج (مجاني قبل قبول السائق أو خلال أول دقيقتين، ثم رسم رمزي يذهب للسائق لا للشركة)، وعدّاد "عدم حضور" للراكب، وإعفاء تلقائي إذا كان السائق هو المتأخر (البيانات متاحة من التتبع). ربط الرسم بالمحفظة الموجودة أو خصمه من الرحلة التالية.

    +
    -

    8. التحليل المالي ونقطة التعادل (Break-Even)

    - -

    المصاريف الشهرية الثابتة (OPEX):

    -
    - - - - - - - - -
    البندالمبلغ
    المصاريف التشغيلية الشهرية (OPEX) شاملة الإعلانات8,000$
    الإجمالي8,000$
    -
    +
    -

    حساب نقطة التعادل:

    -

    - المطلوب: 8,000$ ÷ 0.30$ (عمولة/رحلة) = ~26,667 رحلة شهرياً = ~889 رحلة يومياً -

    +
    +

    1.4 لا حجز مسبق

    -

    جدول التدفق النقدي الشهري — 14 شهراً (نموذج الدفع الشهري):

    -
    - - - - - - - - - - - - - - - - - - - - - -
    الشهرصرف المستثمرالإيراداتالعجز الشهريالإجمالي المدفوعرحلات/يومسائق نشط
    التأسيس (CAPEX)11,500-12,000$—-11,500-12,000$11,500-12,000$——
    الشهر 18,000$270$-7,730$~19,500$30100
    الشهر 28,000$630$-7,370$~27,500$70120
    الشهر 38,000$1,350$-6,650$~35,500$150220
    ★ الشهر 4 — نقطة الفحص8,000$3,150$-4,850$~43,500$350350
    ★ الشهر 5 — آخر نقطة خروج8,000$5,400$-2,600$~51,500$600480
    الشهر 68,000$6,750$-1,250$~59,500$750550
    ⚡ الشهر 7 — تعادل متفائل8,000$8,100$+100$~67,500$900630
    ⚡ الشهر 8 — تعادل قاعدي8,000$9,450$+1,450$~75,500$1,050750
    ⚡ الشهر 9 — تعادل محافظ8,000$10,500$+2,500$~83,500$1,167840
    الشهر 100$ — ذاتي11,250$+3,250$—1,250900
    الشهر 110$ — ذاتي12,375$+4,375$—1,375980
    الشهر 120$ — ذاتي13,500$+5,500$—1,5001,050
    الشهر 130$ — ذاتي14,400$+6,400$—1,6001,100
    الشهر 140$ — ذاتي15,300$+7,300$—1,7001,150
    -
    -

    * بعد نقطة التعادل (الشهر 7-9): الإيرادات تغطي كامل OPEX، المستثمر يتوقف عن الدفع الشهري تلقائياً.

    +

    الوضع المؤكد: لا جدول scheduled_rides في أي من schema_primary.sql / schema_ride.sql / schema_tracking.sql، ولا كرون للحجوزات ضمن الـ 25 كروناً في backend/bot/.

    -

    9. ملخص رأس المال المطلوب من المستثمر — نموذج الدفع الشهري

    -
    - - - - - - - - - - - - -
    البندالمبلغ ($)
    رأس المال التأسيسي (CAPEX) — دفعة واحدة11,500$ - 12,000$
    المصاريف التشغيلية الشهرية (OPEX)8,000$/شهر
    إجمالي التعرض عند الخروج المبكر (ش5)~51,500$ - 52,000$
    إجمالي الاستثمار حتى التعادل (متفائل — ش7)~59,500$ - 60,000$
    إجمالي الاستثمار حتى التعادل (قاعدي — ش8)~67,500$ - 68,000$
    إجمالي الاستثمار حتى التعادل (محافظ — ش9)~75,500$ - 76,000$
    -
    - -
    - رأس المال التأسيسي: 11,500$ - 12,000$ دولار أمريكي
    - + $8,000/شهر مصاريف تشغيلية حتى التعادل -
    +

    الشريحة المفقودة: رحلات المطار، المواعيد الطبية، الدوام اليومي، رحلات الفجر. هذه أعلى شرائح الاستعداد للدفع وأكثرها ولاءً وأقلها حساسية للسعر — وهي بالضبط الشريحة التي لا يخدمها أحد جيداً في السوق المحلي.

    -

    10. مؤشرات الأداء — نقاط الفحص واتخاذ القرار

    +

    الزاوية الأهم (ولم تُذكر في المقترح السابق): الحجز المسبق ليس ميزة راكب فقط — هو مصدر توقّع طلب مؤكد. رحلة محجوزة لبعد 6 ساعات = معلومة يقينية عن الطلب، تُغذّي cron_predictive_demand.php وheatmap بشيء أدق من أي تنبؤ إحصائي، وتسمح بتوجيه السائقين قبل الذروة لا بعدها.

    +
    -

    نقطة الفحص (الشهر 4):

    -
    - - - - - - - - - - - - -
    المؤشرالحد الأدنى المقبولالحد المثالي
    الرحلات اليومية70 رحلة/يوم150 رحلة/يوم
    السائقون المسجلون150 سائق350 سائق
    السائقون النشطون (>3 رحلات/أسبوع)50 سائق150 سائق
    الإيرادات الشهرية$630$1,350
    معدل احتجاز السائق50%70%
    تقييم التطبيق في المتجر3.0+3.5+
    -
    +
    -

    نقطة القرار النهائي (الشهر 5):

    -
    - - - - - - - - - - - -
    المؤشرالحد الأدنى للاستمرارالخروج إذا أقل من
    الرحلات اليومية120 رحلة/يوم70 رحلة/يوم
    السائقون النشطون100 سائق50 سائق
    الإيرادات الشهرية$1,080+$630
    نمو أسبوعي موثق+10% نمو متواصلثبات أو تراجع
    عقود B2B موقعةعقد واحد على الأقلصفر عقود B2B
    -
    +
    +

    1.5 زر SOS لا يصل لأحد داخل الشركة

    -

    11. المخاطر والتخفيف

    -
    - - - - - - - - - -
    المخاطر المحتملةاحتمالية الحدوثاستراتيجية التخفيف
    تأخر إصدار التراخيصمتوسطةمحامٍ متخصص + خبرة سابقة في الإجراءات
    تقلب سعر صرف الليرةمرتفعةالاحتياطي المالي المتبقي (16,500$) + التسعير الديناميكي
    منافسة شديدةمتوسطةعمولة تنافسية للسائق (11%) + استهداف مناطق غنية
    -
    +

    الوضع المؤكد: في siro_rider/lib/controller/home/map/ui_interactions_controller.dart الزر (ومعه كشف الهزّ Emergency shake) ينتهي عند _shareTripDetailsSOS() التي تُرسل رسالة واتساب لجهة اتصال شخصية خزّنها الراكب. لا استدعاء API، لا سجل حادثة في قاعدة البيانات، لا تنبيه لغرفة عمليات، لا أثر يمكن مراجعته لاحقاً.

    -

    12. الخلاصة للمستثمر

    -

    هذا المشروع يتميز بميزة نادرة: المنتج التقني جاهز والسوق مُثبت ميدانياً. نحن لسنا في مرحلة بناء المنتج، نحن في مرحلة السيطرة على السوق.

    - -

    بمبدأ الدفع الشهري المرحلي:

    -
      -
    • رأس مال تأسيسي $11,500-$12,000 + $8,000/شهر حتى التعادل.
    • -
    • نصل إلى نقطة التعادل بين الشهر 7-9.
    • -
    • وبعد التعادل، تصبح الشركة ذاتية التمويل للتوسع نحو محافظات أخرى من أرباحها.
    • -
    • أقصى خسارة للمستثمر عند الخروج المبكر: ~$52,000 فقط.
    • +

      ما يعنيه: لو حدثت واقعة حقيقية، الشركة لا تعرف بها ولا تملك دليلاً عنها ولا تستطيع التدخل. وهذا في الوقت نفسه أكبر مخاطرة سمعة وأقوى ورقة تسويق ضائعة.

      + +

      الحل — طبقة سلامة حقيقية (وهي منتج بحد ذاته):

      +
        +
      • نقطة safety/incident.php تُنشئ سجل حادثة فوراً: الرحلة، الموقع، السائق، الراكب، الوقت، آخر مسار.
      • +
      • تنبيه لحظي إلى لوحة إدارة (البنية موجودة: Admin/monitor.php + سوكيت الركاب).
      • +
      • تجميد آلي: قفل بيانات الرحلة، تثبيت التسجيل الصوتي (AudioRecorderController موجود) بدل حذفه، وقف إسناد رحلات جديدة للسائق حتى المراجعة.
      • +
      • زر "تحقّق من سلامتك" آلي عند الشذوذ: توقف طويل غير مبرر، انحراف كبير عن المسار، أو رحلة تجاوزت الزمن المتوقع بكثير — كل هذه البيانات تمرّ في loction_server أصلاً وغير مستغلة.
      • +
      +
    + +
    + +
    +

    1.6 دورة الشكاوى مبتورة ولا يوجد أداة تعويض

    + +

    الوضع: backend/serviceapp/ فيه getComplaintAllData.php وupdate_complaint.php، وتطبيق siro_service فيه شاشة تفاصيل الشكوى كهيكل شبه فارغ (مسجَّل في التدقيق السابق). ولا يوجد أي مسار استرجاع/تعويض في الرحلات — كلمة refund لا تظهر إلا في وحدة الطعام (food/order/cancel.php, food/merchant_ops/reject.php).

    + +

    الحل: أداة تسوية واحدة للموظف: استرجاع جزئي/كامل إلى المحفظة، رصيد اعتذار، تصنيف سبب، وSLA بسيط (زمن أول رد، زمن الإغلاق). هذا يحوّل الدعم من "استقبال شكاوى" إلى "إغلاق قضايا" — وهو الفرق بين تطبيق وشركة.

    +
    + +
    + +
    +

    1.7 التقييمات بلا حلقة إغلاق

    + +

    جداول ratingDriver وratingPassenger وratingApp موجودة وتُملأ. لكن لا شيء يستهلكها: لا أثر على الإسناد (لأنه لا يوجد إسناد أصلاً)، ولا عتبة تعليق، ولا تدريب، ولا مكافأة. التقييم بلا نتيجة يعلّم المستخدم أن التقييم بلا معنى، فتفسد جودة البيانات نفسها.

    +
    + +
    + +

    القسم الثاني — خطوط إيراد جديدة (بلا شراء أصول)

    + +
    +

    2.1 سيرو للأعمال — الأسرع عائداً

    + +

    لا يوجد أي أثر لحسابات الشركات في الكود (لا جدول، لا نقطة، لا شاشة).

    + +

    المنتج: حساب مؤسسي بمستخدمين متعددين، رحلات على الشركة لا على الموظف، فاتورة شهرية واحدة، مراكز تكلفة، حدود صرف وسياسات (أوقات/مناطق/سقف)، وتقرير شهري. البنية المحاسبية نصف جاهزة: invoice_records وinvoicesAdmin موجودان.

    + +

    لماذا هو الأعلى أولوية بين خطوط الإيراد:

    +
      +
    • طلب مضمون ومتكرر ومتوقّع (لا يتقلّب كطلب الأفراد).
    • +
    • غير حساس للسعر إطلاقاً — الشركة تشتري ضبطاً وفاتورة موحدة وتقريراً، لا أرخص رحلة. أي أنه الخط الوحيد الذي يخرجك من حرب الأسعار مع كريم/أوبر بدل أن يزجّك فيها.
    • +
    • الشركة لا تنتقل لمنافس بسهولة بعد ربط محاسبتها بك (تكلفة تحوّل مرتفعة).
    • +
    • عملاء طبيعيون في السوق: الفنادق (وجدول hotels موجود أصلاً!)، المستشفيات، شركات الاتصالات، البنوك، الشركات الناشئة، السفارات والمنظمات الدولية.
    -
    -

    الفرصة أمامك. السوق ينتظر. والبنية التحتية جاهزة.

    -

    كل ما ينقص هو الوقود.

    -
    +

    التآزر: نفس الحساب المؤسسي يُستخدم لاحقاً لـ "مواصلاتي" (نقل الموظفين) ولتوصيل الطعام للمكاتب. عميل واحد، ثلاثة منتجات.

    - -
    -

    خارطة توزع السائقين — نتائج التشغيل التجريبي

    -

    توضح الخارطة أدناه الكثافة الجغرافية والتجمعات الفعلية للسائقين الذين تم استقطابهم وتسجيلهم بنجاح (1,447 سائق).
    المشكلة واضحة: السائقون مشتتون على امتداد المحافظات السورية، مما يثبت صحة استراتيجية "التركيز وبناء الكثافة" بدمشق أولاً.

    - -
    -
    - - -
    -

    إحصائيات الكثافة

    -
    إجمالي المجموعات: 0
    -
    إجمالي السائقين: 0
    -
    أكبر تجمع: 0
    -
    -
    +
    + +
    +

    2.2 اشتراك الراكب (Siro+) — إيراد متكرر

    + +

    المقترح السابق تناول اشتراك السائق. الزاوية المعاكسة أهم وأقل خطراً: اشتراك شهري رخيص للراكب يعطي خصماً ثابتاً أو أولوية في الإسناد أو إعفاء من رسوم الذروة.

    + +

    لماذا أفضل من اشتراك السائق: اشتراك السائق يستبدل إيراداً متغيراً (عمولة) بإيراد ثابت — قمار على حجم الرحلات، ويحرمك من الاستفادة من النمو. أما اشتراك الراكب فهو إيراد إضافي فوق العمولة، ويقفل الراكب معك (بعد أن يدفع اشتراكاً، فتح تطبيق منافس صار خسارة نفسية).

    + +

    الربط الطبيعي: promos وseferWallet وkazan كلها موجودة — الاشتراك طبقة فوقها لا بناء من الصفر.

    - -
    -

    خارطة التوسع الجغرافي - دمشق

    -
    +
    + +
    +

    2.3 الطرود والمشاوير (Parcel & Errands) — إعادة استخدام شبه كاملة

    + +

    وحدة الطعام في backend/food/ بنَت بالفعل: courier/offer_respond.php، picked_up.php، delivered.php، قفل ذرّي SET NX EX 20 ضد سباق القبول، cron_order_timeouts.php لإعادة العرض، وسوكيت مستقل للطلب. هذا هو 80% من نظام توصيل الطرود.

    + +

    المطلوب فوقها: منشئ طلب من الراكب (بدل المطعم)، رقم تتبع، إثبات تسليم (صورة + توقيع)، وتسعير بالحجم/الوزن. أرخص منتج جديد في اللائحة بفارق كبير، ويستهلك نفس الأسطول في ساعات الطلب المنخفض على الرحلات.

    + +

    الامتداد الطبيعي بعدها: الصيدليات (وصفة تُصوَّر، صيدلية تسعّر، سائق يوصل) — هامش أعلى من الطعام وتنافس أقل بكثير.

    - -
    - -
    -

    دليل التراخيص والتسجيل: تطبيق نقل ذكي في سوريا

    -

    (الإجراءات القانونية والفنية الكاملة - محدّث 2026)

    -
    +
    -

    1. الإطار القانوني الحاكم

    - -

    القانون رقم 16 لعام 2021 (قانون النقل بالتطبيقات الإلكترونية)

    -

    هذا القانون هو الأساس القانوني الذي يسمح لأصحاب السيارات الخاصة والصغيرة بنقل الركاب عبر تطبيقات الهاتف، بشرط أن تكون الشركة المشغلة مرخصة رسمياً من وزارة النقل وتعمل تحت إشراف الهيئة الناظمة للاتصالات والبريد.

    +
    +

    2.4 البيع الأبيض (White-label) — منتج قائم بلا اسم تجاري

    -

    الجهات المعنية بالترخيص

    -
    - - - - - - - - - -
    الجهةالدور
    الهيئة الناظمة للاتصالات والبريد (NANS)منح الترخيص التقني للتطبيق (شهادة الاعتمادية)، والإشراف على البنية التقنية.
    وزارة النقلترخيص الشركة كناقل رسمي، فحص المركبات، والإشراف التشغيلي.
    الهيئة الوطنية لخدمات تقانة المعلوماتالإبلاغ عن التطبيق (مبدأ "الإعلام" بدلاً من "الترخيص").
    -
    +

    على نفس السيرفر تعمل نسخ intaleq وtripz بجانب siro (موثّق في تعليقات docker/docker-compose.yml:197-200 حول تصادم منافذ MySQL)، وملف docs/system_architecture_and_whitelabel_guide.md يشرح المعمارية كدليل نشر مخصص، والـ README يذكر صراحة: "استنساخ عميل = clone + .env + up".

    -

    2. شروط الشركة المتقدمة (طالب الترخيص)

    -
      -
    1. الشكل القانوني: شركة محدودة المسؤولية مؤسسة في سوريا.
    2. -
    3. غاية الشركة: تقديم خدمة نقل الركاب باستخدام التطبيق الإلكتروني في السجل التجاري.
    4. -
    5. المقر الفعلي: يُفضل بشدة أن يكون للشركة مقر فعلي (مكتب) لتسهيل إجراءات وزارة النقل.
    6. -
    +

    أنتم تبيعون هذا فعلياً بلا أن تسمّوه منتجاً. تحويله إلى منتج مُعرَّف يحتاج: لوحة إدارة نسخ، عزل بيانات موثّق، اتفاقية مستوى خدمة، تسعير (رسم إعداد + شهري + نسبة)، ومسار تحديث لا يكسر نسخ العملاء.

    -

    3. الوثائق المطلوبة لتقديم طلب الترخيص

    -
    - - - - - - - - - - -
    #الوثيقةملاحظات
    1استمارة طلب الترخيصنموذج رسمي معتمد
    2صورة مصدقة عن السجل التجاريأو نظام التأسيس
    3وثائق "لا حكم عليه"للمؤسسين
    4ملف فني تقنييوضح آلية عمل التطبيق
    -
    +

    السوق: كل مدينة عربية متوسطة فيها من يريد "تطبيق نقل خاص به" ولا يستطيع بناءه. بيع نسخة بـ 15-40 ألف دولار إعداداً + شهري متكرر، هامشه أعلى من الرحلات نفسها ولا يستهلك أسطولاً ولا تسويقاً ميدانياً.

    -

    4. شروط المركبات والسائقين

    -
      -
    • المركبات: مسجلة "فئة خاصة"، لا يزيد عمرها عن 20 سنة، تأمين إلزامي، فحص فني، ملصق شعار الشركة.
    • -
    • السائقين: سوري الجنسية، مالك للمركبة، لا حكم عليه، إجازة سوق سارية.
    • +

      الشرط الصادق: لا يُباع قبل إغلاق بنود الأمن المفتوحة في التقرير_الأمني_Backend_Siro.md — عميل مؤسسي واحد بمدقّق أمني واحد يكفي لإسقاط الصفقة والسمعة معاً.

      +
    + +
    + +
    +

    2.5 مواصلاتي كمنتج مؤسسي مستقل

    + +

    وحدة backend/transit/ مبنية بالكامل (خطوط، محطات، جداول، مركبات، تسجيل أعضاء، تنبيهات اقتراب، لوحة transit_dashboard) والاستراتيجية موثّقة: برمجيات مجانية على أسطول المؤسسة نفسها — فراغ سوقي حقيقي لا تغطيه سويفل ولا سالك.

    + +

    الفجوات المعروفة (قبل أي بيع): IDOR، ربط السائق، اعتماد المسار — مفصّلة في mawasalati_full_system_review.md.

    + +

    التوسعة خارج الجامعات (وهي الأسهل والأقرب): نفس المحرك حرفياً يخدم نقل موظفي المصانع والشركات — وهو سوق يدفع فعلاً وله ميزانية مقرّة، بخلاف الجامعات التي تحتاج بيعاً مؤسسياً بطيئاً. ومدارس القطاع الخاص (مع تتبّع ولي الأمر لطفله) خط ثالث بنفس الكود.

    +
    + +
    + +
    +

    2.6 المحفظة والدفع كأصل مستقل

    + +

    payment_server/v2/main/ride/ فيه تكاملات جاهزة: CLIQ، eCash، شام كاش، سيرياتيل، MTN، PayMob، ومحفظتان داخليتان. هذا أصل نادر جداً — بناء تكاملات الدفع في سوريا والأردن أصعب من بناء تطبيق النقل نفسه، وكل تكامل منها كلّف شهوراً وعلاقات.

    + +

    الاستغلال الممكن: تحويلها لطبقة دفع تخدم التجار الصغار خارج سيرو (نقاط بيع صغيرة، متاجر إلكترونية محلية). ملاحظة تنظيمية جادة: هذا الخط يدخل نطاق ترخيص خدمات الدفع في كل دولة — لا يُطرح قبل مراجعة قانونية.

    +
    + +
    + +

    القسم الثالث — حلول لمشاكل السوق المحلي (خارج الصندوق)

    + +

    هذا القسم هو الأبعد عن نسخ ما تفعله أوبر، والأقرب لواقع الأسواق التي تعملون فيها.

    + +
    +

    3.1 طلب رحلة بلا إنترنت — SMS / USSD / مكالمة

    + +

    المشكلة الحقيقية: في سوريا خصوصاً، الإنترنت متقطّع والكهرباء أسوأ. الراكب الذي لا يستطيع فتح التطبيق ليس راكباً "خارج الشريحة" — هو راكب موجود ماديّاً وعاجز تقنياً. لا يوجد اليوم أي مسار طلب بلا إنترنت (والبنية موجودة: smsSender، webhook_sms، payment_server/v2/main/sms_webhook).

    + +

    الحل: رقم قصير أو رقم واتساب يستقبل: "من [نقطة معروفة] إلى [نقطة معروفة]" → النظام يطابق النص مع places / places_syria / palces11 (كلها موجودة) → ينشئ الرحلة → يرد برسالة فيها اسم السائق ورقم اللوحة والزمن المتوقع. السائق يعمل بالتطبيق عادياً.

    + +

    لماذا هذا قوي: ما من منافس دولي سيبني هذا — لأنه لا معنى له في أسواقهم. وهو يفتح شريحة كاملة (كبار السن، الهواتف البسيطة، مناطق التغطية الضعيفة) ويحوّل انقطاع الإنترنت من كارثة تشغيلية إلى ميزة تنافسية.

    +
    + +
    + +
    +

    3.2 رقمنة السرافيس والميكروباص بدل منافستها

    + +

    الملاحظة: في دمشق وعمّان والقاهرة، الحصة الأكبر من التنقل ليست في التاكسي — هي في السرافيس والميكروباص على خطوط ثابتة. أنتم تنافسون على الشريحة الصغيرة وتتركون الكبيرة.

    + +

    الفكرة: طبقة تنظيم لا منافسة — خطوط ثابتة، مواقيت، حجز مقعد، دفع بالمحفظة، تتبّع لحظي. محرك backend/transit/ يفعل هذا بالضبط اليوم (خطوط، محطات، جداول، تتبع، إشعار اقتراب) — الفرق أن العميل يصبح متعهد نقل بدل جامعة.

    + +

    نموذج الإيراد: رسم تنظيم صغير جداً على المقعد، أو اشتراك شهري للمتعهد. الحجم يعوّض الهامش: خط واحد قد ينقل أكثر مما تنقله عشرون سيارة.

    + +

    ولماذا هو استراتيجي: يعطيكم موقعاً تنظيمياً أمام البلديات ووزارات النقل — وهو الموقع الوحيد الذي لا تستطيع منصة أجنبية أخذه منكم.

    +
    + +
    + +
    +

    3.3 العنوان الذي لا يوجد

    + +

    في مناطق واسعة من الأسواق الثلاثة لا توجد عناوين قابلة للاستخدام: "بعد الفرن، ثالث بناية". عندكم places وplaces_syria وpalces11 وgetLocationParents.php وget_location_area_links.php — أي بذرة نظام معالم موجودة.

    + +

    الفكرة: بناء طبقة معالم شعبية جماعية — كل رحلة تنتهي بنقطة التقاط/إنزال فعلية، ومع الوقت تتكوّن خريطة معالم بدقة تفوق خرائط جوجل محلياً، لأنها مبنية على سلوك حقيقي لا على مسح. هذه بيانات لا يستطيع أي منافس شراؤها، وهي أصل بحد ذاته (يُرخَّص لاحقاً لشركات التوصيل والطوارئ والتجارة الإلكترونية).

    +
    + +
    + +
    +

    3.4 اقتصاد السائق: الوقود، الصيانة، والتمويل

    + +

    السائق في هذه الأسواق لا تكمن مشكلته في العمولة بل في رأس المال: الوقود يومياً، الصيانة فجأة، والسيارة نفسها.

    + +
      +
    • محفظة وقود: اتفاق مع سلسلة محطات، خصم على السعر، خصم آلي من الأرباح. قيمة فورية ملموسة للسائق وأقوى من أي زيادة عمولة.
    • +
    • صيانة بأسعار الأسطول: اتفاق مع ورش، ودفع بالتقسيط من الأرباح.
    • +
    • تمويل شراء المركبة: بالضبط ما فعلته سويفل مع بنك ناصر الاجتماعي لتمويل كباتنها. السائق الممول = سائق مقفل معك لسنوات، والبيانات التي تملكها عن دخله تجعلك أفضل من أي بنك في تقييم جدارته الائتمانية. هذا أعمق خندق تنافسي في اللائحة كلها.
    -

    5. مراحل الترخيص وتسلسلها الزمني المتوقع

    - -
    - -
    -
    - الأسبوع 1 - 2 -

    تأسيس الشركة والسجل التجاري

    -

    تسجيل الشركة (م.م.ذ) وإضافة غاية "نقل الركاب بالتطبيق الإلكتروني" بشكل رسمي.

    -
    -
    - -
    -
    - الأسبوع 3 - 4 -

    تقديم الطلب والملف الفني

    -

    تجميع كافة الوثائق وتقديمها للهيئة الناظمة للاتصالات والبريد لدراسة الطلب.

    -
    -
    - -
    -
    - الأسبوع 5 - 8 -

    المراجعة الفنية والموافقة المبدئية

    -

    تقوم الهيئة بفحص الملف التقني وبنية التطبيق والسيرفرات ومنح الموافقة المبدئية للعمل.

    -
    -
    - -
    -
    - الأسبوع 8 - 12 -

    التنسيق مع وزارة النقل

    -

    فحص المركبات، التأكد من السلامة التشغيلية وشروط السائقين بحسب القانون.

    -
    -
    - -
    -
    - الأسبوع 12 - 14 -

    الترخيص النهائي والإطلاق

    -

    إصدار شهادة الاعتمادية النهائية وبدء العمليات التشغيلية للتطبيق في الشارع السوري.

    -
    -
    - -
    - -

    6. التكاليف التقديرية للتراخيص

    -
    - - - - - - - - - - -
    البندالتكلفة التقديرية
    رسوم شهادة الاعتمادية (NANS)600$
    أتعاب المحامي (لتخليص جميع الإجراءات)1,200$ - 1,500$
    رسوم متفرقة (وزارة النقل، سجل تجاري)~200$
    الإجمالي التقديري2,000$ - 2,300$
    -
    - -

    7. نصائح عملية لتسريع الإجراءات

    -
      -
    1. وكّل محامياً متخصصاً: محامٍ لديه علاقات في وزارة النقل والهيئة الناظمة سيختصر عليك أسابيع.
    2. -
    3. جهّز الملف الفني مسبقاً: لا تنتظر حتى تقدم الطلب. جهّز وثيقة تقنية احترافية توضح بنية التطبيق.
    4. -
    5. ابدأ بتأسيس الشركة فوراً: السجل التجاري يستغرق وقتاً ويمكن أن يسير بالتوازي مع التطوير.
    6. -
    7. المقر الفعلي ضروري: لا تعتمد على "المكتب المرن (عقد مرن)" لأنه قد لا يكفي لإجراءات فحص وزارة النقل. استأجر مكتباً فعلياً مستقلاً في دمشق.
    8. -
    - +

    تحذير: هذا الخط يقترب من التمويل المنظَّم — يجب أن يمرّ عبر شريك مرخّص لا عبر ميزانية الشركة مباشرة.

    - -
    -

    دراسات تسويقية واستراتيجيات النمو

    +
    -

    1. استراتيجيات النمو: تحفيز الركاب ونظام الإحالة المتكامل

    -

    لضمان سرعة الانتشار وتقليل تكلفة الاستحواذ على العملاء (CAC)، يعتمد التطبيق على محرك نمو داخلي (Growth Engine) يحفز التكرار والمشاركة الفيروسية.

    +
    +

    3.5 التأمين بالرحلة

    -

    القسم أ: تحفيز الركاب وتعزيز الطلب اليومي

    -
      -
    1. التوزيع الذكي وإبراز جودة السائق: عند قبول الطلب، يتلقى الراكب "بطاقة السائق" متضمنة تقييمه وشارته (مثلاً: سائق نخبة، موثوق). يعتمد التوزيع على الأولوية: يُرسل الطلب حصرياً لأعلى السائقين تقييماً في النطاق لمدة 7 ثوانٍ، ثم يُوسع. (معيار الأفضلية = 40% تقييم + 30% نسبة قبول + 30% نشاط الأسبوع).
    2. -
    3. أكواد الترحيب والخصم التدريجية: أول رحلة مخفضة أو مجانية عبر كود التسجيل. تليها أكواد ترويجية ذات صلاحية محدودة (48 ساعة) تُوزع عبر قنوات تيليغرام وواتساب الرسمية لخلق دافع للاستخدام الفوري (Urgency).
    4. -
    5. الرحلات المتسلسلة (Ride Streaks): أهداف أسبوعية بسيطة للراكب تظهر داخل التطبيق (مثال: أتمم 3 رحلات هذا الأسبوع واحصل على الرابعة بخصم 50%). يتجدد النظام تلقائياً كل أسبوع.
    6. -
    7. ساعة السعادة (Happy Hour): خصومات محددة في أوقات هدوء الطلب (مثال: 2 - 4 عصراً) على مناطق محددة، تُعلن عبر إشعارات الـ Push Notification لضمان استمرار دوران الأسطول.
    8. -
    9. محفظة النقاط (Siro Points): كل رحلة تُولد نقاطاً تُضاف لمحفظة الراكب كخصم للرحلات القادمة. هذا يخلق "رصيداً محجوزاً" يدفع المستخدم العشوائي للتحول إلى مستخدم وفيّ.
    10. -
    11. باقة الاشتراك الشهري (Siro Pass): خيار اشتراك مسبق الدفع يمنح الراكب عدداً معيناً من الرحلات بخصم ثابت، مما يضمن طلباً منتظماً ويحسن التدفق النقدي للشركة.
    12. -
    - -

    القسم ب: نظام الإحالة والمشاركة الفيروسي (Referral System)

    -

    الاعتماد على كود موحد من 6 خانات لكل مستخدم. يعمل الكود لجميع أنواع الإحالات، ويقوم السيرفر بتحديد نوع العلاقة تلقائياً لتطبيق المكافأة المناسبة فوراً.

    - -
    - - - - - - - - - - -
    نوع الإحالةمكافأة الداعي (Inviter)مكافأة المدعو (Invitee)
    راكب ⟵ يدعو ⟵ راكبرصيد 1.5$أول رحلة بنصف السعر
    راكب ⟵ يدعو ⟵ سائق0.50$ / رحلة (لأول 30 رحلة)مكافأة تسجيل (بونص)
    سائق ⟵ يدعو ⟵ راكب0.30$ / رحلة (لأول 10 رحلات)خصم ترحيبي للراكب
    سائق ⟵ يدعو ⟵ سائق5$ بعد 50 رحلة مكتملةمكافأة انضمام
    -
    - -
    - استراتيجية الدعوة الفورية داخل السيارة (Quick Invite): -

    زر مخصص في واجهة السائق يولد (QR Code) ورابط (Deep Link) فوري. عندما يقلّ السائق راكباً من الشارع (توصيلة خاصة)، يمكن للراكب مسح الكود ليتم توجيهه للمتجر وتنزيل التطبيق. بمجرد التسجيل، يُحسب الكود تلقائياً للسائق كإحالة ناجحة، مما يحول الركاب العشوائيين إلى مستخدمين دائمين لمنصتنا بدون أي إدخال يدوي.

    -
    - -

    القسم ج: استراتيجية الثقة والالتزام المجتمعي

    -

    الخطر الحقيقي: أن يجرّب الراكب مرة واحدة وما يعود، أو أن يلتحق السائق ثم يترك بعد شهر. المشكلة في الأسواق المشابهة لم تكن المنتج، بل كانت التوزيع المتشتت وضعف التمويل. مع توفر الكثافة الجغرافية والتمويل، نعالج هذا الخطر عبر التزام متبادل وانتماء للمشروع.

    - -

    أولاً — للسائق: الالتزام المتبادل لا الحافز فقط

    -
    - مشكلة الحوافز المالية وحدها: السائق يأتي للمال ويرحل مع أول عرض أفضل من المنافس. الحل هو جعله يشعر بالانتماء قبل المال. -
    -
      -
    1. ميثاق السائق المؤسس: أول 300 سائق يوقّعون على "ميثاق المؤسسين" — وثيقة رمزية تتضمن: ضمان حد أدنى للدخل خلال الأشهر الثلاثة الأولى من الشركة، مقابل ساعات عمل محددة والحفاظ على تقييم 4.5+ من السائق. (يخلق ولاء نفسي).
    2. -
    3. مجتمع السائقين الرسمي: مجموعة واتساب رسمية مُدارة، لقاء شهري، إشراك السائق في قرارات التطبيق، وإعلان أفضل سائق شهرياً على صفحات سيرو.
    4. -
    5. مسار النمو المرئي للسائق: -
        -
      • 🥉 سائق جديد: 0-50 رحلة ← أولوية في الطلبات العادية
      • -
      • 🥈 سائق فضي: 51-200 رحلة ← طلبات حصرية + شارة مرئية
      • -
      • 🥇 سائق ذهبي: 201-500 رحلة ← أولوية قصوى + مكافأة شهرية
      • -
      • 💎 سائق نخبة: 500+ رحلة ← عمولة مخفضة 9% بدل 11%
      • -
      -
    6. -
    - -

    ثانياً — للراكب: الانتماء قبل الخصم

    -
    - مشكلة الخصومات وحدها: الراكب الذي جاء بخصم يرحل مع خصم أفضل. الحل هو جعله يشعر أنه جزء من المشروع. -
    -
      -
    1. برنامج المؤسسين (أول 500 راكب): شارة "مؤسس سيرو" دائمة، خصم ثابت 10% إلى الأبد، واسمهم في صفحة "من بنى سيرو معنا". تكلفة ضئيلة بأثر نفسي وتسويق عضوي ضخم.
    2. -
    3. الشفافية كسلاح تسويقي: شعار الحملة "سائقك يأخذ ما يصل إلى 89% من كل رحلة". في سوق يأخذ فيه المنافسون 17-20%، هذه الشفافية تكسب ثقة الراكب وتجذب السائق فوراً.
    4. -
    5. ضمان التوفر في المناطق المستهدفة: تعهّد رسمي في التطبيق (في المزة وكفرسوسة وأبو رمانة — سيارتك خلال 8 دقائق أو الرحلة مجانية). يبني توقعاً واضحاً ويميزنا عن المنافسين.
    6. -
    - -

    ثالثاً — كسر معادلة الدجاجة والبيضة

    -

    الراكب لا يفتح التطبيق لعدم وجود سائق، والسائق لا يعمل لعدم وجود راكب. الحل: عملاء B2B كـ Anchor قبل الإطلاق. بدلاً من الاعتماد فقط على الركاب الأفراد في الأيام الأولى، سنقوم بتأمين رحلات يومية مضمونة للسائقين عبر عقود الشركات.

    - -
    -

    خطة تنفيذ المبيعات للشركات (B2B Execution Plan)

    -
      -
    • الشركات المستهدفة (Target): الفنادق المتوسطة والفخمة (مثل فندق الشام، الداما روز)، المطاعم الكبرى لتوصيل موظفيها ليلاً، وشركات الاتصالات والبنوك لنقل مدرائهم.
    • -
    • المسؤول عن التنفيذ والإطار الزمني: يتولى "المشغل الرئيسي" مهام الـ B2B Sales. يبدأ التواصل قبل الإطلاق الفعلي بـ 45 يوماً (أثناء فترة التراخيص).
    • -
    • الشكل القانوني: توقيع "مذكرة تفاهم (MoU)" للتعاون المشترك لا تلزم الشركة بأي مبالغ مقدمة، بل تقدم لهم نظام "لوحة تحكم الشركات (Corporate Dashboard)" لطلب سيارات لموظفيهم ودفع الفواتير نهاية الشهر بخصم خاص.
    • -
    • الفائدة للسائق: السائق المحفز يعرف أن هناك رحلات يومية مضمونة، مما يكسر حاجز الخوف من عدم وجود طلبات في الأيام الأولى.
    • -
    -
    -

    إبرام اتفاقيات مسبقة مع (3 شركات في منطقة أ، فندق أو فندقان، مركز طبي) لتوفير طلبات حقيقية ودخل ثابت للسائق من اليوم الأول قبل دخول الراكب العادي.

    - -
    - - - - - - - - - - - - -
    الأداةيخدمالأثر
    ميثاق السائق المؤسسسائقولاء نفسي لا مالي فقط
    مسار النمو المرئيسائق + راكبحافز مستمر + ثقة
    برنامج المؤسسين 500راكبانتماء وتسويق عضوي
    شعار الشفافية (حتى 89%)راكب + سائقتمييز فوري عن المنافس
    ضمان التوفر 8 دقائقراكبوعد واضح قابل للقياس
    عقود B2B قبل الإطلاقالاثنانكسر معادلة الدجاجة والبيضة
    -
    - -

    2. الخطة التسويقية والإعلانية التفصيلية

    -

    الميزانية الإجمالية: 60,000$ — موزعة على 3 قنوات رئيسية:

    - -

    أ) الحملات الرقمية المستمرة — 35,000$ (14 شهراً × 2,500$/شهر)

    -
    - - - - - - - - - -
    المنصةالميزانية الشهريةنوع المحتوى والهدف
    Facebook & Instagram1,500$إعلانات ممولة موجهة جغرافياً لأحياء دمشق الراقية.
    يوتيوب (YouTube Ads)500$إعلانات فيديو قابلة للتخطي تظهر للجمهور السوري لبناء الثقة.
    Reels & Shorts500$فيديوهات قصيرة عالية الجودة تبرز تجربة استخدام التطبيق.
    -
    - -

    ب) حملات المؤثرين (Influencers) — 15,000$

    -
    - - - - - - - - -
    المعيارالتفصيل
    تكلفة المؤثر الواحد500$ - 1,000$ (متوسط 750$ للفيديو)
    عدد الفيديوهات الإجمالي20 فيديو مراجعة وتجربة حية
    -
    - -

    ج) الإعلانات الطرقية (Outdoor Billboards) — 10,000$

    -
    - - - - - - - - -
    الشهرالموقعالتكلفةالسبب الاستراتيجي
    الشهر الرابعلوحة ضخمة في شارع رئيسي بدمشق5,000$دعم الأسطول المتصاعد وتحويل الانتباه من المنافسين
    الشهر التاسعلوحة ضخمة في موقع استراتيجي آخر5,000$تجديد الزخم وتثبيت الهيمنة بعد ترسيخ الوجود
    -
    +

    جدول driver_health_assurance ووحدة backend/driver_assurance/ موجودان — أي أن الفكرة بدأت وتوقفت. توسيعها إلى تغطية صغيرة لكل رحلة (للسائق والراكب) بمبلغ ضئيل مضمّن في السعر أو اختياري، عبر شريك تأمين محلي: إيراد بهامش عالٍ، ورسالة تسويقية قوية، وتكلفة تشغيل شبه صفرية.

    -
+
- - +

القسم الرابع — البنية التحتية والمخاطر

- - - +

الخيار الأنظف (بلا phpMyAdmin أصلاً): نفق مباشر إلى MySQL واستخدام عميل سطح مكتب (TablePlus / Sequel Ace / DBeaver):

+
ssh -N -L 3307:127.0.0.1:33062 USER@SERVER
+

ثم الاتصال بـ 127.0.0.1:3307. أسرع وأأمن، ولا يضيف حاوية ولا سطح هجوم.

+ +

إن أردت وصولاً دائماً عبر المتصفح: نطاق فرعي خلف nginx المضيف (CloudPanel) بشهادة TLS + Basic Auth + قائمة IP مسموح بها، مع ضبط PMA_ABSOLUTE_URI، ومستخدم MySQL مخصص محدود الصلاحيات بدل root.

+
+ \ No newline at end of file