An intelligent, full-stack travel planning application that leverages Google's Vertex AI Agent Engine and Firebase to deliver hyper-personalized trip recommendations, real-time itinerary optimization, and seamless booking experiences.
- Google OAuth - One-click sign-in with Google accounts
- Email/Password - Traditional authentication with email verification
- User Profiles - Comprehensive profile management with travel preferences
- Auto Profile Photos - Automatic Google profile picture integration
- Secure Sessions - Firebase Authentication with ID tokens
- Multi-Agent System - Specialized AI agents for different travel aspects:
- πΊοΈ Destination Suggester - Personalized destination recommendations
- π Trip Planning Agent - Intelligent itinerary generation
- π¨ Personalization Agent - Customized experiences based on preferences
- π Data Aggregator - Real-time travel data integration
- π― Optimization Agent - Route and budget optimization
- π± Real-time Monitoring - Live updates and disruption management
- π³ Booking Agent - Streamlined reservation handling
- Real-time conversational trip planning
- Destination suggestion cards with rich details
- Message history and context awareness
- WebSocket support for live updates
- Beautiful, modern UI with Framer Motion animations
- Responsive design (mobile, tablet, desktop)
- Profile dropdown with quick actions
- Travel preferences management (style, budget, interests)
- Trip history and statistics
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Frontend (React) β
β βββββββββββββββ ββββββββββββββββ ββββββββββββββββββββ β
β β Landing β β Chat β β Profile β β
β β Page β β Interface β β Management β β
β βββββββββββββββ ββββββββββββββββ ββββββββββββββββββββ β
ββββββββββββββ¬βββββββββββββββββ¬βββββββββββββββββ¬ββββββββββββββ
β β β
βΌ βΌ βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Firebase Services β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββββββ β
β β Auth β β Firestore β β Cloud β β
β β (Google/ β β (User Data, β β Functions β β
β β Email) β β Sessions) β β (Triggers) β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββββββ β
ββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β FastAPI Backend (Python) β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Vertex AI Agent Engine β β
β β ββββββββββββββ βββββββββββββββ ββββββββββββββββ β β
β β β Planning β β Booking β β Real-time β β β
β β β Agents β β Agents β β Monitoring β β β
β β ββββββββββββββ βββββββββββββββ ββββββββββββββββ β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Google Places API Client β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Why Hybrid?
- Firebase: User authentication, data persistence, hosting, and real-time capabilities
- FastAPI Backend: AI agent orchestration, complex business logic, Google Cloud integrations
- Best of Both Worlds: Serverless scalability + AI power + cost efficiency
- React 18 - Modern UI library
- React Router - Client-side routing
- Tailwind CSS - Utility-first styling
- Framer Motion - Smooth animations
- Lucide React - Beautiful icons
- React Hot Toast - Notifications
- React Query - Data fetching and caching
- React Hook Form - Form validation
- FastAPI - High-performance Python web framework
- Google Vertex AI - Agent Engine for AI orchestration
- Google ADK (Agent Development Kit) - Multi-agent system
- Google Places API - Travel data and recommendations
- Python 3.12+ - Modern Python runtime
- Firebase Authentication - User auth (OAuth, Email/Password)
- Cloud Firestore - NoSQL database for users, chats, trips
- Firebase Hosting - Static site hosting for React app
- Cloud Functions - Serverless backend functions
- Cloud Storage - User-uploaded content
- Firebase Hosting - Frontend deployment
- Google Cloud Run - Backend containerized deployment
- GitHub Actions - CI/CD pipelines (future)
- Node.js 18+ and npm
- Python 3.12+
- Firebase CLI (
npm install -g firebase-tools) - Google Cloud SDK (for backend deployment)
- Firebase project with Authentication and Firestore enabled
git clone https://github.com/Chandangowdatk/Personalized-Trip-Planner.git
cd Personalized-Trip-Planner- Go to Firebase Console
- Create a new project:
gowanderlust - Enable Authentication (Google, Email/Password)
- Enable Cloud Firestore
- Create a web app to get configuration
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId} {
allow read, write: if request.auth != null && request.auth.uid == userId;
}
match /sessions/{sessionId} {
allow read, write: if request.auth != null;
}
match /itineraries/{itineraryId} {
allow read, write: if request.auth != null;
}
}
}cd frontend
# Install dependencies
npm install
# Create .env.local file
cat > .env.local << EOF
# Firebase Configuration (from Firebase Console)
REACT_APP_FIREBASE_API_KEY=your_api_key_here
REACT_APP_FIREBASE_AUTH_DOMAIN=your_project_id.firebaseapp.com
REACT_APP_FIREBASE_PROJECT_ID=your_project_id
REACT_APP_FIREBASE_STORAGE_BUCKET=your_project_id.firebasestorage.app
REACT_APP_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
REACT_APP_FIREBASE_APP_ID=your_app_id
REACT_APP_FIREBASE_MEASUREMENT_ID=your_measurement_id
# Backend API URL
REACT_APP_API_URL=http://localhost:8000
EOF
# Start development server
npm startFrontend will be available at http://localhost:3000
cd backend
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Create .env file
cat > .env << EOF
# Google Cloud Configuration
GOOGLE_CLOUD_PROJECT=your_project_id
VERTEX_AI_LOCATION=us-central1
# Google Places API
GOOGLE_PLACES_API_KEY=your_places_api_key
# Firebase Admin SDK
FIREBASE_SERVICE_ACCOUNT_KEY=path/to/service-account-key.json
EOF
# Run backend server
uvicorn main:app --reloadBackend will be available at http://localhost:8000
cd agent/personalizedTripPlanner
# Install with uv (recommended)
uv pip install -e .
# Or with pip
pip install -e .
# Test deployment (optional)
cd deployment
python test_deployment.py- Visit
http://localhost:3000 - Click "Get Started"
- Choose Google Sign-in or Email/Password
- Navigate to Chat Interface
- Describe your travel preferences
- AI agents will provide personalized recommendations
- Review destination suggestions with details
- Click on profile picture in header
- Navigate to "My Profile"
- Update travel preferences (style, budget, interests)
- View trip statistics
- View trip history
- Save favorite destinations
- Get real-time updates
- Book accommodations (coming soon)
Personalized-Trip-Planner/
βββ frontend/ # React Frontend
β βββ src/
β β βββ components/ # UI Components
β β β βββ LandingPage.js # Landing page
β β β βββ HomePage.js # Dashboard
β β β βββ ChatInterface.js # Chat UI
β β β βββ AuthModal.js # Authentication modal
β β β βββ ProfilePage.js # User profile
β β βββ contexts/ # React Contexts
β β β βββ AuthContext.js # Auth state
β β β βββ ChatContext.js # Chat state
β β βββ services/ # API Services
β β β βββ firebase.js # Firebase init
β β β βββ authService.js # Auth methods
β β β βββ userService.js # User CRUD
β β β βββ api.js # Backend API
β β βββ App.js # Main app
β βββ public/
β βββ package.json
β βββ .env.local # Firebase config
β
βββ backend/ # FastAPI Backend
β βββ main.py # API endpoints
β βββ requirements.txt
β βββ .env # Backend config
β
βββ agent/ # AI Agent System
β βββ personalizedTripPlanner/
β βββ personalized_trip_planner/
β β βββ agent.py # Root agent
β β βββ prompt.py # Agent prompts
β β βββ subagents/ # Specialized agents
β β βββ destinationSuggester/
β β βββ Planning/
β β βββ Booking/
β β βββ Personalization/
β β βββ DataAggregator/
β β βββ Optimization/
β β βββ RealtimeMonitoring/
β βββ deployment/ # Deployment scripts
β
βββ requirements.txt # Python dependencies
βββ .gitignore
βββ README.md # This file
# Frontend tests
cd frontend
npm test
# Backend tests
cd backend
pytest
# Agent tests
cd agent/personalizedTripPlanner/deployment
python test_deployment.py# Frontend linting
cd frontend
npm run lint
# Backend linting
cd backend
flake8 .
black .# Frontend build
cd frontend
npm run build
# Backend Docker image
cd backend
docker build -t trip-planner-backend .cd frontend
# Build production bundle
npm run build
# Deploy to Firebase
firebase deploy --only hostingcd backend
# Build and deploy
gcloud run deploy trip-planner-backend \
--source . \
--region us-central1 \
--allow-unauthenticated \
--set-env-vars GOOGLE_CLOUD_PROJECT=your_project_idcd agent/personalizedTripPlanner/deployment
# Deploy agent
python deploy.py- Firebase Authentication integration
- Google OAuth sign-in
- Email/Password authentication
- User profile management
- Travel preferences system
- Profile photo integration
- Firestore chat session storage
- Message history persistence
- Session recovery
- Multi-device sync
- Save itineraries to Firestore
- Edit and customize itineraries
- Share itineraries
- Export to PDF/Calendar
- Hotel booking API integration
- Flight search and booking
- Activity reservations
- Payment processing
- Collaborative trip planning
- Budget tracking and optimization
- Travel recommendations engine
- Mobile app (React Native)
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Google Cloud Platform - Vertex AI, Cloud Run, Firebase
- Google Places API - Travel data and recommendations
- React Community - Frontend framework and ecosystem
- FastAPI Community - Backend framework
Chandan Gowda TK
- GitHub: @Chandangowdatk
- Project: GoWanderLust
- Firebase Documentation
- Vertex AI Agent Engine
- Google Places API
- FastAPI Documentation
- React Documentation
Built with β€οΈ using AI and Modern Web Technologies
Transforming travel planning with intelligent automation
Transforming travel planning with intelligent automation