Skip to content

ekadesign/refactor-task

Repository files navigation

Loyalty Service

В репозитории находится реализация микро-сервиса, который отвечает за работу системы лояльности и может использоваться в розничной торговле или сфере услуг, везде, где за какую либо операцию (продажу) можно начислить определённое количество баллов лояльности, а потом потратить эти баллы на оплату товаров/услуг.

Доступные операции:

  • Начисление баллов лояльности за операцию (loyaltyPoints/deposit).
  • Отмена начисления баллов за операцию (loyaltyPoints/cancel).
  • Оплата покупки баллами лояльности (loyaltyPoints/withdraw).
  • Получение текущего баланса по карте лояльности (накопленное количество баллов лояльности) (account/balance).

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

Правило начисления может быть:

  • Относительным — количество начисляемых баллов лояльности рассчитывается как процент от суммы операции.
  • Абсолютным — в независимости от суммы операции начисляется фиксированное количество баллов лояльности.

Задача:

  1. Архив репозитория распаковать и опубликовать в публичный GIT-репозиторий.
  2. В отдельной ветке необходимо провести рефакторинг LoyaltyPointsController в соответствии с Best Practices, Вашими предпочтениями и опытом.
  3. Оформить Pull/Merge Request на ветку с исходным заданием и передать ссылку рекрутеру.
  4. Допустимо использование любых средств, которые вы сочтете адекватными/необходимыми

Рекомендации:

  1. Предоставить краткое описание выбранных архитектурных решений.
  2. Детализировать историю изменений вместо одного итогового коммита.
  3. Соблюдать общепринятые правила оформления кода, документации и истории изменений.
  4. Не углубляться в детали реализации непринципиальных моментов.
  5. Не тратить на задание больше 1 часа.

Installation

  • Windows
cd test-task-loyalty-service; docker-compose up
docker run -it --user www -v ${pwd}:/var/www test-task-loyalty-service /bin/sh -lc "composer install && cp .env.example .env && php artisan key:generate && php artisan migrate"
  • Linux
cd test-task-loyalty-service && docker-compose up
docker run -it --user www -v $PWD:/var/www test-task-loyalty-service /bin/sh -lc "composer install && cp .env.example .env && php artisan key:generate && php artisan migrate"

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages