🏆 MongoDB Hackathon SF - January 10, 2026
A full-stack travel booking application powered by AI and Amadeus APIs. Search flights, get intelligent recommendations, and seamlessly book travel arrangements.
Built for: MongoDB Hackathon San Francisco (January 10, 2026)
- Flight Search & Discovery: Search flights using Amadeus API with advanced filtering
- AI-Powered Recommendations: Get intelligent travel suggestions using embeddings
- Automated Booking: Seamless flight booking with browser automation
- Vector Search: MongoDB-based vector search for personalized recommendations
- Real-time Data: Integration with multiple travel data sources
- Modern Web Interface: Next.js-based frontend with responsive design
- Runtime: Node.js
- Framework: Express.js
- Database: MongoDB with vector search
- APIs: Amadeus, SerpAPI
- Automation: Playwright for browser automation
- AI: Embeddings and vector similarity search
- Framework: Next.js
- Styling: CSS
- State Management: React hooks
- Package Manager: pnpm with workspaces
- Version: Node 16+
resilient-travel/
├── apps/
│ ├── api/ # Express backend server
│ │ ├── src/
│ │ │ ├── routes/ # API endpoints
│ │ │ ├── services/ # Business logic
│ │ │ └── mongo/ # Database operations
│ │ └── scripts/ # Utilities (vector smoke tests, etc)
│ └── web/ # Next.js frontend
│ ├── app/ # App router pages
│ └── styles/ # Global styles
├── packages/shared/ # Shared utilities
├── templates/ # Data templates (personas, collections)
├── scripts/ # Workspace scripts
└── outputs/ # Generated outputs
- Node.js 16+
- pnpm 9.0.0+
- MongoDB instance (for development)
- Amadeus API credentials
pnpm installCreate a .env file in the root:
# Amadeus API
AMADEUS_CLIENT_ID=your_api_key
AMADEUS_CLIENT_SECRET=your_api_secret
AMADEUS_BASE_URL=https://test.api.amadeus.com
# MongoDB
MONGODB_URI=mongodb://localhost:27017/resilient-travel
# Other APIs
SERPAPI_KEY=your_serpapi_keySee AMADEUS_SETUP.md for detailed Amadeus integration setup.
# Run all apps in development mode
pnpm dev
# Or run individual apps
cd apps/api && pnpm dev
cd apps/web && pnpm devcd apps/api
node src/server.jsThe API runs on http://localhost:3001
cd apps/web
pnpm devThe web app runs on http://localhost:3000
POST /api/flights/searchSearch available flights with date and passenger information.
POST /api/flights/bookInitiate flight booking with automated browser navigation.
POST /api/embeddingsGenerate embeddings for travel-related text queries.
The application uses MongoDB with vector search capabilities for:
- Storing flight data and bookings
- Caching embeddings
- Storing travel plans and itineraries
- Historical search data and user preferences
Run linting across all apps:
pnpm lintpnpm-workspace.yaml- Monorepo workspace configurationpnpm-lock.yaml- Locked dependency versionspackage.json- Root workspace package definitionAMADEUS_SETUP.md- Amadeus integration guide
See LICENSE for details.