/SixCities

Six Cities is a web-based platform offering affordable rental options for travelers in six popular cities. It features user authentication, dynamic listing updates, interactive maps, and user reviews, all within a sleek, user-friendly interface.

Primary LanguageTypeScript

Node CI Maintainability Test Coverage

Six Cities

Six Cities is a sophisticated web application tailored for travelers seeking budget-friendly accommodation. It offers an efficient solution for finding rental properties in six popular cities. Developed with a modern tech stack, the service stands out with its user-friendly interface and detailed property listings.

Description

The Six Cities app provides a seamless experience for users to browse and choose rental accommodations. It features a variety of pages including Main, Login, Favorites (private), and Offer, each with unique functionalities:

  • Main Page: Showcases a list of cities and rental offers, with an interactive map and sorting options.
  • Login Page: Handles user authentication.
  • Favorites Page: Displays user-favorited listings, accessible only to authenticated users.
  • Offer Page: Offers detailed information about each rental property.

Additionally, the app handles undefined routes with a custom 404 page, enhancing the user experience.

Functionalities

  • Authentication: Manages user sessions and access to private pages.
  • Dynamic Listing: Updates rental offers and map markers based on the selected city.
  • User Reviews: Allows authenticated users to post reviews on rental properties.
  • Favorites Management: Enables users to add or remove properties from their favorites.

Technologies

Technologies Used

  • React & React DOM: For building the user interface.
  • Redux Toolkit & React Redux: For efficient state management.
  • Axios: For making HTTP requests.
  • Leaflet: To integrate interactive maps.
  • React Router DOM: For app routing and navigation.

Development Tools

  • Vite: For efficient bundling and development.
  • TypeScript: Ensuring type safety.
  • ESLint: Maintaining code quality.
  • Jest & Testing Library: For thorough testing of components and functionalities.

License

This project is licensed under the ISC License.