Задача: разработать приложение для работы с данными (продуктами). Необходимо вывести два списка: продукты полученные по api и продукты добавленный через форму. Страницы для отображения продукта, создание и редактирование продукта.
Для решения задачи необходимо использовать Redux. Для запросов к api необходимо использовать online json api. Можно использовать любой сервис. Например: https://fakestoreapi.com/ (Документация – ссылка).
Можно использовать ui библиотеки, библиотеки для работы с формой.
Будет оцениваться подход к заданию, качество и структура кода, внимательность.
Выложить на гитхаб. Сказать сколько примерно времени заняло.
API url – https://fakestoreapi.com/products
Приложение должно иметь небольшой layout с минимальным хедером приложения, контентом и навигацией.
Задача 1. Вывести список продуктов
На странице /products в отдельной табе вывести список продуктов.
- На странице /products вывести список карточек продуктов по несколько в ряд. Должны отображаться картинка, название и цена.
- Реализовать api запрос
- При первоначальной загрузке, вывести 8 продуктов
- Добавить три кнопки для загрузки разного количества товаров.
- кнопка – 8 продуктов
- кнопка – 16 продуктов
- кнопка – все продукты (или 20 штук)
- Сделать переходы на страницу продукта
Задача 2. Страница продукта
На странице /products/:id вывести более подробную информацию о продукте
Задача 3. Создание продукта
На отдельной странице реализовать создание продукта.
- Создать форму с полями: название, цена, описание, опубликован (чекбокс/свитч). Поля обязательные и с минимальной валидацией. Сохранить дату создания
- Использовать API запрос
- После успешной отправки формы, сохранить данные (введенные поля в форме) для вывода в списке.
Задача 4. Список созданных продуктов
На странице /products вывести таблицу созданных продуктов в отдельном табе. Важно иметь возможность переключаться между списками.
- Вывести таблицу продуктов со всеми полями.
- На этом табе добавить переключатель (switch), который будет фильтровать продукты, которые опубликованы и нет. Бонус: сделать переключать опубликованности на одном уровне с табами списков
- Список сохранятеся при перезагрузки страницы
- Добавить переход на экран редактирования продукта
Задача 5. Редактирование продукта
На отдельной странице реализовать редактирование продукта.
- Использовать api запрос
- Обновить список продуктов
Задача 6. Удаление продукта
На экране редактирования продукта и списка созданных продуктов реализовать удаление продукта.
- Необходимо использовать api запрос для эмуляции удаления
- Удаление на экране редактирования
- Удаление в таблице созданных продуктов
- Подтверждение удаления
Бонусы
Если поддерживает api service и др.
- Реализовать сортировку, пагинацию списоков
- Реализовать фильтрацию
- Реализовать поиск (без кнопки отправки)
- Реализовать минимальную авторизацию, которая дает доступ к страницам
Срок: 2 дня
Необходимо загрузить на свой сервер, а также на github для просмотра качества кода