
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
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
Slow GDS Responses
External APIs could take 5-10 seconds. Implemented an aggressive caching layer and 'stale-while-revalidate' strategies for popular routes.
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.
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
Project Gallery







Project Details
Client
Traveltodo
Timeline
2022
Role
Lead Full Stack Engineer
More Projects
© 2025 Firas Jday. All rights reserved.