Тестовое задание. Каталог авто

Расскажу о тестовом задании для компании, в которую я устраивался на позицию Front-end developer, читай Junior Javascript developer.

В последнее время меня сильно заинтересовали инструменты React. js и Vue.js. Я сделал с их использованием Додо, несколько мелких проектов для тренировки и доделываю beProff.

Я понимаю, что весь основной опыт я быстро получил в офисе, почему?

На первой должности верстальщика в компании я начинал с нуля и был единственным, кто верстает.

Я не из тех, кто говорит что не умеет или не может. Руководитель ставил задачу сделать — я рыл землю зубами и находил решение, а задачи были интересные и сложные.

В офисе ты не скажешь что ты не хочешь делать задачу, тебе ее поставили, ты обязан ее выполнить. Поэтому опыт набирается так быстро.

Перед тем как устроится туда, я перебирал бесплатные макеты для тренировки и при выборе если находил что-то сложное, я «сливался». Придумывал причину, по которой не буду верстать этот проект.

Та же ситуация у меня сейчас с React/Vue. Я хочу получить много опыта, но понимаю, что на фрилансе этот опыт будет идти медленно и планирую устроиться на работу в какую-нибудь московскую компанию.

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

Так, да, тестовое задание.

На входе мне дали:
— картинку как должно выглядеть
— файл с автомобилями (массив)
— координаты пользователя на карте (расскажу зачем чуть позже)

Прежде чем читать, думаю лучше посмотреть каталог вживую, он адаптивен для мобильных.

Ссылка: https://dev-postnov.ru/works/vue-apps/auto-catalog/

Как посмотришь — возвращайся, я жду.

Нужно сделать каталог автомобилей. В каталоге предусмотрена сортировка по цене и удаленности от дилера.

С удаленностью интересная штука. В файле с автомобилями в графе «дилер» у каждой машины не удаленность, нет

там координаты на карте.

Из этого вытекает задача — нужно для дилера каждой машины просчитать расстояние от пользователя по заданным координатам и записать их в начальные данные дилера. А потом сортировать по этой удаленности.

Это лучшая часть тестового задания, которая качнула мой скилл еще больше.

Едем дальше.

У каждой машины есть особенности:
— 2 руля
— металл кузова: чугун
— и т. д.

И вот эти особенности нужно показывать не полностью, всего 3 штуки, а остальные, сколько бы их ни было, нужно спрятать и сделать кнопку «показать X особенностей».

X — количество оставшихся особенностей. Тут вроде все просто: показать 3, остальные скрыть, а в X записать количество всех особенностей — 3.

Вроде бы все, а нет, задача на этом не заканчивается. Когда я запустил код и просмотрел текст, увидел такие: «Показать 4 особенностей».

Не вяжется.

Слово «особенностей» должно содержать правильное окончание в зависимости от количества: «особенностей», «особенности», «особенность». И для этого я припрятал код еще когда делал время для чтения статьи

После выполнения задания я решил добавить от себя поиск, но не просто по названию машины, а еще по названию, адресу, городу дилера.

Все проверить и пощелкать на сайте: https://dev-postnov.ru/works/vue-apps/auto-catalog/.

Github для разработчиков: https://github.com/Postnov/auto-catalog

Улучшаем «Додо рифма»

Продолжаем улучшать сайт с рифмами и теперь на вкладке «все рифмы» добавился поиск по рифмам.

Теперь можно легко найти рифму которую вы заприметили, но упустили или посмотреть сколько лайков набрала ваша.

Поиск сбрасывается при клике на кнопки сортировки и крестик в поле ввода.

Хорошо то, что на поиск не тратится время, все рифмы моментально сортируются при каждом вводе букв в поле.

Додо рифма

Пришло время рассказать о сайте Додо Рифма.
http://dodo-crambo.ru

Кто был в пиццерии Додо в последнее время, замечал на экранах рифмы, которые оканчиваются на «А доставка — Додо пицца».

Нам с Лизой это нравилось и мы иногда придумывали какие-то рифмы, жаль только некуда их было написать.

И вот придумав очередную рифму, я подумал: «А почему бы не сделать сайт с рифмами, где каждый может выложить свою рифму».

Сейчас я активно изучаю язык программирования JavaScript и инструмент под названием Vue.js. В целях практики я решил сделать такой сайт на Vue. js с использованием базы данных от Google Firebase.

Если не поняли что такое JavaScript, Vue, Google Firebase — не волнуйтесь, это не так важно.

Мне нужно было использовать название «Додо» и вторую часть рифмы «А доставка Додо пицца», я не знал как отнесутся к этому в компании. Через пять минут после возникновения идеи я уже писал основателю Додо Пицца (Фёдору Овчинникову) по поводу этого. Ему идея понравилась и он дал добро на использование рифмы и названия.

Логотип и шрифт я использовать не стал, в конце концов это не проект Додо.

В итоге было создано пять страниц проекта:
— слайдер с рифмами
— все рифмы в виде списка
— добавление рифмы
— страница авторизации
— страница модерирования

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

Вы можете внести вклад в этот проект, немного помочь мне и добавить какую-нибудь рифму, поставить лайк понравившейся или просто полистать слайдер.

Нужно протестировать сайт прежде чем Фёдор расскажет о нем у себя на странице.

Адрес сайта: http://dodo-crambo.ru

Есть идея, замечание? Напиши об этом в комментарии или мне в личку.