Full-stack microservices platform for travel booking — flights, hotels, cars, deals, and billing.
14 independently deployable services communicating over Kafka, backed by MongoDB and MySQL, orchestrated with Kubernetes manifests (infra/k8s/), and fronted by a React/Vite client with i18n support.
┌─────────────┐
│ Client │
│ React/Vite │
└──────┬──────┘
│
┌──────▼──────┐
│ API Gateway │
└──────┬──────┘
│
┌────────────────────┼────────────────────┐
│ │ │
┌──────▼──────┐ ┌──────▼──────┐ ┌──────▼──────┐
│ Flights │ │ Hotels │ │ Cars │
│ Service │ │ Service │ │ Service │
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
│ │ │
└────────────────────┼────────────────────┘
│
┌──────▼──────┐
│ Kafka │
└──────┬──────┘
│
┌──────────┬──────────┬───┴───┬──────────┬──────────┐
│ │ │ │ │ │
Booking Billing Deals Notif. Admin User
Service Service Worker Service Service Service
| Service | Language | Description |
|---|---|---|
api-gateway |
TypeScript | Request routing and authentication |
flights-svc |
TypeScript | Flight search and booking (Kafka producer) |
hotels-svc |
TypeScript | Hotel search and availability (Kafka consumer) |
cars-svc |
TypeScript | Car rental search (Kafka consumer) |
booking-svc |
TypeScript | Booking lifecycle management |
billing-svc |
TypeScript | Payment processing |
user-svc |
TypeScript | User auth and profiles |
notification-svc |
TypeScript | Email/push notifications |
admin-svc |
TypeScript | Analytics dashboard (bookings, revenue, deals, users) |
deals-worker |
Python | Background deal aggregation |
airport-resolver-svc |
TypeScript | Airport code/name resolution |
external-adapters |
TypeScript | Third-party API integrations |
concierge-svc |
Python | AI-powered travel assistant |
client |
React/Vite | Frontend with i18n (English) |
| Component | Technology |
|---|---|
| Container orchestration | Kubernetes (manifests in infra/k8s/) |
| Message broker | Apache Kafka |
| Primary database | MySQL (users, inventory, bookings, payments) |
| Analytics store | MongoDB (admin analytics, concierge cache) |
| Reverse proxy | Nginx |
| CI/CD | GitHub Actions (CI + CD + Pages) |
| Containerization | Docker (per-service Dockerfiles) |
tests/
├── unit/ # Service-level unit tests
├── e2e/ # End-to-end integration tests
├── performance/ # Load testing
└── seed/ # Test data generators
Individual services also contain co-located tests in src/__tests__/.
# Clone and install
git clone https://github.com/jayhemnani9910/travel-booking-platform.git
cd travel-booking-platform
# Copy environment config
cp .env.example .env
# Build and start all services
docker compose build
docker compose up -d
# Or deploy to Kubernetes
kubectl apply -f infra/k8s/├── apps/
│ ├── api-gateway/ # Express gateway
│ ├── flights-svc/ # Flight search + Kafka
│ ├── hotels-svc/ # Hotel search + Kafka
│ ├── cars-svc/ # Car rental + Kafka
│ ├── booking-svc/ # Booking management
│ ├── billing-svc/ # Payment processing
│ ├── user-svc/ # Auth and profiles
│ ├── notification-svc/ # Notifications
│ ├── admin-svc/ # Analytics API
│ ├── deals-worker/ # Deal aggregation
│ ├── airport-resolver-svc/ # Airport lookup
│ ├── external-adapters/ # Third-party APIs
│ ├── concierge-svc/ # Python AI assistant
│ └── client/ # React/Vite frontend
├── shared/ # Shared contracts, models, validators
├── platform/ # Kafka, MongoDB, MySQL configs
├── infra/ # Kubernetes manifests, Nginx
├── scripts/ # Build and deployment scripts
├── tests/ # E2E, performance, unit, seed
└── data/ # Raw datasets