Skip to content

KateMoro/Six-Cities

Repository files navigation

Проект «Шесть городов»

Cервис для путешественников, не желающих переплачивать за аренду жилья. Выбирайте один из шести популярных городов для путешествий и получайте актуальный список предложений по аренде. Подробная информация о жилье, показ объекта на карте, а также лаконичный интерфейс сервиса помогут быстро выбрать оптимальное предложение.

Описание функциональности

Страницы приложения

Приложение состоит из нескольких страниц:

  • Main ( / )
  • Sign In ( /login )
  • Favorites ( /favorites )
  • Room ( /offer/:id )

Страница Favorites доступна только авторизованным пользователям.

В шапке каждой страницы отображается ссылка на страницу «Sign In» (если пользователь не авторизован) или email пользователя и кнопка «Sign Out» (если пользователь авторизован). Клик по email пользователя в шапке выполняет переход на страницу «Favorites». Клик по кнопке «Sign Out» приводит к завершению сеанса работы — выходу из закрытой части приложения.

Обращение к несуществующей странице перенаправляется пользователя на страницу «404».

Главная страница

На главной странице отображается список городов, для которых возможно запросить предложения по аренде: Paris , Cologne , Brussels , Amsterdam , Hamburg , Dusseldorf. Сервер всегда возвращает информацию только для этих шести городов.

В заголовке списка предложений отображается количество доступных предложений. На карте предложения отображаются в виде синих маркеров.

Клик по кнопке «Избранное» добавляет карточку в избранное. Повторный клик по кнопке «Избранное» выполняет обратное действие — удаляет из избранного. Если пользователь не авторизован, то выполняется перенаправление на страницу «Sign In».

Список предложений

Пользователь может менять сортировку списка предложений. Варианты сортировки:

  • Popular Вариант по умолчанию.
  • Price: low to high От дешёвых к дорогим.
  • Price: high to low От дорогих к дешёвым.
  • Top rated first От высокого рейтинга к низкому.

Каждая карточка в списке предложений содержит информацию:

  • Фотография жилья.
  • Метка «Premium».
  • Стоимость за ночь.
  • Заголовок.
  • Краткое описание предложения.
  • Тип жилья. Одно из нескольких значений: apartment, room, house, hotel.
  • Кнопка «Избранное».
  • Рейтинг. Максимальное количество звёзд — 5.

Клик по заголовку карточки выполняет переход на страницу с подробной информацией о предложении.

Страница предложения

На странице предложения ( /offer ) представлена расширенная информация об объекте для аренды:

  • Фотографии. Выводится до 6-ти изображений.
  • Заголовок.
  • Подробное описание.
  • Премиальность.
  • Тип жилья.
  • Рейтинг. Максимальное количество звёзд — 5.
  • Количество спален .
  • Максимальное количество гостей.
  • Стоимость аренды за ночь. Сумма всегда отображается в евро.
  • Список бытовых предметов в квартире.
  • Информация о хозяине: аватарка, имя, отметка pro (звёздочка возле аватарки) и подпись Pro под именем хозяина.

Отзывы пользователей. В заголовке блока отображается общее количество отзывов. Количество отзывов в заголовке должно соответствовать количеству отображаемых отзывов.

Под списком отзывов отображается карта с предложениями неподалёку. Маркеры предложений выделены синим. Маркер текущего предложения выделен оранжевым. Карточки представленных предложений отображаются сразу под картой и содержат тот же набор информации, что и на главной странице.

Отзывы

Каждый отзыв содержит:

  • Аватар автора.
  • Имя автора.
  • Оценку.
  • Дата отзыва в формате: Месяц Год.
  • Текст отзыва.

На страницу выводится не больше 10 отзывов. Отзывы отсортированы от новых к старым (новые сверху).

Форма отправки отзыва

Форма отправки отзыва отображается только для авторизованных пользователей. Пользователь должен выставить рейтинг (от 1 до 5). Текст отзыва должен содержать от 50 до 300 символов. Пока пользователь не выбрал оценку и не ввёл текст допустимой длины, кнопка отправки отзыва не активна. При нажатии кнопки «Submit» вся форма блокируется. Разблокировка формы и кнопки происходит в случае успешной отправки или при возникновении ошибки. В случае успешной отправки отзыва форма очищается.

Страница Sign In

Для входа в сервис пользователь вводит логин (email) и пароль. Поскольку у сервиса отсутствует возможность регистрации, логин и пароль могут быть любыми, но не пустыми. В поле «логин» должен вводится корректный email. В поле «пароль» должен вводится валидный пароль. Под валидным паролем подразумевается пароль, который состоит минимум из одной буквы и цифры.

Favorites

Страница «Favorites» доступна только авторизованным пользователям. Данные для страницы «Favorites» всегда загружаются с сервера. Для этого предусмотрен отдельный маршрут. Предложения группируются по городам. Если пользователь не добавил ни одного предложения в избранное, то на странице отображается «Nothing yet saved». На странице «Favorites» пользователь может удалить предложение из избранного. После удаления предложения из избранного, список предложений актуализируется (удалённое предложение пропадает).