Journify AI is an innovative travel planning application that leverages artificial intelligence to create personalized trip itineraries based on your budget and preferences. Integrated with OpenAI's powerful language model, Journify AI offers tailored travel recommendations, including accommodations, activities, and transportation options. Future integrations with Google Maps, booking platforms, and activity providers will further enhance the travel planning experience.
- AI-powered trip planning
- Budget-based itinerary creation
- Personalized travel recommendations
- Integration with OpenAI
- Responsive design for various devices
- User-friendly interface
- Docker containerization
- Kubernetes orchestration
To run Journey AI locally, follow these steps:
-
Clone the repository:
git clone https://github.com/Younes43/Plan-My-Trip.git cd Plan-My-Trip
-
Install dependencies:
npm install
-
Set up environment variables: Create a
.env.local
file in the root directory and add your API keys:OPENAI_API_KEY=your_openai_api_key_here NEXT_PUBLIC_GOOGLE_PLACES_API_KEY=your_client_side_google_places_api_key_here GOOGLE_PLACES_API_KEY=your_server_side_google_places_api_key_here
-
Run the development server:
npm run dev
-
Open http://localhost:3000 in your browser to see the application.
To run the application using Docker:
-
Build the Docker image:
docker build -t younes43/journify-ai:latest .
-
Run the Docker container:
docker run -p 3000:3000 -e OPENAI_API_KEY=your_openai_api_key -e GOOGLE_PLACES_API_KEY=your_google_places_api_key younes43/journify-ai:latest
To deploy the application on Kubernetes:
-
Ensure you have a Kubernetes cluster set up (e.g., using Minikube for local development).
-
Apply the Kubernetes configurations:
kubectl apply -f secrets.yaml kubectl apply -f deployment.yaml kubectl apply -f service.yaml
-
Access the application: If using Minikube, run:
minikube service journify-ai-service
- Next.js
- React
- TypeScript
- Tailwind CSS
- OpenAI API
- Docker
- Kubernetes
The main components of the project are:
src/app/page.tsx
: The main landing page componentsrc/app/components/
: Directory containing all React componentssrc/app/api/generatePlan/route.tsx
: API route for generating travel plansDockerfile
: Instructions for building the Docker imagedeployment.yaml
: Kubernetes Deployment configurationservice.yaml
: Kubernetes Service configurationsecrets.yaml
: Kubernetes Secrets configuration (for API keys)
This component allows users to input their travel preferences, including destination, date range, and budget.
This component displays the generated travel itinerary, including daily activities, accommodations, and transportation options.
The application integrates with the following APIs:
- OpenAI API: Used to generate personalized travel plans based on user input.
- Google Maps API: Provides autocomplete functionality for destination input and location data.
- Google Places API: Fetches detailed information about locations and points of interest.
- Google Maps Static API: Retrieves images for destinations in the travel itinerary.
These integrations enable Journify AI to offer a comprehensive and visually appealing travel planning experience.
The project uses Tailwind CSS for styling, with global styles defined in src/app/globals.css
.
Contributions to Journey AI are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License. See the LICENSE file for details.
- Integration with Google Maps for location-based services
- Connecting with booking platforms for real-time availability and pricing
- Incorporating activity providers for seamless experience booking
- User authentication and profile management
- Saving and sharing travel plans
- Advanced Kubernetes features (e.g., autoscaling, persistent storage)
If you encounter any issues or have questions, please file an issue on the GitHub repository.