Skip to content

Instantly share code, notes, and snippets.

@bsboris
Last active April 3, 2025 10:54
Show Gist options
  • Select an option

  • Save bsboris/39627e7e15b88cc4adfc2b5351d8c75e to your computer and use it in GitHub Desktop.

Select an option

Save bsboris/39627e7e15b88cc4adfc2b5351d8c75e to your computer and use it in GitHub Desktop.

Тестовое задание Fullstack Ruby on Rails developer

Требуется реализовать супер-упрощенный аналог сервиса мониторинга времени отклика эндпоинтов.

Примеры для вдохновения:

Можно добавить произвольное количество эндпоинтов для опроса, для каждого указав:

  • Название
  • URL для опроса
  • Предельное время, за которое эндпоинт должен ответить (в миллисекундах)
  • Периодичность опроса (от 1 минуты до 1 часа)

Далее фоновая задача опрашивает эндпоинты с указанной периодичностью, и на странице отображается текущий статус каждого:

  • operational (вернул статус 2xx/3xx в указанное время)
  • degraded (ответил, но не вписался в указанное время)
  • incident (не ответил или вернул статус, отличный от 2xx/3xx)

Для каждого эндпоинта надо выводить историю за последние 7 дней, для каждого дня указывая среднее время ответа, количество неуспешных запросов и статус (если в течение дня было замедление, то degraded, если были неуспешные запросы, то incident). График строить необязательно, можно нарисовать хоть табличку с ячейками разного цвета.

Приложение надо реализовать на Ruby on Rails, в качестве БД использовать любую поддерживаемую из коробки. Можно использовать любые сторонние библиотеки.

Внешнее оформление и неописанные детали реализации остаются на усмотрение исполнителя.

В докер заворачивать не обязательно.

Что будет оцениваться:

  • работоспособность приложения и корректность выполнения пунктов ТЗ
  • качество кода
  • покрытие тестами
  • аккуратность внешнего оформления

Бонусом будет использование Hotwire и live update, то есть обновление данных без перезагрузки страницы.

Результат надо оформить в качестве публичного репозитория на любом удобном хостинге кода.

Просьба в Readme-файле описать шаги для запуска приложения, а также кратко прокомментировать выбранные архитектурные и технические решения.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment