Categorygithub.com/lastbyte32/gofemart
module
0.0.0-20240219105943-2ca8b04ebcbe
Repository: https://github.com/lastbyte32/gofemart.git
Documentation: pkg.go.dev

# README

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

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


Система представляет собой 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

# Packages

No description provided by the author