Files
Siro/docs/transit_comprehensive_workflow_report.md
T

9.1 KiB

تقرير شامل: سير عمليات نظام «مواصلاتي» (Workflow & Architecture)

تاريخ الإصدار: 2026-07-14 المشروع: منصة Siro - وحدة مواصلاتي (Transit)


1. مقدمة عن النظام

نظام «مواصلاتي» هو منصة تقنية متكاملة تهدف إلى رقمنة أساطيل النقل للمؤسسات (الجامعات، المدارس، الشركات، الفنادق) دون الحاجة لامتلاك المنصة لأي مركبات. يعتمد النظام على توفير البرمجيات (SaaS) مجاناً للمؤسسات مقابل استحواذ المنصة على المستخدمين (الطلاب/الموظفين) لتحويلهم لاحقاً إلى مستخدمين مدفوعين في خدمات النقل الذكي (Ride-hailing) الخاصة بـ Siro.

يدعم النظام نمطين تشغيليين رئيسيين:

  1. أسطول المؤسسة: الجامعة/المدرسة تمتلك باصاتها وسائقيها.
  2. الناقل المتعاقد: يتم إدخال طرف ثالث (شركة نقل متعاقدة) لتشغيل خطوط جامعة أو مؤسسة لا تملك أسطولاً، مع توفير برمجيات التتبع والتنظيم.

2. الهيكلة التقنية والمعمارية

لضمان الأداء العالي وعدم التأثير على تطبيق النقل الذكي الرئيسي، تم بناء النظام بمعمارية معزولة جزئياً:

  • قاعدة بيانات مستقلة (siro_transit): تحتوي على جداول منفصلة للمؤسسات، السائقين، الباصات، الخطوط، الجداول، والعضويات. يُمنع عمل JOIN مباشر مع قواعد النقل الرئيسية لتسهيل فصل النظام مستقبلاً.
  • طبقة التخزين المؤقت (Redis): تُستخدم لتخزين الجلسات، مواقع الباصات الحية، وتتبع حالة السائقين بشكل لحظي.
  • خوادم السوكيت (WebSockets): سيرفرات مستقلة (driver_socket.php و passenger_socket.php) تتعامل مع بث مواقع الباصات واستقبالها لتقليل الضغط السحابي (آلاف الطلاب يتابعون عشرات الباصات).

3. سير العمليات الكامل (The Complete Workflow)

يتوزع سير العمل على أربعة أطراف رئيسية، تتفاعل مع بعضها لضمان رحلة سلسة من نقطة الانطلاق حتى الوصول:

أ. إدارة النظام (فريق Siro / Super Admin)

  1. إنشاء المؤسسة: يقوم فريق Siro بإنشاء حساب المؤسسة (مثال: جامعة الزرقاء)، ويحدد نوعها (جامعة/مدرسة/فندق) وموقعها (بوليغون الحرم الجامعي).
  2. إضافة مشرفي المؤسسة: يتم إضافة مشرفي النقل التابعين للجامعة وتسجيل أرقام هواتفهم لمنحهم حق الوصول للوحة التحكم.
  3. اعتماد الخطوط (Route Approval): عند قيام مشرف المؤسسة برسم خط جديد، يبقى في حالة "مسودة" (Draft). يقوم فريق Siro بمراجعته (مساره ومحطاته) ثم اعتماده ليصبح "نشطاً" (Active) ويظهر للطلاب.

ب. مشرف المؤسسة (لوحة تحكم الويب Web Dashboard)

مشرف النقل في الجامعة يدير الأسطول عبر لوحة تحكم ويب مستقلة transit_dashboard:

  1. تسجيل الدخول: باستخدام رقم الهاتف ورمز تحقق (OTP) عبر الواتساب.
  2. إدارة الأسطول: إدخال بيانات الباصات (رقم اللوحة، السعة، الموديل).
  3. إدارة السائقين: إضافة سائقي الباصات (الاسم، رقم الهاتف). النظام يرسل رسالة دعوة (Invite) للسائق مع رابط لتحميل تطبيق siro_driver. السائق هنا منفصل تماماً عن كابتن المشاوير ولا يتلقى طلبات عادية.
  4. رسم الخطوط والمحطات:
    • يقوم المشرف برسم مسار الباص على خريطة تفاعلية (Leaflet/MapLibre).
    • يحدد نقاط التوقف (Stops) ومحيط كل نقطة (Geofence Radius - افتراضياً 150 متراً).
    • يرسل الخط لفريق Siro للاعتماد.
  5. جداول الرحلات (Schedules): بعد اعتماد الخط، يقوم المشرف بتحديد أوقات الانطلاق وأيام العمل (مثلاً: من الأحد للخميس، الساعة 7:30 صباحاً).
  6. إدارة الطلاب: يرفع المشرف كشفاً بأسماء الطلاب وأرقامهم الجامعية عبر ملف CSV (Import Roster)، مما يتيح للطلاب تفعيل عضوياتهم فوراً في التطبيق.

