Skip to content

DenSin1592/LuckyHunter

Repository files navigation

Тестовое задание для junior php разработчика

Описание

Легенда

У нас есть популярный (высоконагруженный) сайт с текстовыми трансляциями футбольных матчей. Мы сотрудничаем с посредником, который предоставляет логи матчей. Каждый лог состоит из списка событий разного типа в json формате. Команда, в которой вы работаете, создала первую версию модуля для генерации статичных html страниц с текстовыми трансляциями матчей на основе данных из логов.

Первые отзывы

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

Результаты тестирования

Отдел тестирования выявил следующий баг:

  • Неверно показано время, проведенное на поле. Например, матч 1024102 длился 96 минут, а максимальное время у футболистов, проведенное на поле – 95 минут. За 1 матч невозможно заменить всю команду. Значит общее время, проведенное на поле, считается неверно

Технические задачи

  • Improvement: Добавить иконку мячика, если футболист забил гол
  • Improvement: Добавить отображение желтых и красных карточек напротив футболистов, которые получили карточки
  • Feature: Добавить таблицу с общим временем, проведенным на поле, для каждой позиции (нападающие, защитники и т.д.), а не только для каждого игрока
  • Bug: Исправить ошибку с подсчетом времени, проведенном на поле

Установка и использование

Стек технологий:

Существует 2 способа использовать компонент: локально или через Docker (предпочтительнее).

Локальный способ

./composer.phar install # Установка зависимостей
bin/console app:build-match-page # Генерация страницы мачта. Можно сразу указать id конкретного матча "bin/console app:build-match-page 1024102"

Запуск через Docker (предпочтительнее)

docker-compose up -d # Запуск контейнеров в фоновом режиме
docker-compose exec php ./composer.phar install # Установка зависимостей
docker-compose exec php bin/console app:build-match-page # Генерация страницы мачта. Можно сразу указать id конкретного матча "docker-compose exec php bin/console app:build-match-page 1024102"

Необходимо установить Docker (https://docs.docker.com/install/) и Docker Compose (https://docs.docker.com/compose/install/)

Результат

Результат тестового задания должен содержать:

  1. ФИО автора
  2. Потраченное на тестовое задание время
  3. Скриншот получившейся страницы
  4. Код оформленный в виде git репозитория, который содержит несколько коммитов, показывающих ход вашей работы
  5. Описание принятых решений:
  • "Feature: Добавить таблицу с общим временем, проведенным на поле, для каждой позиции (нападающие, защитники и т.д.), а не только для каждого игрока" – общее описание реализации и почему вы решили сделать именно так
  • "Bug: Исправить ошибку с подсчетом времени, проведенном на поле" – описание причины ошибки и способа решения

Примечание:

  • Скриншот страницы можно прикрепить к ответному письму
  • Описание принятых решений необходимо сделать в свободной форме, словно вы рассказываете другому разработчику, который хотел узнать, чем вы занимались на прошлой неделе
  • Репозиторий вы можете разместить на любом публичном хостинге репозиториев (GitHub, BitBucket) и скинуть нам ссылку на него

Что мы хотим увидеть

  • Понятные объяснения
  • Чистый код
  • Уверенное владение git

Для справки

Это лог реального матча между командами Маккаби (Тель-Авив) и Зенит (Санкт-Петербург), который прошел 15 сентября 2016 года. Матч получился очень интересным и драматичным.

Текстовую трансляцию мы брали с сайта soccer.ru (https://www.soccer.ru/matches/1024102/makkabi-zenit-15-09-2016). Ее провел Старчеус Сергей, за что ему большое спасибо.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published