Skip to content

TravelHub🛩️- Travel and Accommodation Booking Platform. To use the app as user -> (user: user & pass: user). To use it as an admin -> (user: admin & pass: admin)

Notifications You must be signed in to change notification settings

dohmeid/travel-accommodation-booking-platform

Repository files navigation


🛩️ TravelHub 🛩️

Travel and Accommodation Booking Platform - Your Ultimate Gateway to Unforgettable Adventures! ⚡ ✨


image

🌟 What is TravelHub?

TravelHub is an all-in-one travel booking platform developed with React and TypeScript, aimed at delivering a seamless and user-friendly experience for finding and booking accommodations. The application boasts an easy-to-navigate interface with powerful features that serve both travelers and administrators. Users can look for hotels, access detailed information, and make reservations, while the admin panel facilitates efficient management of cities, hotels, and rooms.

📄 Table of Contents

🌟 What is TravelHub?
📄 Table of Contents
🕰️ Project Management and Tracking
🖌️ Website Design
👾 Technologies Used
🎯 Features
👁️ Website Pages
🛠️ Installation
🏅 Acknowledgements
📩 Contact

🕰️ Project Management and Tracking

For the development process of TravelHub, I utilized Linear.app, a project management tool designed to help track tasks, deadlines, and overall progress. Below is the workflow overview:

  1. Workspace Creation: I created a new workspace in Linear specifically for the TravelHub project.
  2. Timeline Setup: I established the start and expected finish times for the application development.
  3. Milestones Definition: Major milestones were defined along with deadlines for each. Breaking the project into manageable tasks simplifies tracking and management.
  4. Development Process: I initiated the development by implementing the first milestone, followed by subsequent ones.
  5. Task Management: Each new milestone was divided into multiple issues or 'todos,' which I implemented sequentially until the milestone was completed.
    Below is a snapshot of the workspace showing the project details and major milestones. image

🖌️ Website Design

Below are the key components and resources used in the design process:

  • Initial Flow: the initial flow of the website was outlined by FTS, which can be viewed here -> Excalidraw Flow image

  • Icons: Bootstrap Icons were used throughout the website for a cohesive visual language. You can view the available icons here -> Bootstrap Icons

  • Typography: Google Fonts was used for the website's typography, incorporating the following fonts:

    • Main Font: "League Spartan"
    • Secondary Font: "Montserrat"
      You can explore the font options here: Google Fonts
  • Color Reference: the following color palette was utilized in the design to create a harmonious visual identity:

Color Hex
Primary Color #b25e39 #b25e39
Secondary Color1 #f3f3f3 #f3f3f3
Secondary Color2 #bebfb5 #bebfb5
Secondary Color3 #b28e6a #b28e6a
Secondary Color4 #473d3a #473d3a
  • Prototyping: Figma was utilized to create the initial design for TravelHub. You can explore the design by following this link -> Figma Prototype image

👾 Technologies Used

This project utilizes a variety of modern technologies and libraries to create a robust and efficient web application. The following technologies are used in TravelHub:

Frontend Technologies

  • React: A JavaScript library for building user interfaces.
  • TypeScript: A superset of JavaScript that adds static types for better development experience and code quality.
  • React Router DOM: A routing library for managing navigation and rendering different components based on the URL.
  • Axios: A promise-based HTTP client for making API requests.
  • Formik: A library for building forms in React with easy validation and state management.
  • Yup: A schema builder for value parsing and validation.
  • Date-fns: A library for date manipulation and formatting.
  • Leaflet: A JavaScript library for interactive maps.
  • React-Leaflet: A React wrapper for Leaflet to easily integrate maps into React applications.

Development Tools

  • ESLint: A tool for identifying and fixing problems in JavaScript/TypeScript code.
  • Prettier: A code formatter that enforces a consistent style.
  • React Scripts: Scripts for running and building React applications.

Testing Libraries

  • React Testing Library: A set of utilities for testing React components.
  • Jest: A JavaScript/TypeScript testing framework for unit testing components and functions.
  • Jest-DOM: Custom matchers for Jest to test the state of the DOM.

Other Dependencies

  • JWT Decode: A library for decoding JSON Web Tokens.
  • jsPDF: A library for generating PDF documents in JavaScript.
  • React Error Boundary: A React component for handling errors in the component tree gracefully.