ج. السائق (تطبيق siro_driver)

تجربة السائق مصممة لتكون في غاية البساطة ولا تتطلب أي تشتت:

  1. التفعيل: يتلقى رابط الدعوة، يفتح التطبيق، ويدخل رمز التفعيل أو الـ OTP.
  2. وضع الباص (Bus Mode): يتعرف التطبيق عليه كسائق باص، ويخفي واجهة طلبات المشاوير العادية.
  3. بدء الرحلة: تظهر أمامه رحلته القادمة. يضغط زر "ابدأ الرحلة" (trip/start).
  4. أثناء الرحلة:
    • يبدأ التطبيق ببث موقعه (Lat/Lng) عبر الـ Socket كل عدة ثوانٍ.
    • المرور التلقائي بالمحطات (Geofencing): عند دخول الباص النطاق الجغرافي لأي محطة، يتحدث شريط التقدم تلقائياً دون تدخل السائق، ويتم إشعار النظام.
    • يتوفر زر "تأخير" في حالة الزحام لإشعار المشتركين.
  5. إنهاء الرحلة: عند الوصول للمحطة النهائية، يضغط "أنهِ الرحلة".

د. الطالب / الراكب (تطبيق siro_rider)

  1. تفعيل العضوية: يدخل تبويب "مواصلاتي"، يختار جامعته، ويدخل رقمه الجامعي. إذا كان الرقم مطابقاً للكشف المرفوع (وبنفس رقم الهاتف)، يتم تفعيله فوراً (بدون OTP إضافي لتوفير التكلفة).
  2. استعراض الخطوط: يرى الخطوط المعتمدة وجداولها ويشترك بخطه المعتاد.
  3. التتبع الحي (Live Tracking): يفتح خريطة الخط ليرى مسار الباص (Polyline) وموقع الباص الحي يتحرك أمامه (يستقبل الإحداثيات من الـ Passenger Socket).
  4. الإشعارات الذكية (FCM Notifications):
    • إشعار الانطلاق: الباص تحرك من نقطة البداية.
    • إشعار الاقتراب: "الباص يبعد محطة واحدة عنك" (يعتمد على عبور الباص لمحيط الـ Geofence للمحطة السابقة).
    • إعلانات الطوارئ: رسائل من المشرف (عطلة، تغيير مسار).
  5. نقطة التحويل الاستراتيجية: في حال فات الباص، يظهر زر بارز "فاتك الباص؟ اطلب سيارة الآن". هذا الزر ينقل الطالب لطلب رحلة مدفوعة عادية من Siro، وهو العائد الربحي الأساسي للمنصة.

4. الاعتبارات الأمنية والضوابط

  • حماية المسارات (IDOR Protection): لا يمكن لأي سائق إنهاء أو تعديل رحلة سائق آخر. النظام يتحقق من ملكية الرحلة ويطابق الـ main_driver_id المشفر.
  • تحديد معدل الطلبات (Rate Limiting): حماية نقاط طلب الـ OTP وتسجيل الدخول لمنع هجمات الـ Spam والإرهاق.
  • التشفير (Encryption): يتم تشفير أرقام الهواتف والأرقام الجامعية في قاعدة البيانات ولا يتم إرجاعها بصيغتها الصريحة، لضمان خصوصية بيانات الجامعات والطلاب.
  • صلاحيات السوكيت (Socket Authorization): لا يُسمح للراكب بالانضمام لغرفة بث الباص إلا إذا كان يمتلك عضوية نشطة في المؤسسة المالكة للخط.

الخلاصة

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