Dapplets Project
Тестовое задание на вакансию “Frontend Developer”
О нас:
Dapplets Project - cтартап-криптоплатформа для приложений Augmented Web. Мы переносим идеи децентрализации и устойчивости на уровень визуального UI/UX традиционных сайтов.
Мы строим платформу Аугментированного веба, состоящую из браузерного плагина и децентрализованных приложений (дапплетов), основанных на крипто-технологиях.
Наша платформа создается в виде open-source framework для разработчиков со всего мира.
В ваши задачи будет входить:
разработка клиентской части веб-приложений с использованием React;вёрстка макетов из Figma;написание и отладка TypeScript/JavaScript кода, рефакторинг;взаимодействие с остальными участниками проекта (UI/UX, backend).
Оплата тестового задания
В случае вашего трудоустройства, выполнение тестового задания будет оплачено из расчета 3-х рабочих дней.
Тестовое задание:
Вы можете сделать тестовое задание частично.
-
СверстатьHayстраничкуqueпоimplementarмакетуuna página basada en el diseño de Figma (безsinпрелоадера)preloader)сusandoиспользованиемelфреймворкаframework Reactиyязыкаel lenguaje TypeScript:
Макет:Diseño:
https://www.figma.com/file/YGXq1mzXTTc4Rfwt5vxgUo
ПрезентацияPresentación макета:del diseño: https://www.figma.com/proto/YGXq1mzXTTc4Rfwt5vxgUo
Адаптивная вёрстка для desktop и mobile устройствRequisitos:Fuzzy and Live Search (живой фильтр)- Diseño
debounceadaptablecparaокончательнойdispositivosфильтрациейdeнаescritorioклиенте.y - Búsqueda
Серверdifusaможетyвернутьen“неподходящие” элементы, которые не попадают в фильтр. Их надо будет выкинуть и запросить еще пакет данных взамен выкинутых. Постраничный выводvivo (поfiltroмереenскроллинга)- Uso
el cliente.Обработкаdeсерверныхdebounceошибокcon(выводfiltradoвfinalобластьenсообщений) - El
elementos "no aptos" que no pasen el filtro. Estos deben ser descartados y se debe solicitar otro lote de datos para reemplazarlos.Обработкаservidorошибокpuedeскачиванияdevolverкартинок - Paginación
Состояние(aинтерфейсаmedidaсохранитьqueвse desplaza). - Manejo de errores del servidor (mostrar en el área de mensajes).
- Manejo de errores de descarga de imágenes.
- Estado de la interfaz guardado en LocalStorage (
installed/notinstalado/noinstalled) Drag & drop
deдляparaсортировкиordenarэлементовelementosспискаla
Привязать бэкендhttps://dapplets-hiring-api.herokuapp.com/
Результат тестового задания
Результатом тестового задания будет:
Пояснительная записка, какие пункты из ТЗ сделаны;- Conectar
Ссылка на опубликованный на Github проект; Ссылка на Live Demo проекта на любом хостинге (например, Netlify).
Готовое тестовое задание присылайте в HeadHunter.
Структура и функционал макета в Figma:
(другие элементы макета имплементировать не нужно)
Строка поиска + кнопка для направления сортировкиСтрока сообщений состояния и ошибок (в самом верху).Список плашек элементов спиcка (Items)UserGenerated IconТекст названия (1 строчка)Текст описания (мультилайн)Статичный тэги (несколько штук)Гибридная кнопка (статус/действие) с 2мя состояниями и rollover.Если приложение не установлено, то отображается "INSTALL".Если приложение установлено, то отображается "INSTALLED" и при наведении курсора мыши надпись должна поменяться на "UNINSTALL". Этот статус сохраняется в localstorage, чтобы после перезагрузки страницы он не сбросился.
Никаких приложений, конечно же, устанавливать не надо. Это только фронтенд.
По клику на элемент списка, открывается Аккордеон (открытие плашки приложения).
Драг и Дроп элементов списка (ручная пересортировка). В макете есть “область захвата”.Постраничная загрузка по мере скроллингаLoader с анимациейАдаптивность под Mobile и DesktopПеремещение блоков на разных устройствахСкрытие лишнего функционала на мобильных устройствах
Свойства Бэкенда
backend с HTTP APIВозвращает ссылки на картинки, расположенные на другом сервереКартинки могут быть недоступнымиМогут быть тяжёлымиСервер с картинками может долго отвечатьВозвращает список приложенийСерверная фильтрация*Серверная сортировка*Постраничная загрузка*Возвращает список теговМожет вернуть слишком длинный title или descriptionМожет долго отвечатьМожет возвращать ошибкиМожет отвалиться и вернуть невалидный ответСпецификация наel backend https://dapplets-hiring-api.herokuapp.com/- Enlace al proyecto publicado en Github.
Resultado de la prueba técnica:
Estructura y funcionalidad del diseño en Figma
(no es necesario implementar otros elementos del diseño):
- Barra de búsqueda + botón para ordenar.
- Barra de mensajes de estado y errores (en la parte superior).
- Lista de elementos (Items).
- Si la aplicación no está instalada, debe mostrarse "INSTALL".
- Si la aplicación está instalada, debe mostrarse "INSTALLED" y al pasar el cursor sobre el texto, debe cambiar a "UNINSTALL". Este estado se guarda en localstorage para que no se pierda al recargar la página.
- Icono generado por el usuario.
- Texto del nombre (una línea).
- Texto de descripción (multilínea).
- Etiquetas estáticas (varias).
- Botón híbrido (estado/acción) con 2 estados y rollover.
- Al hacer clic en un elemento de la lista, se abre un acordeón (desplegar la aplicación).
- Drag and drop de los elementos de la lista (reordenación manual). En el diseño hay una "zona de captura".
- Carga paginada a medida que se desplaza.
- Loader con animación.
- Adaptabilidad para dispositivos móviles y de escritorio.
- Movimiento de bloques en diferentes dispositivos.
- Ocultación de funcionalidades adicionales en dispositivos móviles.
Propiedades del Backend
- Backend con API HTTP.
- Las imágenes pueden no estar disponibles.
- Pueden ser pesadas.
- El servidor de imágenes puede tardar en responder.
- Filtrado en el servidor*.
- Ordenación en el servidor*.
- Carga paginada*.
- Devuelve enlaces a imágenes ubicadas en otro servidor.
- Devuelve una lista de aplicaciones.
- Devuelve una lista de etiquetas.
- Puede devolver títulos o descripciones demasiado largos.
- Puede tardar en responder.
- Puede devolver errores.
- Puede fallar y devolver una respuesta no válida.
Especificación del backend: https://dapplets-hiring-api.herokuapp.com/