-
Вы отправили резюме или с вами связался наш HR.
-
Получили ссылку на этот репозиторий.
=== Вы здесь ===
-
Ознакомились с заданием и решили тестовую задачу, в течение недели получили обратную связь от HR.
-
if всё 200, то пришли на очное собеседование, в течение недели получили обратную связь от HR.
-
Вы на испытательном сроке от 1 до 2 месяцев. Тут мы смотрим на вас, а вы — на нас :)
- Нельзя использовать готовые CLI или фреймворки типа Bootstrap, кроме раздела «Тестирование». Библиотеки для запросов и работы с localstorage разрешены.
- Структура приложения:
- build — папка с готовой сборкой:
- index.html — файл с разметкой и обработчиками;
- index.js — набор скриптов для работы приложения;
- index.css — стили для работы приложения.
- src — папка с исходниками файлов:
- styles — папка/файлы со стилями;
- js — папка/файлы js;
- image — папка/изображения для страницы.
- webpack.config.js — конфигурация webpack 4 / 5.
- babel.gulp.js — конфигурация gulp(при необходимости).
- package.json — набор зависимостей приложения.
- .eslintrc — правила для линтера JS исходников.
- .stylelintrc — правила для линтера SCSS исходников.
- .prettier — правила форматирования кода.
- build — папка с готовой сборкой:
- Результат нужно разместить в публичном репозитории Gitlab / Github.
- Предоставить ссылку HR-рекрутеру на публичный репозиторий.
- Если есть вопросы, их нужно задать, до начала выполнения задания.
- На выполнение задания отводится максимум 3 дня(24 часа).
Макет доступен по ссылке.
- При загрузке приложения, пользователь попадает на «Шаг 1».
- Выполняется запрос с fake-базе(можно использовать любую базу/библиотеку), которая отдает коллекцию из N объектов АТС.
- Получаем коллекцию и выводим список АТС.
- Кнопка перехода на следующий шаг заблокирована.
- Пользователь может выбрать только одну из АТС. Пункт "У меня нет АТС", считается отдельным пунктом.
- Выбранная АТС подсвечивается при помощи CSS стиля.
- Приложение должно запомнить выбор пользователя.
- Кнопка перехода на следующий шаг становится активна.
- Пользователь нажимает на кнопку «Перейти к следующему шагу»:
- Отправляется ajax типа POST к fake-базе и получает всегда положительный(200) ответ .
- Пользователь попадает на «Шаг 2».
- На «Шаг 2» пользователь выводит результат fake-ответа из пункта 3.1.
- В шапке изменяется текущий номер шага и заголовок.
- Выводим fake-данные из результата ответа в пункте 3.1.
- Пользователь может изменить модель АТС на «Шаг 2»
- Пользователь может вернуться на «Шаг 1» нажав на «Подходящее решение».
- Пользователь может сменить АТС, отправляется запрос из пункта 3.1.
- В случае если пользователь сменил АТС на «Шаг 2» состояние приложения должно обновить его и на «Шаг 1». Смотри пункта 2.2.
- Подготовить конфигурацию webpack, которая будет собирать JS-файлы.
- Подготовить конфигурацию для ESlint.
- Подготовить конфигурацию для Stylelint.
- Подготовить конфигурацию для Prettier.
- Верстка должна быть выполнена по BEM, плюсом будет именование(block, block__element , block--modifier).
- На странице должны присутствовать все мета отвечающие за SEO.
- Страница должна содержать один из шрифтов: Roboto, Open Sans, Noto Sans.
- Стили описаны при помощи препроцессора SCSS.
- Адаптивность на усмотрение исполнителя, для проверки знаний, как это делается.
- Создать Vue приложение (2 или 3 версия).
- Допускается использование библиотек для реализации задачи.
- Реализовать логику которая описана в блоке «Описание работы приложения Vue»
- Написать минимум один Unit-test для проверки методов в приложения. Разрешено использовать любой фреймворк для тестов.
- Написать три E2E-test, которые будут проверять работу интерфейса:
- Тест 1 — проверяет наличие, минимум одной АТС в DOM.
- Тест 2 — проверяет, что кнопка «Перейти к следующему шагу» становится активна, если выбрана хотя бы одна АТС.
- Тест 3 — проверяет, что после клика на кнопку «Перейти к следующему шагу», пользователь увидел «Подходящее решение», фактическая разметка в DOM.
- Работу сборки и линтеров.
- Реализацию верстки и ее соответствие макету.
- Как реализована логика и какие библиотеки использовались для решения задачи.
- Навыки работы с ajax и хранение данных в рамках приложения.
- Как реализована структура коллекции с данными.
- Можно ли масштабировать код, например добавив еще N шагов.
- Работу тестов.
Не проблема. Уже делали задачи похожие на эту — просто покажите код :)
Сколько времени отведено на решение задачи?
На задачу отведено 3 дня. Middle сделает эту задачу за 16 часов. Да, да. Мы брали middla и проверяли.
Почему такое сложное задание?
Задание не сложное, оно позволяет проверить, действительно ли вам хватает навыков до middle. Ведь оклад вы просите не маленький ?:)
Мне заплатят за него?
Нет. Почему? Это тестовое задание.
А вдруг это реальная задача и вы хотите использовать мой код?
Мы не будем использовать ваш код, а только проверим навыки. Данная задача уже решена нашими джунами и это только ее маленькая часть.