satendra03 / trip-planner-by-satendra

JourneyJolt is an innovative AI-powered trip planner designed to revolutionize your travel experience. Leveraging advanced artificial intelligence, JourneyJolt crafts personalized itineraries tailored to your interests, budget, and travel preferences.
https://trip-planner-by-satendra.vercel.app
MIT License
9 stars 2 forks source link
ai auth0 firebase gemini google-maps-api react travel website

JourneyJolt

Logo

AI-Based Trip Planner

Discover personalized itineraries and curated hotel recommendations tailored to your interests. Simplify travel planning with smart suggestions for top destinations and activities, making every trip easy and enjoyable.

Documentation and Flow



Visit Now

Report Bug


## About The Project
image image-2 image-1 image-3 image-5 image-4


JourneyJolt is an AI-based travel planning application designed to make trip planning easier and more efficient. This project leverages artificial intelligence to analyze user preferences and provide personalized recommendations for destinations, accommodations, and activities.

Key features of JourneyJolt include:

JourneyJolt aims to enhance the travel experience by providing a streamlined, easy-to-use platform for trip planning, designed for both casual travelers and frequent explorers alike.

Built With

This project is built with the following major frameworks, libraries, and services:

Getting Started

Setting up JourneyJolt is simple — just configure your .env file, and you're ready to go!

To get started with JourneyJolt, follow these instructions to set up the project locally on your machine for development and testing.

Prerequisites

Before you begin, ensure you have the following installed:

Services & API Keys Setup

To fully integrate JourneyJolt with third-party services, you'll need to sign up for the following services, configure the required settings, and obtain API keys. Below are the steps for each service:

Google Cloud Setup Follow these steps to set up Google Cloud for your project:
  1. Create an account on Google Cloud.
  2. As a new user, you will receive a free trial with 90 days and ₹25,000 in free credits, which you can use for your project.
  3. After setting up your account, go to the APIs & Services section to create an API key.
  4. Next, enable the following APIs:
    • Maps JavaScript API
    • Maps Embed API
    • Geolocation API
    • Geocoding API
    • Places API
    • Places API (New)
  5. The "Places API (New)" may require you to set up a billing account. Don’t worry, your free credits are more than enough to cover the cost!
  6. Once everything is set up, you will have your Google API key ready to use.
  7. Paste the API key in your environment file:
    VITE_GOOGLE_MAP_API_KEY="YOUR_GOOGLE_API_KEY"
Gemini API Setup Follow these steps to set up the Gemini API:
  1. Go to the Gemini AI website.
  2. Create an account if you don't have one, or sign in with your existing account.
  3. The Gemini API is free, meaning there are no charges associated with using it for your project.
  4. Once your account is set up, you can start using the Gemini API for your project.
  5. Paste the API key in your environment file:
    VITE_GEMINI_API_KEY="YOUR_GEMINI_API_KEY"
Auth0 Setup

Follow these steps to set up Auth0 for your project:

  1. Go to the Auth0 website.
  2. Create a free account. The free plan supports up to 25,000 monthly active users, which is more than enough for our project.
  3. After signing up, select the type of project you are creating. Choose "Single Page Application" as we are building a React app.
  4. Once your account is set up, create a new application within Auth0.
  5. Go to the settings of the created application to get the authentication credentials.
  6. You'll need the following credentials:
    • Domain Name
    • Client ID
  7. Paste the credentials into your environment file:
    VITE_DOMAIN_NAME="your-auth0-domain"
    VITE_AUTH0_CLIENT_ID="your-client-id"

