{"id":25457326,"url":"https://github.com/888krishnam/travel-planner","last_synced_at":"2026-04-15T05:31:39.513Z","repository":{"id":277210993,"uuid":"931570959","full_name":"888krishnam/Travel-Planner","owner":"888krishnam","description":"A Trip Planner and Travelled countries Tracker React App","archived":false,"fork":false,"pushed_at":"2025-02-13T12:00:44.000Z","size":1281,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-16T20:07:19.027Z","etag":null,"topics":["firebase","gemini-api","places-api","places-autocomplete","react","tailwind-css","typescript"],"latest_commit_sha":null,"homepage":"https://travel-planner-448517.web.app/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/888krishnam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-12T14:00:56.000Z","updated_at":"2025-02-13T12:00:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"dfaddf89-947e-4552-aa2c-d9da6e708f9a","html_url":"https://github.com/888krishnam/Travel-Planner","commit_stats":null,"previous_names":["888krishnam/travel-planner"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/888krishnam/Travel-Planner","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/888krishnam%2FTravel-Planner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/888krishnam%2FTravel-Planner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/888krishnam%2FTravel-Planner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/888krishnam%2FTravel-Planner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/888krishnam","download_url":"https://codeload.github.com/888krishnam/Travel-Planner/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/888krishnam%2FTravel-Planner/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263760048,"owners_count":23507162,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["firebase","gemini-api","places-api","places-autocomplete","react","tailwind-css","typescript"],"created_at":"2025-02-18T02:17:02.693Z","updated_at":"2026-04-15T05:31:39.478Z","avatar_url":"https://github.com/888krishnam.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TRAVEL PLANNER\n\nA React application for planning trips and tracking visited countries.\n\n## Technologies Used\n\n-   **Frontend:** React, TypeScript, SWC, Vite, Tailwind CSS, Material UI (MUI)\n-   **APIs:** Google Places API, Gemini API\n-   **Authentication:** OAuth 2.0 (Google)\n-   **Backend \u0026 Infrastructure:** Firebase (Database, Hosting, Deployment)\n\n## Features\n\n-   **Trip Creation:** Plan detailed trips by providing destination, dates, and other relevant information. Leverages the Gemini API to generate hotel recommendations and itineraries based on user input.\n-   **Trip Management:** View and manage previously created trips.\n-   **Trip Details:** Access detailed information about a selected trip.\n-   **Visited Countries Tracking:** Keep track of countries you've visited.\n-   **Place Information:** Utilizes the Google Places API to fetch photos and provide autocomplete functionality for location input.\n-   **User Authentication:** Securely sign in with Google using OAuth 2.0.\n\n## Local Development Setup\n\n1.  **Google Cloud Project Setup:**\n    -   Create a project in the Google Cloud Console.\n    -   Enable the Gemini API and Google Places API for your project.\n\n2.  **OAuth 2.0 Configuration:**\n    -   Set up OAuth 2.0 authorization credentials for your project. Configure the authorized redirect URIs appropriately for local development and production.\n\n3.  **Firebase Project Setup:**\n    -   Create a Firebase project and link it to your Google Cloud project.\n    -   Create two collections in your Firestore database: `trips` and `visited`.\n\n4.  **Environment Variables:**\n    -   Create a `.env` file in the root directory of your project.\n    -   Store all API keys and sensitive information in this file. **Important:** Restrict API key usage to authorized websites within the Google Cloud Console to enhance security, as API Keys are accessed from frontend. Example `.env` file structure:\n\n    ```\n    VITE_FIREBASE_API_KEY=your_firebase_api_key\n    VITE_PLACE_API_KEY=your_places_api_key\n    VITE_GOOGLE_CLIENT_ID=your_google_oauth_client_id\n    VITE_GEMINI_API_KEY=your_gemini_api_key\n    ```\n\n5.  **Firebase Configuration:**\n    -   Create a file named `Firebase.ts` in the `services` directory.\n    -   Copy the Firebase configuration object from your Firebase project settings and paste it into this file. This will typically look something like:\n\n    ```typescript\n    import firebase from \"firebase/app\";\n    import \"firebase/firestore\"; // Import necessary Firebase modules\n    import \"firebase/auth\"; // Import necessary Firebase modules\n\n    const firebaseConfig = {\n      apiKey: process.env.REACT_APP_FIREBASE_API_KEY,\n      authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,\n      projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,\n      storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,\n      messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,\n      appId: process.env.REACT_APP_FIREBASE_APP_ID,\n    };\n\n    const db = firebase.firestore(); // Export Firestore instance\n    const auth = firebase.auth(); // Export Auth instance\n\n    export { db, auth };\n    ```\n\n6.  **Install Dependencies:**\n    -   Open your terminal in the project directory and run: `npm install`\n\n7.  **Run the Development Server:**\n    -   Run: `npm run dev`\n\nThis will start the development server, and the application should be accessible at `localhost`.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F888krishnam%2Ftravel-planner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F888krishnam%2Ftravel-planner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F888krishnam%2Ftravel-planner/lists"}