Skip to content

grigoriy7-work/ASP.NET

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Otus.PromoCodeFactory

Проект для домашнего задания по курсу C# ASP.NET Core Разработчик от Отус. Cистема Promocode Factory для выдачи промокодов партнеров для клиентов по группам предпочтений.

Описание

Система содержит базу клиентов с их предпочтениями (Семья, Дети, Театр, Бизнес, и т.д.) и позволяет партнёрам отсылать промокоды клиентам с выбранными предпочтениями. Например, промокоды на билеты в театр будут разосланы клиентам с предпочтением "Театр".

При этом партнёр сам выбирает клиентам с какими предпочтениями рассылать выбранные промокоды и сделать он это может двумя способами: через партнерского менеджера или с помощью API. Для отправки промокода клиентам менеджер может зайти в SPA интерфейс приложения и сделать выдачу промокода, полученного каким-то способом от партнера, например, по email. Промокод будет отправлен всем клиентам с подходящим предпочтением.

Если партнер имеет возможности программной интеграции, то он может выдать промокоды по предпочтениям через api. Для этого он запрашивает от API список предпочтений и передает нужное предпочтение вместе с промокодом. Разрабатываемый функционал не будет включать сам механизм рассылки.

Система имеет два варианта архитектуры, для MVP мы рассматриваем небольшое монолитное приложение PromoCodeFactory c API. Также есть микросервисный вариант реализации, где система разбивается на три микросервиса: Администрирование: Pcf.Administration, Получение промокодов от партнеров:Pcf.ReceivingFromPartner, Предложение промокодов клиентам: Pcf.GivingToCustomer.

Микросервис администрирования отвечает за работу с сотрудниками (партнерскими менеджерами) и ролями. Микросервис Получение промокодов от партнеров отвечает за предоставление партнеру api для передачи промокода и также API для управления партнерами. Микросервис Предложение промокодов клиентам отвечает за предоставление промокодов конкретным клиентам и потенциально за их рассылку.

Основные функции

  • Партнерский менеджер нашей компании может зайти в WEB-приложение сервиса PromoCodeFactory, выбрать предпочтение из списка и выдать промокод, полученный от партнера, после этого промокод будет выдан всем клиентам из клиентской базы, которые имеют данное предпочтение.
  • Администратор сервиса может:
    • войти в приложение,
    • просмотреть список сотрудников,
    • создать нового сотрудника или отредактировать данные существующего;
    • посмотреть количество выданных промокодов сотрудником в информации о сотруднике;
    • выдавать промокоды, как и менеджер;
    • отменить лимит партнера или установить новый.
  • Администратор и сотрудник должны авторизоваться.
  • Партнер может через API создать новый промокод на предпочтение.
  • Для того, чтобы партнер через API мог выдать промокоды по предпочтениям, мы предоставляем доступ к справочнику предпочтений через API.
  • Система партнера может вызвать наше API, передать туда промокод с описанием услуги и предпочтением, после чего наша система отправит его подходящим клиентам.
  • Система предоставляет закрытое CRUD API для работы с базой клиентов, в будущем менеджеры по работе с клиентами смогут наполнять базу через интерфейс, но пока это доступно только по API.
  • Также есть функционал работы с партнерами:
    • для партнера устанавливаются лимиты на выдачу промокодов,
    • если лимит превышен или закончился срок его действия, то промокод нельзя выдать.

Общая архитектура MVP

337460998-13b10f1b-d331-4ffb-ac2b-1d0cbf34b6de

Общая архитектура микросервисов

337461037-a6c0d55a-6a84-470b-a67d-fef6b56d1104

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 98.4%
  • Dockerfile 1.6%