A modern AI-powered travel planning application that generates personalized travel recommendations with real-time data integration.
This application helps users create comprehensive travel plans by combining AI-generated recommendations with real-time data from multiple sources including flights, hotels, and weather information. Users input their preferences for destinations, dates, interests, budget, and travel pace to receive detailed day-by-day itineraries with activities, costs, and logistics.
- AI-Powered Recommendations: Personalized itinerary generation using OpenAI GPT
- Real-time Data Integration: Current pricing and availability from travel services
- Comprehensive Planning: Day-by-day itineraries with activities, costs, and logistics
- User Preferences: Customizable destination, dates, interests, budget, and travel pace
- Modern UI: Built with React, TypeScript, and Shadcn/ui components
- Framework: React with TypeScript
- Build Tool: Vite with hot module replacement
- UI Components: Shadcn/ui (New York variant) built on Radix UI
- Styling: Tailwind CSS with CSS variables for theming
- State Management:
- React Hook Form for forms
- TanStack Query for server state
- Routing: Wouter (lightweight client-side routing)
- Icons: Lucide React
- Runtime: Node.js with Express.js
- Language: TypeScript with ES modules
- API Design: RESTful endpoints
- Validation: Zod schemas for request/response validation
- Error Handling: Centralized middleware with structured responses
- Primary Database: PostgreSQL (Neon serverless)
- ORM: Drizzle ORM with Drizzle Kit for migrations
- Session Management: PostgreSQL-backed sessions with connect-pg-simple
- Development: In-memory storage for rapid prototyping
- Data Types: JSON columns for complex nested data
- AI Provider: OpenAI GPT for content generation
- Flight Data: Mock implementation (Amadeus API ready)
- Hotel Data: Mock implementation (Booking.com API ready)
- Weather Data: Mock implementation (OpenWeatherMap API ready)
- Problem: Sharing types and schemas between frontend and backend
- Solution: Shared directory with common TypeScript interfaces and Zod schemas
- Benefits: Full-stack type safety and reduced code duplication
- Problem: Travel planning requires current pricing and availability
- Solution: Parallel API calls to multiple travel services before AI generation
- Benefits: Accurate recommendations with up-to-date information
- Problem: Creating personalized, detailed travel plans at scale
- Solution: OpenAI integration with structured prompts and real travel data
- Benefits: Highly customized recommendations with natural language descriptions
- Problem: Complex travel interface with many interactive elements
- Solution: Shadcn/ui component system with consistent design tokens
- Benefits: Rapid development, consistent UX, and accessible components
- Problem: Development dependencies on third-party travel APIs
- Solution: Mock implementations with production-ready interfaces
- Benefits: Faster development, predictable testing, easy API swapping
{
"react": "Frontend framework",
"typescript": "Type safety",
"express": "Backend server",
"vite": "Build tool and dev server",
"tailwindcss": "Utility-first styling"
}{
"@radix-ui/*": "Accessible primitive components",
"shadcn/ui": "Pre-built component library",
"lucide-react": "Icon library",
"class-variance-authority": "Type-safe component variants"
}{
"@tanstack/react-query": "Server state management",
"react-hook-form": "Form state and validation",
"zod": "Runtime type validation",
"drizzle-orm": "Type-safe database operations"
}{
"postgresql": "Primary database via Neon serverless",
"drizzle-kit": "Database migrations",
"connect-pg-simple": "PostgreSQL session store"
}{
"openai": "AI content generation",
"amadeus-api": "Flight data (mock implementation)",
"booking-api": "Hotel data (mock implementation)",
"openweathermap": "Weather data (mock implementation)"
}{
"typescript": "Static type checking",
"esbuild": "Fast JavaScript bundling",
"postcss": "CSS processing with Autoprefixer",
"replit-plugins": "Development environment integration"
}-
Clone the repository
git clone <repository-url> cd travel-itinerary-app
-
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env # Add your OpenAI API key and database credentials -
Set up the database
npm run db:push
-
Start the development server
npm run dev
├── src/
│ ├── client/ # React frontend
│ ├── server/ # Express backend
│ └── shared/ # Shared types and schemas
├── docs/ # Documentation
└── package.json
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request