A full-stack AI-powered travel planning app that generates personalized day-by-day itineraries based on your destination, budget, interests, and travel style.
- 🗓️ Personalized Itineraries — Day-by-day plans for 1 to 30 days
- 💰 Budget-Aware Planning — All recommendations fit within your total budget
- 🎯 Interest-Driven — Filter by Culture, Food, Adventure, Nature and more
- 🏨 Accommodation & Transport — Customize hotel type and travel mode
- 🆘 Emergency Contacts — Local emergency info included in every plan
- 📱 Responsive UI — Works on desktop and mobile
| Layer | Technology |
|---|---|
| Frontend | React 18, TypeScript, Vite, React Router |
| Styling | TailwindCSS, Radix UI, shadcn/ui, Lucide Icons |
| Backend | Node.js, Express 5 |
| AI | Perplexity AI API |
| Serverless | Netlify Functions |
| Testing | Vitest |
git clone https://github.com/StreetCoder02/Travel-Itinerary.git
cd Travel-Itinerarynpm installcp .env.example .envAdd your keys to .env:
PERPLEXITY_API_KEY=your_key_here
npm run devTravel-Itinerary/ ├── client/ # React frontend (pages, components, hooks) ├── server/ # Express API routes ├── netlify/ # Serverless functions for deployment ├── shared/ # Shared TypeScript types └── package.json
POST /api/generate-itinerary
{
"city": "Jaipur",
"budget": 50000,
"days": 4,
"travelers": 2,
"interests": ["Culture & History", "Food & Dining"],
"accommodation": "hotel",
"transportation": "public"
}| Variable | Required | Description |
|---|---|---|
PERPLEXITY_API_KEY |
Optional | For live AI itinerary generation |
GOOGLE_MAPS_API_KEY |
Optional | For live place lookups |
If keys are missing, the app falls back to internal logic automatically.
Configured for Netlify out of the box:
npm run buildConnect your GitHub repo to Netlify for auto-deploy on every push.
- Fork the repo
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'feat: add amazing feature') - Push and open a Pull Request
MIT License — see LICENSE for details.
Made with ❤️ by Aniruddha Pratap Singh
⭐ Star this repo if you found it useful!