Back to Portfolio
Traveltodo Flights: Global Flight Booking Engine
Travel & E-commerce

Traveltodo Flights: Global Flight Booking Engine

Full-stack flight booking platform handling millions of searches with Node.js, Express, and multi-provider integration.

Project Overview

The Challenge

Traveltodo, a leading travel agency, relied on legacy systems that were slow, hard to maintain, and lacked comprehensive inventory.

They needed a modern, scalable solution to compete with global OTAs (Online Travel Agencies), requiring faster search results, better mobile experience, and robust SEO performance.

Architected and developed the core flight booking engine for Traveltodo, integrating with multiple Global Distribution Systems (GDS) and local low-cost carriers. The platform handles complex itinerary combinations, real-time pricing, and secure booking flows.

Built a high-performance backend using Node.js and Express that aggregates results from various providers (Cyberesa, Amadeus) via XML/SOAP APIs. Implemented intelligent caching strategies using Node Cache to reduce API costs and improve response times by 40%.

Designed a server-side rendered frontend using EJS for optimal SEO performance and fast initial load times. Features include dynamic PDF ticket generation using Puppeteer, automated email workflows, and a robust administration dashboard for booking management.

Technical Architecture

Click diagram to zoom

Node.js chosen for its event-driven, non-blocking I/O, perfect for handling multiple slow GDS requests concurrently.

Hybrid DB: MongoDB for unstructured logs and flexible session data; MSSQL for strict transactional integrity required by financial bookings.

SSR (EJS): Selected over SPA frameworks at the time to ensure immediate indexability by search engines for thousands of route pages.

Key Challenges & Solutions

1

Slow GDS Responses

External APIs could take 5-10 seconds. Implemented an aggressive caching layer and 'stale-while-revalidate' strategies for popular routes.

2

Complex XML Parsing

GDS providers use archaic SOAP/XML formats. Wrote a robust normalization layer that converts all provider responses into a unified internal JSON schema before reaching the frontend.

3

Concurrency Limits

High traffic spikes caused connection timeouts. Implemented connection pooling and request throttling to ensure stability under load.

Impact & Results

Reduced average search response time from 8s to <4s.

Caching reduced external API calls by 30%, saving significant operational costs.

99.9% uptime achieved during peak booking seasons.

Zero-refresh filtering and sorting implemented on the frontend.

Key Features

  • Multi-GDS Aggregation (Amadeus, Sabre, etc.)
  • Real-time availability and dynamic pricing
  • Automated PDF Ticket Generation with Puppeteer
  • Complex itinerary mapping and filtering
  • Multi-database architecture (MongoDB + MSSQL)
  • SEO-optimized Server Side Rendering

Technologies Used

Node.jsExpress.jsEJSMongoDBMSSQLPuppeteerXML/SOAPRedis/Node Cache

Project Gallery

Flight Search Home
Flight Search Home
Search Results
Search Results
Flight Availability
Flight Availability
Flight Details
Flight Details
Booking Finalization
Booking Finalization
Loading State
Loading State
Empty State
Empty State

Project Details

Client

Traveltodo

Timeline

2022

Role

Lead Full Stack Engineer

More Projects

© 2025 Firas Jday. All rights reserved.

0%