Тестовое задание
Интеграция Minecraft-плагина с сервисом статистики
О чем задание
Нужно реализовать простую систему сбора игровой статистики с Minecraft-сервера и ее просмотра через веб-API.
В решении должно быть два компонента:
Minecraft-плагин Собирает игровую метрику и отправляет события во внешний сервис.
Веб-сервис Принимает метрики, сохраняет их и предоставляет API для получения статистики.
Часть 1. Minecraft-плагин
Необходимо создать плагин для Paper / Spigot, который:
- отслеживает убийства мобов игроками;
- ведет счетчик убийств для каждого игрока;
- отправляет информацию о каждом событии на внешний HTTP-сервис.
Дополнительные требования:
- адрес сервиса должен задаваться в конфигурации;
- HTTP-запросы должны выполняться асинхронно;
- ошибки отправки должны логироваться.
Часть 2. Веб-сервис
Необходимо реализовать сервис, который:
- принимает игровые метрики от плагина;
- валидирует входные данные;
- сохраняет их;
- предоставляет API для получения статистики.
Сервис должен поддерживать три основных сценария.
-
Прием метрик
API должно:
принимать события от Minecraft-плагина;
валидировать входные данные;
сохранять информацию в базе данных.
-
Получение статистики игрока
API должно:
принимать имя или идентификатор игрока;
возвращать агрегированную статистику по его метрикам.
-
Таблица лидеровAPI должно:возвращать список игроков;
сортировать их по значению метрики;
формировать рейтинг игроков.
Формат запросов и ответов определяется самостоятельно.
Технологии
Рекомендуемый стек:
Java;
Paper / Spigot API;
Python;
любой Python-фреймворк для HTTP-сервиса;
любая реляционная или встроенная база данных.
Допускается использование других технологий, если выбор обоснован.
Что нужно сдать
МР в репозиторий, в котором должны быть:
исходный код Minecraft-плагина;
исходный код веб-сервиса;
README с инструкцией по запуску.
Будет плюсом
- Docker / docker-compose;
- тестов;
- документации API.
Тестовое задание
Интеграция Minecraft-плагина с сервисом статистики
О чем задание
Нужно реализовать простую систему сбора игровой статистики с Minecraft-сервера и ее просмотра через веб-API.
В решении должно быть два компонента:
Minecraft-плагин Собирает игровую метрику и отправляет события во внешний сервис.
Веб-сервис Принимает метрики, сохраняет их и предоставляет API для получения статистики.
Часть 1. Minecraft-плагин
Необходимо создать плагин для Paper / Spigot, который:
Дополнительные требования:
Часть 2. Веб-сервис
Необходимо реализовать сервис, который:
Сервис должен поддерживать три основных сценария.
Прием метрик
API должно:
принимать события от Minecraft-плагина;
валидировать входные данные;
сохранять информацию в базе данных.
Получение статистики игрока
API должно:
принимать имя или идентификатор игрока;
возвращать агрегированную статистику по его метрикам.
Таблица лидеровAPI должно:возвращать список игроков;
сортировать их по значению метрики;
формировать рейтинг игроков.
Формат запросов и ответов определяется самостоятельно.
Технологии
Рекомендуемый стек:
Java;
Paper / Spigot API;
Python;
любой Python-фреймворк для HTTP-сервиса;
любая реляционная или встроенная база данных.
Допускается использование других технологий, если выбор обоснован.
Что нужно сдать
МР в репозиторий, в котором должны быть:
исходный код Minecraft-плагина;
исходный код веб-сервиса;
README с инструкцией по запуску.
Будет плюсом