Система представляет из себя таск-трекер для постановки задач за выполнение которых выплачивается вознаграждение сотрудникам.
Она состоит из 4 независимых сервисов:
- auth: единый сервис аутентификации, используется OAuth 2
- tasks: сервис в котором создаются задачи и назначаются исполнители
- accounting: биллинг сервис в котором осуществляются выплаты за выполненые задачи
- analytics: сервис аналитики
Всё взаимодействие между сервисами, за исключением процесса аутентификации, выполняется асинхронно с использованием в качестве message broker-а Kafka.
Система создана в рамках курса по асинхронной архитектуре.
Для запуска системы достаточно выполнить:
docker-compose upЕсли нет необходимости запускать всю систему целиком, а требуется только какой-то конкретный сервис, то можно это сделать командой:
docker-compose up tasksгде tasks это имя сервиса. Это запустит сам сервис и необходимые для его работы зависимости.
В CI настроен автоматический прогон тестов для всех сервисов, он запускается при открытии PR.
Для локального запуска тестов необходимо выполнить:
docker-compose run tasks bundle exec rspecгде tasks это имя сервиса. Это запустит все тесты для указанного сервиса.
Системные тесты будут запущены с использованием браузера по умолчанию - Google Chrome.
Имееется возможность запуска системных тестов с альтернативными браузерами, для этого необходимо выставить пару переменных окружения. Пример использования браузера Mozilla Firefox:
docker-compose run -e TEST_BROWSER=firefox -e TEST_BROWSER_URL=http://firefox-server:4444 tasks bundle exec rspecДля отладки можно использовать VNC. Google Chrome доступен по адресу http://localhost:7900. Mozilla Firefox по http://localhost:7901. См. файл docker-compose.yml.