# README
Сервис по показу баннерной рекламы
Сервис "Ротация баннеров" предназначен для выбора наиболее эффективных (кликабельных) баннеров, в условиях меняющихся предпочтений пользователей и набора баннеров.
Предположим, что на сайте есть место для показа баннеров (слот) и есть набор баннеров, которые конкурируют за право показа в этом месте. Набор баннеров постоянно обновляется - добавляются новые, старые удаляются. Так же у пользователя меняются предпочтения - если им показывать все время один и тот же баннер, пользователь перестает его замечать.
Задача сервиса - осуществлять "ротацию" баннеров, показывая те, которые наиболее вероятно приведут к переходу. Для этого используется алгоритм "Многорукий бандит": https://habr.com/ru/company/surfingbird/blog/168611/
Кроме того пользователи неоднородны - их можно условно разделить на социально-демографические группы. В разных группах пользователей могут быть разные предпочтения.
- Реализован алгоритм "многорукого бандита" - 2 балла.
- Реализовано разделение на "слоты" и "соц.дем. группы" - 2 балла.
- Реализовано API сервиса - 2 балла.
- Реализована отправка статистики в очередь - 1 балл.
- Написаны юнит-тесты - 1 балл.
- Написаны интеграционные тесты - 2 балла.
- Тесты адекватны и полностью покрывают функциональность - 1 балл.
- Проект возможно собрать через make build, запустить через make run и протестировать через make test - 1 балл.
- Понятность и чистота кода - до 3 баллов.