🎯 Features

  1. 🎨 User-Friendly Interface
    TravelHub offers a clean, intuitive interface that enhances the user experience for both travelers and administrators. The streamlined booking process ensures easy navigation and hassle-free reservations for users of all backgrounds.

  2. 📱 Responsive Design
    The platform is fully responsive, providing optimal performance across all screen sizes. Whether on desktops, tablets, or mobile devices, users can expect a consistent and enjoyable experience without compromising functionality or aesthetics.

  3. 🤝 Accessibility
    TravelHub is designed with inclusivity in mind, adhering to accessibility standards. The platform is optimized for screen readers, ensuring that users with special needs can navigate and utilize its features effectively.

  4. 🔒 Secure System
    Best-in-class security practices are implemented throughout TravelHub. Protected routing ensures that only authenticated users can access the platform. Regular users are directed to user-specific pages, while administrators have secure access to the admin portal, safeguarding sensitive information.

  5. Graceful Error Handling
    TravelHub enhances the user experience by providing clear and informative feedback during operations. Users receive success notifications for completed actions and error alerts when issues arise. The application also effectively handles HTTP errors, such as:

    • 401 (Unauthorized) -> Displays a dedicated page for this error.
    • 404 (Page Not Found) -> Displays a dedicated page for this error.
    • 500 (Server Error) -> Uses an error boundary to catch unexpected errors and displays a specific page with a "Try Again" option, allowing users to attempt their actions once more.
  6. 🏠 Dynamic Home Page
    TravelHub offers a visually captivating homepage designed to engage users from the start. Key sections include:

    • Featured Deals: Showcases special hotel offers with star ratings and essential details for quick and easy comparison.
    • Recently Visited Hotels: A personalized section displaying the last hotels a user visited, making it convenient to revisit or book again.
    • Trending Destinations: A curated list of popular cities, presented with attractive visuals to spark interest and inspire travel plans.
  7. 🔍 Robust Search Functionality
    TravelHub provides a powerful and user-friendly search experience with:

    • Central Search Bar: Allows users to easily find hotels, with an interactive calendar for selecting check-in and check-out dates.
    • Guest and Room Controls: Users can specify the number of adults, children, and room preferences.
    • Infinite Scroll: Displays search results on a dedicated page with seamless infinite scrolling, allowing users to browse hotels without page reloads.
    • Comprehensive Filters: Advanced filtering options for refining search results by price range, star rating, amenities, and room types, ensuring users find exactly what they’re looking for.
  8. 🛠️ Detailed Hotel Pages
    Each hotel has a dedicated page packed with all the information a user needs to make an informed booking decision, including:

    • High-Quality Image Galleries: Featuring fullscreen view options for an immersive visual experience.
    • Comprehensive Information: Detailed descriptions, guest reviews, and an interactive map highlighting nearby attractions.
    • Available Rooms: Users can view room descriptions, images, and prices, with an easy "Add to Cart" option for booking.
  9. Secure Checkout Process
    TravelHub ensures a smooth and secure checkout experience by providing:

    • Cart Overview: A checkout page displaying all selected rooms with options to remove any, alongside a summary of total items and price.
    • User-Friendly Forms: Simple forms for entering personal and payment details securely.
    • Booking Confirmation: Upon completion, users are directed to a confirmation page that provides booking details, including confirmation number, hotel address, and total price, with the option to save the booking confirmation as a PDF.
  10. 📈 Comprehensive Admin Portal

    • Intuitive Management Tools: TravelHub includes an admin portal designed for easy management of the website’s content and data.
    • Detailed Grids: Provides a clear overview of all data, allowing admins to view, update, create, or delete entities with ease, ensuring the website remains up-to-date and well-maintained.

👁️ Website Pages

You can access a live demo of this application here -> https://travelhub-dohmeid.netlify.app/

  1. Login page image

  2. Home page image image image image

  3. Search Page image

  4. Hotel Page image image image image

  5. Cart & Checkout Page image

  6. Booking Confirmation Page image Booking Confirmation Pdf image

  7. Admin Page - manage cities image

  8. Admin Page - manage hotels image

  9. Admin Page - manage rooms image

    Delete item image

    Add item image image

    Update item image image

  10. Unauthorized Error Page - 401 http error image

  11. Page Not Found Error Page - 404 http error image

  12. Unexpected Error Page image

🛠️ Installation

The used Node version in this app is -> Node.js v20.12.2. To run TravelHub locally, follow these steps:

  1. Clone the repository: git clone https://github.com/dohmeid/travel-accommodation-booking-platform.git
  2. Navigate to the project directory:   cd travel-accommodation-booking-platform
  3. Install the required dependencies from package.json npm install
  4. Start the development server using: npm start
  5. Once the server is running, open your web browser and navigate to http://localhost:3000 to view the application.

Running tests - if you want to run the tests for TravelHub, follow these steps:

  1. Ensure dependencies are installed
  2. Run the test suite npm test

Test Results image

Now, you are ready to explore and contribute to the TravelHub project!

🏅 Acknowledgements

TravelHub was created as the capstone project for my Front-End Development internship at Foothill Technology Solutions. This project incorporates all the skills and technologies I acquired during this experience. I extend my gratitude to FTS for offering this incredible opportunity and providing guidance and support throughout the process.

📩 Contact

If you have any questions or comments about TravelHub, please contact [Doha Hmeid] via doha.hmeid@gmail.com.



❤️ Happy Coding ❤️



Releases

No releases published

Packages

No packages published

Languages