Skip to content

Сервис подсчета и использования начислений лояльности за покупки

Notifications You must be signed in to change notification settings

lastbyte32/gofemart

Repository files navigation

Накопительная система лояльности «Гофермарт»

Выпускной проект Яндекс.Практикум


Система представляет собой HTTP API со следующими требованиями к бизнес-логике:

  • регистрация, аутентификация и авторизация пользователей;
  • приём номеров заказов от зарегистрированных пользователей;
  • учёт и ведение списка переданных номеров заказов зарегистрированного пользователя;
  • учёт и ведение накопительного счёта зарегистрированного пользователя;
  • проверка принятых номеров заказов через систему расчёта баллов лояльности;
  • начисление за каждый подходящий номер заказа положенного вознаграждения на счёт лояльности пользователя.

Абстрактная схема взаимодействия с системой

Ниже представлена абстрактная бизнес-логика взаимодействия пользователя с системой:

  • Пользователь регистрируется в системе лояльности «Гофермарт».
  • Пользователь совершает покупку в интернет-магазине «Гофермарт».
  • Заказ попадает в систему расчёта баллов лояльности.
  • Пользователь передаёт номер совершённого заказа в систему лояльности.
  • Система связывает номер заказа с пользователем и сверяет номер с системой расчёта баллов лояльности.
  • При наличии положительного расчёта баллов лояльности производится начисление баллов лояльности на счёт пользователя.
  • Пользователь списывает доступные баллы лояльности для частичной или полной оплаты последующих заказов в интернет-магазине «Гофермарт».

Сводное HTTP API

Накопительная система лояльности «Гофермарт» должна предоставлять следующие HTTP-хендлеры:

Метод Путь Описание
POST /api/user/register Регистрация пользователя
POST /api/user/login Аутентификация пользователя
POST /api/user/orders Загрузка пользователем номера заказа для расчёта
GET /api/user/orders Получение списка загруженных пользователем номеров заказов, их статусов и информации о начислениях
GET /api/user/balance Получение текущего баланса счёта баллов лояльности пользователя
POST /api/user/balance/withdraw Запрос на списание баллов с накопительного счёта в счёт оплаты нового заказа
GET /api/user/withdrawals Получение информации о выводе средств с накопительного счёта пользователем

Подробнее тут SPECIFICATION.md

Конфигурирование сервиса накопительной системы лояльности

Сервис должн поддерживать конфигурирование следующими методами:

  • адрес и порт запуска сервиса: переменная окружения ОС RUN_ADDRESS или флаг -a
  • адрес подключения к базе данных: переменная окружения ОС DATABASE_URI или флаг -d
  • адрес системы расчёта начислений: переменная окружения ОС ACCRUAL_SYSTEM_ADDRESS или флаг -r

About

Сервис подсчета и использования начислений лояльности за покупки

Resources

Stars

Watchers

Forks