Giter Club home page Giter Club logo

star-wars-encyclopedia-vue's Introduction

#Тестовое задание на позицию фронтенд-разработчика

###Задача: Используя фреймворк Vue.js и API https://swapi.co/ создать сервис, предоставляющий информацию о героях фильмов Star Wars.

####Макет: https://www.figma.com/file/PXdYrz28ltpuv3bsbosmEz/%D0%A2%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D0%BE%D0%B5-%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5?node-id=8%3A2

####Общие технические требования:

  • Сетка: определена в макете.
  • Адаптивность сетки: мобильная (320px-767px) и десктопная (768px +) резиновые версии.
  • Методология: БЭМ.
  • CSS препроцессор: на выбор Less или Sass (Scss).
  • Сборка и автоматизация: Webpack, Gulp.
  • Используемый фреймворк: Vue.js.
  • Кроссбраузерность: последняя версия Google Chrome, остальное на усмотрение кандидата.
  • Типографика: определена в макете.
  • Используемые шрифты: Roboto.

###Описание блоков:

####Header. Просто статическая шапка с фоновым изображением и надписью.

####Поле поиска и карточки.

  • Пока данные загружаются из API необходимо на месте данного блока показывать preloader (анимация находится в видео файле). После загрузки данных preloader плавно исчезает (fadeOut анимация с помощью изменения opacity), а на его месте появляются карточки и поле поиска.
  • Ввод в поле поиска приводит к загрузке новых данных с соответствующими параметрами. Реализовать debounce для поиска.
  • Аватар в карточке — первая буква имени персонажа. Фоновый цвет аватара выбирается либо случайным образом, либо из словаря цветов на усмотрение кандидата.
  • Нажатие на карточку ведёт к открытию модального окна (на десктопе размер окна согласно макету, на мобильных устройствах - на весь экран) с дополнительной информацией. Получение новой информации происходит с помощью дополнительных XHR запросов.
  • В поле Films в модальном окне выводится список всех фильмов, где присутствовал данный персонаж. В одной строке один фильм.
  • Все необходимые состояния (hover, active) представлены в макете.

####Footer. Просто полоска с текстом, всегда прижатая к нижней части страницы.

###Дополнительно:

  • На десктопе шапка всегда занимает ⅓ экрана, блок с карточками ⅔. Позиционирование шапки — static, фиксированным делать не нужно.
  • Минимальное время показа предзагрузчика, вне зависимости от статуса запроса — 2 секунды.
  • Анимация появления карточек персонажей — fadeIn с небольшим перемещением снизу на своё место. Привязывать анимацию к скроллу не нужно.
  • Preloader на момент загрузки дополнительной информации, необходимой для открытой карточки. Видео с анимацией: https://drive.google.com/open?id=1nw0HsV4oELVmxgARwVuzqowIsv882qQD
  • Анимация модального окна - на усмотрение кандидата.
  • Реализовать Infinite scrolling по 10 карточек (всё необходимое для этого есть в api).
  • Для хранения данных использовать Vuex.
  • Любые другие улучшения UX приветствуются.

star_wars_encyclopedia

Project setup

npm install

Compiles and hot-reloads for development

npm run serve

Compiles and minifies for production

npm run build

Run your tests

npm run test

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.