joe / sukar
كل المشاريع

FlightDetector

حين تختلف بيانات الرحلات.

واجهة لتتبع الرحلات مباشرة، مبنية حول مشكلة أصعب: ما الذي نعرضه حين تختلف مصادر بيانات الطيران، أو تتأخر في الرد، أو تتطلب الإجابة التالية تكلفة إضافية؟

دوري
تصميم المنتج وتطوير التطبيق وتكامل البيانات
المنصة
الويب
التقنيات
JavaScript / Mapbox GL JS / Node.js / Fastify / SQLite / REST APIs
جرّب العرض التفاعلي ←
لديك مشروع مشابه؟ لنتحدث ↖
خريطة المجال الجوي المباشرة في FlightDetector تعرض مواقع الطائرات
استكشاف المجال الجوي مباشرة عبر FlightDetector.
التحدي
تختلف مصادر بيانات الطيران بشأن المسارات والتغطية وحداثة الإجابات.
مساهمتي
تجربة الخريطة وتكامل البيانات والتخزين المؤقت ومسارات البدائل ذات الميزانية المحددة.
النتيجة
متتبع يعمل للرحلات المباشرة والسابقة، مع إبقاء المعلومات غير المحسومة واضحة.

الخريطة هي الجزء السهل فهمه.

يجمع FlightDetector بين المجال الجوي المباشر وتفاصيل الرحلات ومساراتها ومعلومات الارتفاع والبحث في السجلات السابقة. بنيته كمشروع هندسي شخصي لاستكشاف العمل وراء واجهة تبدو بسيطة: وضع الطائرة الصحيحة في المكان الصحيح وتوضيح وجهتها.

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

ستة مصادر، لكل منها مهمة محددة.

تستخدم الواجهة HTML وCSS وJavaScript دون إطار عمل وMapbox GL JS. تنسّق خدمة Node.js المبنية باستخدام Fastify بين المصادر الخارجية. يوفّر adsb.lol المواقع المباشرة الأساسية، بينما يدعم OpenSky المواقع البديلة والمعلومات التاريخية.

يوفّر adsbdb تفاصيل المسارات والطائرات، وتقدّم OurAirports بيانات مرجعية عن المطارات. وتُستخدم AirLabs وAviationStack ضمن مسار بديل تحكمه ميزانية محددة. يخزّن SQLite السجلات المؤرشفة ومعلومات التغطية، إلى جانب ذاكرة مؤقتة للإجابات التي لا تحتاج إلى الاحتفاظ بها طويلًا.

قد تبدو الوجهة معقولة، وتكون خاطئة.

في إحدى حالات تعارض المسارات، نسبت قواعد بيانات مختلفة رقم رحلة Southwest إلى وجهات مختلفة، بينما أشارت حركة الطائرة الفعلية إلى اتجاه آخر. إعادة استخدام أرقام الرحلات تعني أن المزوّد قد يعيد مسارًا يبدو منطقيًا تمامًا، لكنه يخص مقطع رحلة مختلفًا.

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

احتفظ بالمفيد، واجلب الناقص.

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

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

يجب تجهيز البديل قبل انتهاء مهلة الطلب.

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

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

استكشاف مفيد، بحدود واضحة.

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

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

كيف تتكامل الأجزاء.

  1. 01

    ارصد

    اجمع المواقع والبيانات المرجعية من مصادر ذات مسؤوليات محددة.

  2. 02

    تحقق

    قارن المسارات المقترحة بالحركة والأدلة المخزنة مؤقتًا وميزانيات المصادر البديلة.

  3. 03

    استكشف

    اعرض الخريطة والسجل مع إبقاء المعلومات غير المحسومة واضحة.

المشروع التالي
Kalamna

لديك مشكلة تستحق الحل؟

أخبرني بما تبنيه، أو بما يحتاج إلى تحسين.

ابدأ مشروعًا ↖