انتقل إلى المحتوى
DevOrbit
مقالEngineering· 2 دقائق قراءة

كيف يصل طلبك إلى أقرب فني؟ نظرة داخل محرك التوزيع في Fixora

من نقطة على الخريطة إلى قائمة عروض مرتبة: كيف يستخدم Fixora قاعدة PostGIS والمهام الخلفية والقنوات الفورية لمطابقة الطلب مع المزودين المناسبين وتوسيع النطاق تلقائياً.

بقلم Owner · نُشر

كيف يصل طلبك إلى أقرب فني؟ نظرة داخل محرك التوزيع في Fixora

خلف زر "اطلب الخدمة" في Fixora سلسلة من الخطوات المصممة لتكون سريعة وعادلة وقابلة للتوسع.

1. الموقع أولاً: PostGIS

يحدد العميل موقعه على خريطة (OpenStreetMap — دون مفاتيح خارجية)، ويُخزَّن كنقطة جغرافية في PostgreSQL مع PostGIS. لكل مزود مناطق خدمة (نقطة مركزية ونصف قطر)، والمطابقة تتم داخل قاعدة البيانات باستعلامات مسافة جغرافية دقيقة، لا بحسابات تقريبية في التطبيق.

2. من يرى الطلب؟

يُعرض الطلب فقط على المزودين الذين:

  • معتمدون من الإدارة بعد مراجعة وثائقهم،
  • متصلون ويقبلون الطلبات (وليسوا في إجازة)،
  • يقدّمون الخدمة المطلوبة،
  • وموقع العميل يقع داخل منطقة خدمتهم.

3. التوسّع التلقائي

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

4. العروض وترتيبها

يقدّم كل مزود عرضاً واحداً للطلب: السعر، الوقت المتوقع للوصول، ومدة التنفيذ. تُرتَّب العروض ليقارن العميل بينها بسهولة، ثم يقبل أحدها لتبدأ مرحلة التنفيذ مع ذلك المزود.

5. دورة حياة واضحة

للطلب آلة حالات صارمة: البحث ← استقبال العروض ← القبول ← بانتظار المزود ← في الطريق ← وصل ← معاينة ← قيد التنفيذ ← بانتظار موافقة العميل ← مكتمل ← مُقيَّم. أي انتقال غير معرّف يُرفض، وكل انتقال يُسجَّل مع منفّذه.

6. لحظي في الاتجاهين

المحادثة وتحديثات الحالة تصل فوراً عبر Phoenix Channels، والإشعارات عبر Firebase Cloud Messaging في النسخة الكاملة.


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

  • Devorbit Fixora — منصة الخدمات المنزلية المتكاملة
    مدفوعنشطv1.0.0

    Devorbit Fixora

    منصة خدمات منزلية متكاملة: تطبيق للعميل وتطبيق لمزود الخدمة ولوحة إدارة وخادم إنتاج — عروض أسعار، محادثة فورية، توزيع جغرافي، فواتير وعمولات — باسمك وعلامتك.

    • Flutter
    • Dart
    • Elixir
    • Phoenix
    • PostgreSQL
  • مقال1 دقائق قراءة

    ما تعلمناه من العمل على Next.js 16

    منصتنا ونظام Qistora مبنيان على Next.js 16. هذه أهم التغييرات التي لمسناها عملياً: proxy.ts بدل middleware، و Turbopack افتراضياً، و Cache Components الاختيارية.

    اقرأ المقال
  • مقال2 دقائق قراءة

    كيف نبني برمجيات مالية لا تخطئ في الحساب

    القيد المزدوج الثابت، الحساب بالأعداد الصحيحة، مفاتيح منع التكرار، والمطابقة اليومية: المبادئ الهندسية التي نطبقها في Books و Qistora لتبقى الأرقام صحيحة.

    اقرأ المقال