This project is a Camper Rental App built with React and Redux, designed for users to explore, filter, and book campervans easily. Users can browse a catalog of campers, filter by features, add favorites, and book their chosen camper directly through the app. The app includes a user-friendly interface with a date picker for booking, customizable themes, and real-time notifications for booking confirmations.
- Home Page with a CTA to explore the catalog
- Catalog with filter options for location, type, and features
- Detailed Camper Page with camper specifications, reviews, gallery, and a booking form
- Favorites Management to add or remove campers from a saved list
- Dynamic Loadingof more campers in the catalog
- Notifications for successful bookings
- Home Page: / - Banner and main CTA to catalog
- Catalog Page: /catalog - Displays all campers with filtering options
- Camper Details Page: /catalog/:id - Detailed camper info, reviews, gallery, and booking form
Dependency | Description |
---|---|
React | JavaScript library for building user interfaces |
Vite | modern frontend build tool |
Redux Toolkit | State management library, optimized for simplicity and performance |
react-redux | React bindings for Redux |
react-router-dom | Routing |
Axios | HTTP client for API requests |
react-datepicker | Date picker component for selecting booking dates |
react-helmet-async | Head management for SEO |
react-hot-toast | Notification library |
react-loader-spinner | Loading spinner to indicate async data fetching |
localStorage | To persist user favorites across sessions |
styled-components | CSS-in-JS library for styling components |
The frontend interacts with a mock API for campervan data, accessible at Mock API, with the following main endpoints:
- GET /campers - Retrieve all camper listings (supports filters)
- GET /campers/:id - Retrieve detailed info for a specific camper
- Clone the repository: git clone
- Install dependencies: npm install
- Run the app: npm run dev (uses Vite bundler)
- View the application in your web browser: Open http://localhost:5173
- Deployment: Ready for Vercel
This project is licensed under the MIT License.