Important Note: After running the project, you will need to configure the callback URL and logout URL in the Auth0 application settings. The callback URL should be the hosted URL of your React app when it is running locally or deployed. (generally: http://localhost:5173/)

Firebase Setup
  • Visit the Firebase website and create an account or log in if you already have one.
  • Once logged in, create a new project by clicking on "Add Project". Follow the prompts for setting up the project. Choose the "Test mode" option for the database so you can easily set up read and write permissions.
  • After the project is created, click on the "Web" icon to create a new web app within the Firebase project.
  • Follow the prompts to register your app. Firebase will provide you with the necessary configuration details during this step.
  • Once the web app is created, go to your Firebase Console, and select the project you just created.
  • Navigate to the "Project settings" by clicking on the gear icon near the top left corner.
  • In the "General" tab, you will find the credentials for your Firebase project. These credentials are needed to set up Firebase in your React project.
  • Copy the credentials provided by Firebase (e.g., API key, auth domain, etc.) and paste them into your `.env` file with the following format:
    VITE_FIREBASE_API_KEY = "your-api-key-here"
    VITE_FIREBASE_AUTH_DOMAIN = "your-auth-domain-here"
    VITE_FIREBASE_PROJECT_ID = "your-project-id-here"
    VITE_FIREBASE_STORAGE_BUCKET = "your-storage-bucket-here"
    VITE_FIREBASE_MESSAGING_SENDER_ID = "your-messaging-sender-id-here"
    VITE_FIREBASE_APP_ID = "your-app-id-here"
    VITE_MEASUREMENT_ID = "your-measurement-id-here"
  


## Installation

The installation process is straightforward. You can either clone the repository or download the zip file of the code.

Steps to Install and Set Up:

  1. Clone the repository or download the ZIP file

    • To clone the repo, run the following command:
      https://github.com/satendra03/trip-planner-by-satendra.git
    • Alternatively, you can download the ZIP file from the repository page and extract it.
  2. Open the project folder in a code editor
    Open the folder in your preferred code editor (e.g., VS Code).

  3. Set up the .env file
    The main objective is to set up your .env file with the necessary API keys.

    • Follow the steps in the Setup and API Keys section to get the required API keys for Google Cloud, Gemini API, Auth0, and Firebase.
    • After getting the keys, create a .env file in the root of the project and add the required keys like so:
      VITE_GOOGLE_MAP_API_KEY = "your-google-api-key"
      VITE_GEMINI_API_KEY = "your-gemini-api-key"
      VITE_AUTH0_CLIENT_ID = "your-auth0-client-id"
      VITE_DOMAIN_NAME = "your-auth0-domain-name"
      VITE_FIREBASE_API_KEY = "your-firebase-api-key"
      VITE_FIREBASE_AUTH_DOMAIN = "your-firebase-auth-domain"
      VITE_FIREBASE_PROJECT_ID = "your-firebase-project-id"
      VITE_FIREBASE_STORAGE_BUCKET = "your-firebase-storage-bucket"
      VITE_FIREBASE_MESSAGING_SENDER_ID = "your-firebase-messaging-sender-id"
      VITE_FIREBASE_APP_ID = "your-firebase-app-id"
      VITE_MEASUREMENT_ID = "your-firebase-measurement-id"
  4. Install required NPM packages
    Once the .env file is set up, install the required NPM packages:

    npm install
  5. Run the Project
    After the packages are installed, you can start the development server by running:

    npm run dev

    This will run the project locally and you can access it at http://localhost:5173.

By following these simple steps, you'll have the project up and running in no time!


## Roadmap

The roadmap represents the challenges and updates that I plan to implement in the future. As I continue to enhance the project, I encourage you to try completing these tasks as well and contribute to the project. Collaboration is welcome, and feel free to open pull requests with improvements or fixes. Here's what's coming next:


## Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

Or Maybe you can just

If you have an idea or feature that would make this project even better, please feel free to contribute. Whether it's fixing bugs, adding new features, improving documentation, or anything else, your help is welcome!

How to Contribute:

  1. Fork the repository
    Click on the "Fork" button at the top of this repo to create a copy of the repository on your own GitHub account.

  2. Clone the repo
    Clone your forked version of the repo to your local machine.

    git clone https://github.com/satendra03/trip-planner-by-satendra.git
  3. Create your feature branch
    Create a new branch for the feature you're working on.

    git checkout -b feature/your-feature-nam
  4. Make your Changes
    Modify the code, add new features, or fix bugs. Don't forget to test your changes!

  5. Commit your changes
    Commit the changes you've made with a descriptive message.

    git commit -m 'Add a new feature or fix a bug'
  6. Push to your branch
    Push the changes to your forked repo.

    git push origin feature/your-feature-name
  7. Open a Pull Request
    Go to the original repo and click "New Pull Request". Select your branch and provide a description of what your changes do. Once you're ready, submit the pull request!

Report Issues and Suggestions

If you encounter a bug or have a suggestion to improve the project, please open an issue on the Issues page. If it's a new feature or improvement, tag it as an "enhancement".


## License

Distributed under the MIT License. See LICENSE.md for more information.


## Contact Us

We’d love to hear from you! Whether you have a question, suggestion, or issue to report, feel free to get in touch with us.

Ways to Contact Us:

  1. GitHub Issues: You can open an issue directly on this repository for bugs, feature requests, or general inquiries.

  2. Email: Reach out to us via email at:

    • satendrakumarparteti.work@gmail.com
  3. Social Media:

  4. Buy Me A Coffee:

    • Small Contibution: