{"id":21512276,"url":"https://github.com/huntermahmud/nova-tourism-client","last_synced_at":"2026-04-18T06:01:57.373Z","repository":{"id":246304150,"uuid":"808546514","full_name":"HunterMahmud/nova-tourism-client","owner":"HunterMahmud","description":"A full stack travel and tourism management website. Add spot, All spot, manage spot, spot list, update delete spot.","archived":false,"fork":false,"pushed_at":"2024-07-02T05:11:44.000Z","size":151,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-24T01:46:45.911Z","etag":null,"topics":["dark-light-mode","firebase","html5","reactjs","tailwindcss","user-authentication"],"latest_commit_sha":null,"homepage":"https://nova-tourism.web.app/","language":"JavaScript","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/HunterMahmud.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}},"created_at":"2024-05-31T09:43:23.000Z","updated_at":"2024-09-30T05:34:02.000Z","dependencies_parsed_at":"2024-06-27T04:41:41.218Z","dependency_job_id":"6808cdee-0ebf-4bfc-8134-c1cd7bb41c21","html_url":"https://github.com/HunterMahmud/nova-tourism-client","commit_stats":null,"previous_names":["huntermahmud/nova-tourism-client"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HunterMahmud%2Fnova-tourism-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HunterMahmud%2Fnova-tourism-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HunterMahmud%2Fnova-tourism-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HunterMahmud%2Fnova-tourism-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HunterMahmud","download_url":"https://codeload.github.com/HunterMahmud/nova-tourism-client/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244057017,"owners_count":20390815,"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":["dark-light-mode","firebase","html5","reactjs","tailwindcss","user-authentication"],"created_at":"2024-11-23T22:31:28.741Z","updated_at":"2026-04-18T06:01:57.202Z","avatar_url":"https://github.com/HunterMahmud.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nova Travel\n\n**Nova Travel** is a user-friendly online travel and tourism management website that is very helpful in finding your dream spot to visit.\n\n**Visit the live site:** [Nova Travel](https://nova-tourism.web.app/).\n\n[Server side repository](https://github.com/HunterMahmud/nova-tourism-server)\n\n**My Category:** Southeast Asia\n\n**Website Features and Characteristics**\n\n1. **Navbar:**\n\n   - Contains website name and routes to various sections.\n   - Conditional display of login, register, logout, and profile picture based on user logged in or not.\n   - Conditional display of \"My List\" and \"Add Tourist Spot\" based on user login status.\n\n2. **Login Page:**\n\n   - Email and password-based login with Firebase authentication.\n   - Options for login with Google and GitHub.\n\n3. **Register Page:**\n\n   - Registration form with email, name, photoURL, and password fields.\n   - Password validation with RegEx for complexity.\n   - Checking min 6 length of character at least one uppercase and lowercase character.\n\n4. **Home Page:**\n\n   - Includes navbar, slider, tourist spots section, countries section, travel spot gallery, and What people says.\n\n5. **Add Tourist Spot Page:**\n\n   - Private route accessible after login.\n   - Form for adding tourist spots with various details.\n   - Redirects to login page if accessed without authentication.\n\n6. **All Tourist Spot Page:**\n\n   - Displays tourist spots added by users in card format.\n   - Dropdown menu for sorting based on average cost.\n   - Private route accessible after login.\n\n7. **View Details Page:**\n\n   - Private/protected route displaying details of a tourist spot.\n\n8. **My List Page:**\n\n   - Private/protected route displaying user-added spots in a tabular format.\n   - Options for spot deletion and update.\n   - Delete button show a confirmation message after delete.\n\n9. **Update Page:**\n\n   - Private route Form for updating tourist spot details.\n\n10. **Footer and Navbar:**\n\n    - Persistent across all pages except 404 page.\n\n11. **404 Not Found Page:**\n\n    - Added for handling invalid routes.\n\n12. **Loading and Spinner:**\n\n    - Implemented to indicate loading state.\n\n13. **Countries Section:**\n\n    - Displays information about 6 countries in card format.\n    - Clicking on a country card shows tourist spots of that specific country.\n\n14. **Dark and Light Theme:**\n\n    - Toggle button for light and dark mode for user preference.\n\n15. **Dynamic Title and Scroll Restoration:**\n    - Enhancements for better user experience.\n\n## Prerequisites\n\nBefore you begin, ensure you have met the following requirements:\n\n- **Node.js**: Install Node.js (version 14 or higher) from [nodejs.org](https://nodejs.org/).\n- **npm**: Node.js package manager (npm) should be installed along with Node.js.\n- **Git**: Install Git from [git-scm.com](https://git-scm.com/).\n\n## Installation\n\nFollow these steps to get your development environment set up:\n\n1. **Clone the repository**:\n\n   ```sh\n   git clone https://github.com/HunterMahmud/nova-tourism-client.git\n   cd nova-tourism-client\n   ```\n\n2. **Install dependencies**:\n\n   ```sh\n   npm install\n   ```\n\n3. **Set up environment variables**:\n\n   Create a `.env.local` file in the root of the project and add the necessary environment variables. For example:\n\n   ```env.local\n   VITE_APIKEY = your_api_key\n   VITE_AUTHDOMAIN = your_auth_domain\n   VITE_PROJECTID = your_project_id\n   VITE_STORAGEBUCKET = your_storage_bucket\n   VITE_MESSAGINGSENDERID = your_messaging_sender_id\n   VITE_APPID = your_app_id\n   VITE_API_BASE_URL = your_api_base_url\n   ```\n\n\nReplace the placeholders with your actual Firebase configuration values.\n\n## Usage\n\n### Development Server\n\nTo start the development server, run:\n\n```sh\nnpm run dev\n````\n\nThis will start the Vite development server and you can view the application in your browser at `http://localhost:5173`.\n\n### Build\n\nTo create a production build, run:\n\n```sh\nnpm run build\n```\n\nThis will bundle the application for production.\n\n### Preview\n\nTo preview the production build locally, run:\n\n```sh\nnpm run preview\n```\n\n### Lint\n\nTo lint the codebase, run:\n\n```sh\nnpm run lint\n```\n\n## Author\n\n- Hasan Al Mahmud\n\n\u003c!-- **NPM Packages Used in the Project:**\n\n- **1. aos:** Animates elements or components.\n- **2. axios:** Manages HTTP requests (GET, POST, PATCH) and responses.\n- **3. dotenv:** Hides configuration secrets.\n- **4. firebase:** Handles authentication.\n- **5. react-helmet-async:** Dynamically sets page titles.\n- **6. react-hook-form:** Manages forms efficiently.\n- **7. react-icons:** Displays React icons.\n- **8. react-leaflet:** Integrates maps.\n- **9. react-simple-typewriter:** Creates typewriter effects for text.\n- **10. react-toastify:** Shows toast notifications for success or failure messages.\n- **11. react-tooltip:** Displays tooltips.\n- **12. sweetalert2:** Presents alerts.\n- **13. swiper:** Implements image sliders. --\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhuntermahmud%2Fnova-tourism-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhuntermahmud%2Fnova-tourism-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhuntermahmud%2Fnova-tourism-client/lists"}