Проект RAID – командный роудмап
Приложение опубликовано, используя сервис Netlify. Адрес здесь.
MVP сервиса доски объявлений по длительной аренде жилья для релокации. Минимальная версия сервиса будет позволять просматривать список, просматривать карточку, фильтровать и просматривать контакты арендатора. Фронтенд и бэкенд должны быть развернуты на разных серверах. Для ведения проекта используются два разных репозитория – для фронтенда и бэкенда.
Макет доступен здесь
Верстка
Разрешение – мобильное. При достижении размера вьюпорта в 380 px, контейнер ограничивает ширину интерфейса. Адаптация под другие разрешения не требуется.
Интерактив
- При нажатии на “подобрать” раскрывается фильтр
- При фильтрации выполняется запрос на фетч
- При нажатии на Подробную информацию она показывается
- При нажатии назад происходит возврат назад
Работа с сервером
Oрганизовать загрузку данных с сервера:
- Всей ленты объявлений для главной страниц
- Списка объявлений с фильтром по городу и цене
- Подробной информации об объявлении
Как устроен фильтр
- В полях цены желательно ввести ограничения для ввода только чисел
- Ни одно из полей фильтра не является обязательным
- Кнопка поиска всегда активна
- фильтр работает при любом режиме заполненности полей
- В выпадающем поле локации сортируются по алфавиту. Названия из одинаковых стран идут рядом
База данных
- Создайте проект и разверните бойлерплейт
- Создайте модели для бд и наполните бд
Ключи модели и отдаваемого JSON:
pk: int # первичный ключ
title: str # название объекта
description: str # описание объекта
picture_url: str # путь к картинке
price: int # цена за месяц
country: str # страна
city: str # город
features_on: list[str] # что есть
features_off: list[str] # чего нет
host_name: str # имя хозяина
host_phone: str # телефон хоста
host_location: str # адрес хоста
Эндпоинты для списка
- Добавьте эндпоинт
GET /places
который возвращает все места - Добавьте к нему фильтрацию по городу
GET /places?city=<city>
- Добавьте к нему фильтрацию по цене
GET /places?from=1,to=1000
Эндпоинты для сущности
- Добавьте эндопоинт
GET /places/<pk>
который возвращает подробную информацию
Обработка ошибок
- Добавьте обработку 404, 500 ошибок на ваше усмотрение