GetSetTravel is a modern, AI-powered travel planning application that creates personalized itineraries in seconds. Built with Next.js 15, FastAPI, and Google Gemini 1.5 Flash.
- 🤖 AI-Powered Itineraries: Generates detailed day-by-day plans using Google Gemini LLM.
- ⚡ Instant Recommendations: Suggests activities, hidden gems, and dining spots based on your interests.
- 🏨 Smart Stay: Recommends top-rated hotels with direct booking links.
- 💰 Currency Conversion: Plan your budget in INR, USD, EUR, GBP, or JPY.
- 🔍 Smart Autocomplete: Select from 100+ popular global destinations.
- 🔗 Deep Links: One-click Google Maps and search links for every activity and hotel.
- 🎨 Glassmorphism UI: A premium, responsive design built with CSS Modules and Lucide Icons.
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Styling: Vanilla CSS (CSS Modules), Lucide React
- Framework: FastAPI (Python 3.10+)
- AI Model: Google Gemini 1.5 Flash (via
google-generativeai) - Server: Uvicorn
- Node.js 18+
- Python 3.10+
- Google Gemini API Key
This is the easiest way. It hosts both the Frontend and Backend for free.
- Push to GitHub: Make sure this code is in a GitHub repository.
- Import to Vercel:
- Go to Vercel.
- Import your GitHub repository.
- Environment Variables:
- Add
GEMINI_API_KEYin the Vercel Project Settings.
- Add
- Deploy: Click Deploy! Vercel will automatically detect Next.js and the Python backend using the
vercel.jsonconfig.
cd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
# Create .env file in backend/
echo "GEMINI_API_KEY=your_key_here" > .env
# Run Server
uvicorn app.main:app --reload# In a new terminal, from the root directory
npm install
npm run devThe app will be running at http://localhost:3000.
/
├── app/ # Next.js App Router (Frontend)
│ ├── api/ # Proxy routes
│ ├── plan/ # Itinerary Planner Pages
│ └── suggest/ # Destination Suggester
├── backend/ # FastAPI Server (Backend)
│ ├── app/
│ │ ├── api/ # Endpoints
│ │ ├── services/ # Gemini LLM Integration
│ │ └── schemas/ # Pydantic Models
│ └── requirements.txt
├── components/ # Reusable UI Components
├── lib/ # Utilities & Constants
└── public/ # Static Assets
Contributions are welcome! Please fork the repository and submit a pull request.
MIT License.