Тестовое задание на позицию «Frontend разработчик Nuxt.js»
Средствами Vue.js реализуйте небольшое SPA приложение, которое состоит из 3 страниц: «Избранное», «Склад», «Сделки».
Ссылка на макет:
https://www.figma.com/file/esSprOWWWjJ1Gb7IoMHGmq/Untitled?node-id=0%3A1
Срок выполнения задания: 7 дней
Готовое задание выложить на GitHub или GitLab, и опционально залить на vercel или другой удобный хостинг.
Описание страниц:
Приложение запускается со страницы «Склад». На которой можно выполнить следующие действия:
Сортировка по типам предложений (Все, Аукцион, Прямые продажи);
Поиск по наименованию;
Добавить в сделки;
Добавить в избранное;
На странице «Сделки» выполняются следующие действия:
- Сортировка по типам предложений (Все, Аукцион, Прямые продажи);
Оплатить;
Добавить в избранное;
На странице «Избранное» выполняются следующие действия:
- Сортировка по типам предложений (Все, Аукцион, Прямые продажи);
Оплатить;
Добавить в сделки;
Описание карточки предложения:
Карточки предложений включают в себя следующие пункты:
Изображение товара;
Тип Предложения: аукцион или разовое предложение( относится к прямым продажам);
Название товара;
Город (в котором находится товар);
Продавец (название компании);
Вид товар;
Описание товара;
Цена товара;
Количество товара;
Задачи:
Создать компонент «Карточка предложения» (Включает фейковые данные из JSON’a, предложений должно быть не меньше 10 штук);
Отобразить карточки предложений в разделе «Склад»;
Сортировка предложений (все, аукцион, прямые продажи);
Поиск в складе по названию товара;
Кнопка «Добавить в сделки» (по клику карточка добавляется в раздел «Сделки»);
Кнопка добавления предложения в избранное (по клику предложение добавляется в раздел «Избранное»);
Кнопка «Оплатить» в разделе «Сделки»;
Кнопка «Оплачено» в разделе «Сделки» (состояние disabled, после клика на кнопку «Оплатить»);
Требования к функционалу:
Все действия на сайте должны происходить без перезагрузки страницы;
В качестве сборщика используйте Webpack, если это необходимо;
Технические требования:
Использование следующего стека технологий: Vue 3 (Composition Api) + TypeScript;
Nuxt 3 - опционально;
State менеджер - pinia, допустимо использование vuex
Приложение должно быть разбито на разумное количество Vue - компонентов;
Адаптивность приветствуется, но не обязательна;
Верстка без использования css-фреймворков