AI Travel Planner is a web application that generates personalized travel itineraries with the support of Generative AI.
Users select a destination, start date, end date, and travel experience. The application creates a structured day-by-day itinerary that can be viewed, saved, and shared through a link.
The project also demonstrates a complete DevOps workflow with microservices, containerized development, CI/CD, infrastructure automation, deployment, and monitoring.
The current application supports:
- destination input
- start and end date selection
- travel experience selection
- AI-generated day-by-day itineraries
- user registration and login
- saving trips
- sharing trips through a generated link
- mock and external LLM providers
- local execution with Docker Compose
- API routing through NGINX
- Prometheus monitoring
- Grafana dashboards
- Kubernetes deployment with Helm
- Azure automation with Terraform and Ansible
- GitHub Actions CI/CD
The GenAI API supports optional budget information, but budget is not yet integrated into the complete frontend and backend workflow.
The application consists of:
- React Client
- NGINX API Gateway
- Auth Service
- Trip Service
- Common backend module
- GenAI Service
- PostgreSQL
- Prometheus
- Grafana
Browser
|
v
React Client
|
v
NGINX API Gateway
|
+----------------+----------------+----------------+
| | |
v v v
Auth Service Trip Service GenAI Service
| | |
+--------+-------+ |
| v
v External LLM Provider
PostgreSQLFor the detailed architecture, see System Overview.
.
├── .github/
│ └── workflows/ # GitHub Actions workflows
├── api/ # API contracts
├── backend/
│ ├── auth-service/ # Authentication service
│ ├── trip-service/ # Trip service
│ └── common/ # Shared backend module
├── client/ # React frontend
├── docs/ # Project documentation
├── genai/ # FastAPI GenAI service
└── infra/
├── ansible/ # VM configuration
├── helm/ # Kubernetes deployment
├── monitoring/ # Prometheus and Grafana
├── nginx/ # API Gateway
├── terraform/ # Azure infrastructure
└── docker-compose.yml # Local stackInstall:
- Git
- Docker
- Docker Compose plugin
git clone https://github.com/AET-DevOps26/team-coffeelovers.git
cd team-coffeeloversCreate:
infra/.envConfigure the required local values.
For local GenAI development, the mock provider can be used:
GENAI_PROVIDER=mockDo not commit environment files, API keys, passwords, tokens, or other secrets.
docker compose \
--env-file infra/.env \
-f infra/docker-compose.yml \
up --buildFor the complete first-time setup, see How to Launch.
For Docker Compose services, monitoring, logs, and troubleshooting, see Infrastructure Setup.
| Component | URL |
|---|---|
| Frontend | http://localhost:3000 |
| Grafana | http://localhost:3001 |
| GenAI Swagger UI | http://localhost:8001/docs |
| API Gateway | http://localhost:8080 |
| Auth Service | http://localhost:8081 |
| Trip Service | http://localhost:8082 |
| Prometheus | http://localhost:9090 |
Use the API Gateway for normal application requests.
- Open the frontend.
- Register or log in.
- Enter a destination.
- Select start and end dates.
- Select a travel experience.
- Generate an itinerary.
- Save the trip.
- Share the trip through its generated link.
The frontend currently does not collect budget information.
The project supports:
- Docker Compose for local development
- GitHub Actions for CI/CD
- Helm for Kubernetes deployment
- Terraform and Ansible for Azure automation
- Prometheus for metrics collection
- Grafana for metrics visualization
Detailed instructions are maintained in the related documentation.
| Document | Purpose |
|---|---|
| Problem Statement | Product problem, scope, and users |
| System Overview | Architecture and service communication |
| Product Backlog | Implemented and planned functionality |
| How to Launch | Local launch guide |
| Infrastructure Setup | Docker Compose, monitoring, logs, and troubleshooting |
| GenAI Service | GenAI providers, endpoints, and configuration |
| Kubernetes Deployment | Helm deployment |
| Infrastructure Automation | Terraform and Ansible |
| Contributing Guide | Development workflow and contribution rules |
main
↑
develop
↑
feature/*, bugfix/*, docs/*, hotfix/*General rules:
- create a branch for every issue
- branch from the latest
develop - open pull requests into
develop - run relevant tests before merging
- update documentation when behavior changes
- do not commit secrets
See Contributing Guide for the complete workflow.
- Paulina: Frontend development and client-side tests
- Adnan: Spring Boot backend services and APIs
- Berfin: GenAI integration, providers, prompts, and quality checks