Nova Travel is a user-friendly online travel and tourism management website that is very helpful in finding your dream spot to visit.
Visit the live site: Nova Travel.
My Category: Southeast Asia
Website Features and Characteristics
-
Navbar:
- Contains website name and routes to various sections.
- Conditional display of login, register, logout, and profile picture based on user logged in or not.
- Conditional display of "My List" and "Add Tourist Spot" based on user login status.
-
Login Page:
- Email and password-based login with Firebase authentication.
- Options for login with Google and GitHub.
-
Register Page:
- Registration form with email, name, photoURL, and password fields.
- Password validation with RegEx for complexity.
- Checking min 6 length of character at least one uppercase and lowercase character.
-
Home Page:
- Includes navbar, slider, tourist spots section, countries section, travel spot gallery, and What people says.
-
Add Tourist Spot Page:
- Private route accessible after login.
- Form for adding tourist spots with various details.
- Redirects to login page if accessed without authentication.
-
All Tourist Spot Page:
- Displays tourist spots added by users in card format.
- Dropdown menu for sorting based on average cost.
- Private route accessible after login.
-
View Details Page:
- Private/protected route displaying details of a tourist spot.
-
My List Page:
- Private/protected route displaying user-added spots in a tabular format.
- Options for spot deletion and update.
- Delete button show a confirmation message after delete.
-
Update Page:
- Private route Form for updating tourist spot details.
-
Footer and Navbar:
- Persistent across all pages except 404 page.
-
404 Not Found Page:
- Added for handling invalid routes.
-
Loading and Spinner:
- Implemented to indicate loading state.
-
Countries Section:
- Displays information about 6 countries in card format.
- Clicking on a country card shows tourist spots of that specific country.
-
Dark and Light Theme:
- Toggle button for light and dark mode for user preference.
-
Dynamic Title and Scroll Restoration:
- Enhancements for better user experience.
Before you begin, ensure you have met the following requirements:
- Node.js: Install Node.js (version 14 or higher) from nodejs.org.
- npm: Node.js package manager (npm) should be installed along with Node.js.
- Git: Install Git from git-scm.com.
Follow these steps to get your development environment set up:
-
Clone the repository:
git clone https://github.com/HunterMahmud/nova-tourism-client.git cd nova-tourism-client
-
Install dependencies:
npm install
-
Set up environment variables:
Create a
.env.local
file in the root of the project and add the necessary environment variables. For example:VITE_APIKEY = your_api_key VITE_AUTHDOMAIN = your_auth_domain VITE_PROJECTID = your_project_id VITE_STORAGEBUCKET = your_storage_bucket VITE_MESSAGINGSENDERID = your_messaging_sender_id VITE_APPID = your_app_id VITE_API_BASE_URL = your_api_base_url
Replace the placeholders with your actual Firebase configuration values.
To start the development server, run:
npm run dev
This will start the Vite development server and you can view the application in your browser at http://localhost:5173
.
To create a production build, run:
npm run build
This will bundle the application for production.
To preview the production build locally, run:
npm run preview
To lint the codebase, run:
npm run lint
- Hasan Al Mahmud