Bayanata
جميع دراسات الحالة
تطوير التطبيقات المحمولة7 دقيقة قراءة١ آذار ٢٠٢٦

منصة سوق الشحن عبر الأجهزة المحمولة

سوق متعدد الأطراف يربط الشاحنين بالسائقين من خلال التتبع الفوري والمدفوعات الرقمية والتوزيع الآلي.

LaravelMySQLFlutterBLoCFirebaseGoogle MapsMyFatoorahRedis
منصة سوق الشحن عبر الأجهزة المحمولة

التحدي والسياق

يتطلب بناء سوق للشحن تنسيق عدة أطراف معنية باحتياجات مختلفة. يحتاج الشاحنون إلى إيجاد شاحنات متاحة بسرعة، وتتبع الشحنات في الوقت الفعلي، والدفع بسلاسة. يحتاج السائقون إلى تدفق مستمر من الطلبات ومعلومات واضحة عن مواقع التحميل والتسليم. يجب على المنصة التعامل مع تحديثات الموقع الفورية، ومعالجة المدفوعات بشكل آمن، والحفاظ على اتصال موثوق بين جميع الأطراف.

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

بنية النظام وتصميمه

يستخدم النهاية الخلفية Laravel 12 كإطار عمل أساسي للـ API، مما يوفر نقاط نهاية RESTful مؤمنة باستخدام Laravel Sanctum للمصادقة المحمولة. تعمل قاعدة البيانات على MySQL مع تمكين الامتدادات المكانية من خلال حزمة laravel-eloquent-spatial، مما يتيح استعلامات جغرافية فعالة لمطابقة السائقين وحسابات المسار.

تتبع بنية API أنماطاً واضحة قائمة على الموارد. تتعامل نقاط نهاية إدارة الطلبات مع دورة الحياة الكاملة من الإنشاء عبر التتبع إلى الإكمال. تدير وحدات تحكم منفصلة المصادقة والإشعارات والمدفوعات ووظائف الدعم. يظهر ملف المسارات فصلاً نظيفاً بين نقاط النهاية العامة مثل التحقق عبر OTP والمسارات المحمية التي تتطلب المصادقة.

بُنيت التطبيقات المحمولة باستخدام Flutter مع BLoC لإدارة الحالة. يوفر هذا النمط فصلاً واضحاً بين منطق واجهة المستخدم وحالة الأعمال، مما يجعل الكودbase قابل للاختبار والصيانة. يتشارك تطبيق العملاء وتطبيق السائقين البنية التحتية الأساسية من خلال نهج مشترك للاتصال بـ API والترجمة ومعالجة الإشعارات.

يتولى Firebase Cloud Messaging إرسال الإشعارات الفورية عبر كلا التطبيقين، بينما يوفر Firebase Core التهيئة وإدارة التكوين. تدعم التطبيقات واجهات بالعربية والإنجليزية من خلال نظام الترجمة في Flutter، مع دعم مناسب لتخطيط RTL.

القرارات الهندسية الرئيسية

تستخدم المنصة مصادقة JWT مقترنة بالتحقق عبر الهاتف باستخدام OTP لتسجيل آمن للمستخدمين. يوازن هذا النهج بين الأمان وسهولة الاستخدام، وهو أمر بالغ الأهمية للمنصات التي تتعامل مع المعاملات المالية. يتكامل نظام OTP مع Twilio لتوصيل الرسائل النصية، بينما تستخدم رموز المصادقة الأساسية نظام Laravel Sanctum القائم على الرموز.

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

يتكامل معالجة الدفع مع MyFatoorah لطرق الدفع الإقليمية. يتتبع نموذج Payment حالات المعاملات، بينما يوفر نظام Invoice طبقة التسوية المالية. تفصل البنية بدء الدفع عن معالجة رد الاتصال، مع نقاط نهاية webhook تعالج تأكيدات الدفع غير المتزامنة.

تستخدم دورة حياة الطلب Laravel Observers لأتمتة انتقالات الحالة وتشغيل الأحداث النهائية. عندما تتغير حالة الطلب، يقوم المراقبون بتشغيل أحداث تؤدي إلى إشعارات وتحديث السجلات ذات الصلة والحفاظ على مسارات التدقيق من خلال حزمة activitylog. يحافظ هذا النهج القائم على الأحداث على نمطية الكود ويمنع تكرار المنطق عبر وحدات التحكم.

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

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

التسليم والنتائج

تقدم المنصة حلاً كاملاً لسوق الشحن مع ثلاثة مكونات مترابطة. يوفر النهاية الخلفية Laravel أساس API مستقراً وقابلاً للتوسع مع تسجيل شامل عبر Laravel Telescope و Horizon لمراقبة قوائم الانتظار. يتيح تطبيق العملاء للشاحنين إنشاء الطلبات وتتبع الشحنات وإدارة المدفوعات. يوفر تطبيق السائقين اكتشاف الطلبات وتكامل الملاحة وسير عمل تأكيد التوصيل.

تدعم البنية التوسع الأفقي من خلال تصميم API عديم الحالة ومعالجة جلسات مدعومة بـ Redis. تتعامل مهام قوائم الانتظار مع العمليات غير المتزامنة مثل توصيل الإشعارات ومعالجة المدفوعات، مما يضمن استجابة API تحت الأحمال الثقيلة.

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