Тестовое задание
Используя create-react-app, необходимо реализовать вывод списка популярных JS репозиториев на Github за последний месяц. Тестовое задание делится на несколько задач — обязательные и дополнительные. В обязательных задачах мы проверяем знания, необходимые для данной позиции. Дополнительные задачи помогут вам показать себя с лучшей стороны и не должны занять много времени. Вы можете сделать только часть дополнительных задач, если что-то покажется вам интересным, или не делать их вовсе. Результат необходимо выложить в публичный профиль на github. Отройте pull request на пустую ветку для удобства проведения code-review.
Требования
- ReactJS
Будет плюсом
- TDD
Задачи
- Реализовать вывод репозиториев. Необходимо запросить и отрендерить список репозиториев созданных за последний месяц на языке JavaScript, отсортированных по популярности (звездам).
- Добавить серверную фильтрацию по типу лицензии проекта.
- Добавить серверный поиск по названию проектов.
Дополнительные задачи
- Покрыть код unit-тестами.
- Реализовать серверную пагинацию.
- Добавить индикатор загрузки данных.
- Responsive до 320px.
Установка
Prerequriements
Сборка
Установка зависимостей
Все зависимости подтянутся и попадут в папку 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>