Full Stack React Project: "Wild Retreats"

This repository contains the code for "Wild Retreats," a full-stack React project. "Wild Retreats" is a web application that offers a comprehensive platform for managing cabins, bookings, and user profiles. This README provides an overview of the project's key features and the libraries used to create them.

Table of Contents

Introduction

"Wild retreats" is a web application that simplifies the management of cabins and bookings. It offers a user-friendly interface for users to browse available cabins, make bookings, and customize their user profiles.

Getting Started

To run this project locally, follow these steps:

  1. Clone this repository.
  2. Install the project's dependencies using npm install.
  3. Set up your database using Supabase. You can refer to the section on database setup in the course content.
  4. Configure the project to connect to your Supabase instance.
  5. Start the development server using npm start.

Features

"Wild Retreats" offers a wide range of features, including:

Styling

  • Styled components
  • Dark and Light mode

Cabins Management

  • Browse available cabins
  • Create new cabins
  • Edit existing cabins
  • Delete cabins
  • Apply client-side filtering and sorting

Bookings Management

  • Make new bookings
  • Edit bookings
  • Check-in and check-out functionality
  • Apply client-side and API-side filtering, sorting, and pagination

User Authentication & Authorization

  • User login and signup
  • User logout
  • Password and profile updates
  • Route protection
  • Database security policies (RLS)

Reusable Components

  • Implement reusability using render props, higher-order components, and compound components.
  • Building a reusable table, modal, and pagination component.

Data Visualization

  • Display statistics and charts
  • Use the Recharts library to create line and pie charts
  • Error boundaries for a smooth user experience

Libraries Used

The project leverages several libraries to achieve its functionality, including:

  • React - A JavaScript library for building user interfaces.
  • Styled Components - CSS-in-JS library for styling components.
  • React Query - A data-fetching library for React.
  • React Hook Form - A library for managing form state and validation.
  • Supabase - An open-source alternative to Firebase for building backend applications.
  • Recharts - A charting library for React.

Screenshots

  • Login Page

Login Page

  • Dashboard-Dark

Dashboard Page

  • Dashboard-Light

Dashboard Page

  • Bookings Page

Bookings Page

  • Cabins Page

Cabins Page

  • User Profile Page

User Profile Page

Happy coding!