Booking Connect
B2B hotel booking platform for travel agencies
- company:
- GEH Suites
- period:
- Feb 2025 — Jun 2026
- NestJS
- TypeScript
- MongoDB / Mongoose
- Passport JWT
- Swagger / OpenAPI
- Pino (logging)
- Throttler (rate limiting)
- React
- Astro
- Tailwind CSS
- Flutter
- MCP protocol
// problem
GEH Suites needed a single digital channel where external travel agencies could check availability, quote and book rooms and flights in real time, with different credit and commission rules per agency, and without depending on a single inventory provider.
// my role
I designed, scaled and maintained the API (NestJS + MongoDB), built the complete flight booking module, and rebuilt the whole frontend as a Flutter mobile app on top of the existing API, and built Lucía, the platform's AI agent.
// architecture
Simplified view of the real system, rebuilt from internal technical documentation — without exposing proprietary code.
// technical decisions
Dual-provider booking fallback
The booking engine tries My Tool first for mapped hotels and automatically falls back to Autocore if the provider fails, so agencies never see an outage of the main inventory provider.
Multi-agency with its own policies and limits
Each agency has independent roles, credit policies and user limits. Flight provider credentials are resolved in cascade: per agency, per exact hotel name, or by an inherited key.
Lucía: an AI booking agent with strict permissions
Lucía (OpenAI API + MCP) creates, manages and cancels bookings and analyzes booking data in real time, both for agencies and for internal staff. Every tool call goes through the same permission model as the platform, so a user can never get sensitive data they shouldn't see. It handled more than 4,000 reservations while I was at the company.
// impact
- Active travel agencies
- 1,000+
- Active users
- 1,400+
- Bookings handled by Lucía
- 4,000+
- Integrated providers
- 5
- Hotel availability
- Dual fallback
AI agent · OpenAI + MCP
Autocore · My Tool · Amadeus · MaarLab · Cobre
Autocore ⇄ My Tool