السفر والسياحةخاضع لاتفاقية سرية
محرك حجز طيران مخصص ومرتبط بنظام (Sabre GDS)
شركة سياحة
محرك حجز واحد ومتطور مبني بإطار العمل (Angular) ويرتبط بواجهات نظام Sabre GDS العالمي. تم هندسته ليُدمج ويعمل داخل عدة منصات سفر مختلفة بسلاسة تامة، حيث تم برمجة جميع عناصر وتفاعلات الواجهة من الصفر خصيصاً للمشروع.

النتائج الملموسة
1
محرك حجز موحد يُشارك ويُدمج في جميع بوابات الشركة
أي تعديل أو إصلاح برمجي ينعكس على كل المواقع في لحظة واحدة
0
نسبة الاعتماد على مكتبات تصميم خارجية (UI Packages)
صفر — قمنا ببرمجة كل عنصر في الواجهة داخلياً من الصفر
مئات (100s)
عدد خطوط الرحلات المسترجعة في عملية البحث الواحدة
تُعالج وتُعرض للمستخدم تدريجياً لضمان عدم تجميد الشاشة
التحدي المطروح
واجهت إحدى شركات السياحة تحدياً يتمثل في حاجتها لتوفير ميزة البحث عن وحجز تذاكر الطيران (المرتبطة بشبكة Sabre GDS) عبر عدة بوابات إلكترونية منفصلة تابعة لها. كان بناء وتكرار نفس وظيفة البحث برمجياً داخل كل موقع يعني امتلاك وصيانة أربع نسخ منفصلة من الأكواد المعقدة، ما يضاعف احتمالية الخطأ عند أي تحديث في قوانين التسعير. يضاف إلى ذلك تحدٍ فني آخر: نظام Sabre يضخ كميات ضخمة من النتائج والرحلات، وكان لزاماً علينا بناء واجهة أمامية تحتفظ بسرعتها واستجابتها الفورية حتى عند تصفية والبحث في مئات مسارات الرحلات المعقدة.
أبرز أولويات المشروع
- 1توحيد جهود التطوير: محرك واحد مركزي يخدم عدة بوابات إلكترونية
- 2معالجة بيانات مئات الرحلات المعقدة بسلاسة في كل طلب بحث
- 3بناء الواجهات دون استخدام أي مكتبات تصميم جاهزة لتجنب التعارضات
الحل الذي صممناه
01هندسة البنية البرمجية للحل
بُرمج مرة واحدة، ليُدمج ويعمل في كل مكان
بدلاً من إضاعة الجهد في إعادة برمجة وتكرار ميزة بحث Sabre داخل كل موقع، اتخذنا قراراً هندسياً ببنائه كتطبيق مركزي واحد وإرفاقه في البوابات الأخرى. بهذه الطريقة، تتواصل وتتخاطب الأنظمة المستضيفة مع نفس واجهة الحجز. النتيجة هي أن أي إصلاح فني، أو تحديث في سياسة الأسعار وتذاكر الطيران يُطبق في الكود المركزي، لينعكس فوراً وتلقائياً على كافة مواقع الشركة دون جهد إضافي.
02برمجة واجهة المستخدم (Components)
لم نستخدم مكتبات جاهزة: صنعنا كل مكون وعنصر بأيدينا
تقويم اختيار التواريخ، وحقل البحث عن المطارات، وأداة تحديد أعداد المسافرين، وشريط فلترة النتائج، وتصميم بطاقات الرحلات؛ كل هذه العناصر تمت برمجتها حصرياً لهذا المنتج. هذا النهج الصارم أبقى حجم التطبيق النهائي خفيفاً جداً، وضمن عدم تعطل خطتنا التطويرية مستقبلاً بانتظار تحديثات من مكتبات مفتوحة المصدر أو مطورين خارجيين.
03تحسين تجربة المستخدم (UX)
هندسة تقويم اختيار التواريخ (ذهاب/عودة) من الصفر
صممنا تقويماً يعرض شهرين متتاليين في واجهة واحدة لتسهيل رؤية التواريخ، ويتيح اختيار نطاق متصل بسلاسة تامة. يدعم التقويم التصفح الكامل بلوحة المفاتيح دون ماوس، وهو مبرمج بذكاء لرفض الأخطاء المنطقية (لا يُسمح باختيار تاريخ العودة قبل الذهاب)، مع مراعاة أن الأيام غير المتاحة للحجز مبرمجة لتقرأ بشكل صحيح وواضح لتقنيات مساعدة ذوي الهمم البصرية.
04كفاءة محرك البحث
حقل اختيار المطار الذكي الذي يفهم ما تقصده حقاً
يعمل الحقل على البحث والتطابق مع اسم المدينة، والدولة، واسم المطار، والرمز الدولي (IATA) في وقت واحد. فلو كتب المستخدم "New York"، أو "JFK"، أو حتى "Kennedy"، سيوجهه النظام لنفس النتيجة الدقيقة المرجوة. ولتجنب الضغط على السيرفرات، زودنا الحقل بتقنية (Debouncing) التي تؤخر إرسال طلب البحث لأجزاء من الثانية لتجميع أحرف الكلمة، بدلاً من إرسال طلب مرهق مع كل ضغطة حرف على لوحة المفاتيح.
05تحسينات الأداء والسرعة
ضُبطت خصيصاً للتعامل مع البيانات الضخمة العائدة من نظام Sabre
استخدمنا تقنيات (Debouncing) للمدخلات و(Throttling) لعمليات التمرير لتخفيف العبء عن معالج متصفح العميل (Main Thread). كما اعتمدنا على نظام الـ (Signals) في Angular لتحديث أجزاء محددة فقط من الشاشة بدلاً من إرهاق المتصفح بفحص كامل الصفحة عند كل تغيير. بالإضافة لتقنية التمرير اللانهائي (Infinite Scroll) التي تعرض مئات الرحلات على الشاشة بشكل تدريجي بناءً على تمرير المستخدم، بدلاً من تجميد الشاشة في محاولة عرضها كلها دفعة واحدة.
الخلاصة والنتيجة
الحصيلة هي بناء محرك مركزي متطور يغني الشركة عن إدارة نسخ متعددة ومشتتة في كل موقع. تُنشر التحديثات والإصلاحات البرمجية لتصل للجميع في نفس اللحظة، وتوفر واجهة البحث سرعة واستجابة ممتازة حتى عند معالجة وعرض مئات الخيارات لرحلات الطيران. نظراً لأن المنتج يخضع لاتفاقية سرية صارمة (NDA)، لا يمكننا نشر رابطه هنا، لكن سيسعدنا جداً استعراض أسلوب عمله وميزاته لك في مكالمة مرئية مغلقة.
من داخل واجهات المشروع

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