full stack

VBooking CRM & Travel Platform

Decoupled travel CRM and modular booking engine with multi-gateway payments.
VBooking CRM logo
RoleLead Full-Stack Engineer
Timeline2025 — 2026
Categoryfull stack
Stack6 technologies
Express.jsReactNode.jsPostgreSQLTypeScriptJSONB
Overview

Project Overview

VBooking was refactored from a legacy system into a modern, decoupled modular architecture using Express.js and React. The platform handles end-to-end travel management, supporting dynamic product fields, automated itinerary pricing, supplier synchronization, and an isolated payment abstraction engine.


Capabilities

Key Features

  • Dynamic Product & Package Engine

    Supports Flights, Accommodations (TBO/TAG), Transfers, and Experiences under a unified schema with custom fields and automated bundle pricing.

  • Modular Payment Engine

    Decoupled payment abstraction built with Factory and Strategy patterns supporting Tabby, Tamara, Stripe, PayTabs, NGenius, and UTAP.

  • Quotation & Lifecycle Tracking

    Manages transition from quotation to confirmed reservation with parent-child booking relations, passenger passport tracking, and price snapshotting.

  • Secure Webhook Guard Pipeline

    Processes asynchronous payment events using HMAC-SHA256 signature verification, IP whitelisting, and bearer token filters.


Engineering

Technical Architecture

  1. Decoupled Express.js REST API with React frontend to separate UI rendering from core travel domain logic.
  2. Dynamic EERD schema utilizing JSONB column structures for flexible custom fields and historical booking data snapshotting.
  3. Factory & Strategy design patterns in the payment domain to normalize external provider responses into unified status states.
  4. Multi-Tenant Gateway Configuration (CompanyPaymentGateway) isolating sandbox and production environments per organization.

Database Architecture

Dynamic EERD & ORM Modeling

To handle multiple travel services under a single roof, the relational data model was designed to combine strict relational integrity with flexibility. The schema leverages JSONB for dynamic custom fields while enforcing strict transactional guarantees for passenger details and pricing snapshots.

Figure 1 — Complete EERD Schema showing core Product, Booking, and Payment relationships.
Figure 2 — ORM Mapping for parent-child bookings, customer snapshots, and dynamic fields.

Architecture Deep-Dive

Payment Engine Decoupling

To prevent external vendor lock-in and streamline local compliance, the payment module was completely isolated from booking state machine routines. Payments map to unified internal states (Pending, Authorized, Captured, Refunded) regardless of the downstream provider.


Third-Party Data

Supplier Integration Layer

Third-party APIs such as Akbar and TBO feed directly into standardized Accommodations and Flights schemas, normalizing heterogeneous vendor payloads for rendering on the React client.


Results

Impact & Outcomes

  • 6Integrated Gateways
  • Flights+Core Services
  • B2BPayment Model
  • ModularArchitecture

Takeaways

Lessons Learned

  • Abstracting payment gateways behind Strategy patterns makes adding BNPL providers like Tabby and Tamara virtually zero-friction for core booking logic.
  • Data snapshotting at point-of-sale is essential in travel systems to shield historical customer transactions from external supplier price variations.