Skip to content

Flexberry/flexberry-foundation-internship-task

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое задание (Junior Frontend-разработчик/стажер)

Требуется разработать небольшое одностраничное веб-приложение без использования JavaScript-фреймворков на основе открытого тестового задания компании Aviasales.

Требования

  1. Необходимо создать HTML-страницу, на которой будут отображаться первые пять билетов соотвествующих выбранным фильтрам и условию сортировки.

  2. Макет (Figma) можно скачать тут. Комментарии по верстке страницы с макета:

    • Условие сортировки по критерию "Оптимальный" реализовывать не требуется. Достаточно реализовать сортировку по критериям "Самый дешевый" и "Самый быстрый".
    • Показ "следующих 5 билетов" реализовывать не требуется, достаточно показать первые пять билетов, соответствующих выбранным критериям фильтрации и сортировки.

    Пример результата верстки макета с данными:

  3. Данные для отображения билетов должны подгружаться с тестового сервера компании Aviasales. Описание серверного API представлено тут.

    • Обратите внимание, что для получения полного набора данных для последующей фильтрации и сортировки требуется последовательно выполнить несколько одинаковых GET-запросов, на которые иногда сервер может отвечать ошибкой (это не означает, что необходимо перестать отправлять запросы дальше).
    • Полученные данные о билетах необходимо сохранить в массиве, после чего применять операции фильтрации и сортировки к полученным данным в соответствии с теми условиями, которые выбраны в пользовательском интерфейсе.
    • При перезагрузке страницы с приложением в браузере необходимо получать новый идентификатор поиска.
    • С примером ответа сервера можно ознакомиться тут.
    • ВНИМАНИЕ! В последнее время тестовый сервер компании Aviasales перестал быть доступен. Если тестовый сервер недоступен, то необходимо развернуть локальный сервер с использованием JSON Server и опубликовать с его помощью тестовые данные (при этом атрибут stop:true из тестовых данных нужно убрать, чтобы сервер запустился).
  4. Картинки с логотипами авиакомпаний доступны по адресу http://pics.avs.io/99/36/{IATA_CODE_HERE}.png (требуется указать iata-код авиакомпании, например, http://pics.avs.io/99/36/SU.png); iata-код авиакомпаний можно получить в свойстве carrier билета.

  5. Для взаимодействия с сервером необходимо использовать Fetch API.

  6. Приложение должно работать в последних версиях браузеров. Соответственно можно использовать все современные возможности языка JavaScript, включая стандарты ES6, ES7 и т.п.

  7. Программный код должен отражать понимание автором «хорошего кода». Для проверки стиля кода возможно настроить линтинг, а также инструменты автоматического форматирования кода (не обязательное требование).

  8. Допускается использовать шаблонизаторы HTML, препроцессоры CSS, любые дополнительные библиотеки, а также настраивать систему сборки проекта (на усмотрение соискателя, инструменты можно использовать любые).

  9. Для проверки реализации требований можно покрыть исходный код и приложение тестами, при этом используемые виды тестов и процент покрытия кода тестами остаются на усмотрение соискателя (не обязательное требование).

  10. Всё, что не оговорено в задании явно, решается на усмотрение соискателя.

  11. Результат выполнения задания требуется опубликовать в личном репозитории на GitHub, ссылку на репозиторий необходимо отправить на job@neoplatform.ru.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published