Тестовое задание

Используя create-react-app, необходимо реализовать вывод списка популярных JS репозиториев на Github за последний месяц. Тестовое задание делится на несколько задач — обязательные и дополнительные. В обязательных задачах мы проверяем знания, необходимые для данной позиции. Дополнительные задачи помогут вам показать себя с лучшей стороны и не должны занять много времени. Вы можете сделать только часть дополнительных задач, если что-то покажется вам интересным, или не делать их вовсе. Результат необходимо выложить в публичный профиль на github. Отройте pull request на пустую ветку для удобства проведения code-review.

Требования

  • ReactJS

Будет плюсом

  • TDD

Задачи

  • Реализовать вывод репозиториев. Необходимо запросить и отрендерить список репозиториев созданных за последний месяц на языке JavaScript, отсортированных по популярности (звездам).
  • Добавить серверную фильтрацию по типу лицензии проекта.
  • Добавить серверный поиск по названию проектов.

Дополнительные задачи

  • Покрыть код unit-тестами.
  • Реализовать серверную пагинацию.
  • Добавить индикатор загрузки данных.
  • Responsive до 320px.

Установка

Prerequriements

  1. Node
  2. Yarn.

Сборка

Установка зависимостей

Все зависимости подтянутся и попадут в папку npm_modules

yarn

Тестирование

Инициализация test окружения по умолчанию

cp .env.dev .env.test.local

Запуск тестов

Для тестирования используеться Jest

yarn test

Development-режим

Инициализация dev окружения по умолчанию

cp .env.dev .env.local

Проект соберется, запустится мелкий сервер статики на 3000 порту, изменения файлов будут отслеживаться и проект пересобираться

yarn start

Production-режим

Инициализация prod окружения по умолчанию

cp .env.prod .env.local

Создание папки build с собранным приложением для развертывания

yarn build

Настройка окружения вручную

По умолчанию параметры вычитываются из файла .env.local (в git не выкладывается) и могут быть переопределены через переменные окружения системы (приоритет у переменных окружения системы). В корне проекта доступны примеры файлов .env.local для разных режимов запуска (их можно использовать для формирования локального .env.local):

  • .env.dev - параметры для запуска в development-режиме;
  • .env.prod - параметры для запуска в production-режиме.

Доступные параметры:

Код Код в Docker Описание
REACT_APP_GITHUB_ACCESS_TOKEN - GitHub Token для обращения GitHub API

Управление зависимостями

Управление зависимостями осуществляется с помощью Yarn.

Текущие используемые версии зафиксированы в yarn.lock.

Добавление и удаление зависимостей должно осуществлятся только средвствами YARN

  • yarn add <package>@[version]
  • yarn up [package]@[version]
  • yarn remove <package>