Skip to content

A set of microservices and framework are developed on the .NET Core 2.1 (LTS). The main task of the project is to make simple payment transactions using a mobile phone with the help of the QR code.

License

Notifications You must be signed in to change notification settings

abokareem/Payment-Platform-1

Repository files navigation

Payment-Platform

Build Status

Основной идеей веб-приложения является разработка платежной платформы, которая позволяла бы совершать платежные операции благодаря QR коду, тем самым сокращая влияние человеческого фактора при обслуживании покупателя и давая возможность системе быть максимально автономной.

Данный функционал доступен только через приложение Postman. При испрользовании веб-приложения пользователь имеет возможность зарегистрироваться или войти в систему. Регистрация происходит по принципу: заполните данные и подтвердите регистрацию. После чего появляется доступ к веб-приложению в роли покупателя, однако в процессе можно стать продавцом, указав дополнительные данные.

Запуск веб-приложения:

  • Для запуска всей инфраструктуры необходимо выполнить команду из папки с проектом: docker-compose up -d (предварительно на компьютере должен быть установлен Docker) и в файле appsetting.json проекта Framework должен быть установлен флаг true напротив значения "IsProduction".
  • Для инцилизации базы данных случайными данными необходимо запустить проект PaymentPlatform.DatabaseInitialization.

После регистрации:

  • Покупатель может совершать покупки, видеть список покупок и совершать возврат товара.
  • Продавцом может стать каждый зарегистрированный пользователь.
  • Продавец может выставлять товары, редактировать их, видеть список покупок и писать администратору. Также ему доступен весь функционал покупателя.

Администратор имеет право (только через SSMS):

  • Начислять баланс пользователю.
  • Редактировать профили пользователей.
  • Иные операции через взаимодействие с БД.

Общие сведения о решении:

  • Архитектура проекта: микросервисная архитектура c общим проектом (*.Framework).
  • Роли в приложении: Администратор, Пользователь (Продавец, Покупатель).
  • Стек технологий: ASP.NET Core WebAPI, EF, Automapper, Ocelot, Swashbuckle, Docker, RabbitMQ, Serilog, xUnit, Moq.
  • При развитии проекта возможно внедрение: MimeKit, HealthChecks, IHostedService, SignalR и локализации.

Возможный сценарий использования решения при доработки UI части

Совершается покупка по следующему сценарию: покупатель зарегистрирован в системе, сканирует через мобильный телефон QR код, переходит по ссылке, видит на экране предварительный заказ и нажмет на кнопку "Оплатить", начинается совершение транзакции и по итогу видит чек.

Примечание

Технология RabbitMQ была использована в ознакомительных целях. Для более корректного совершения транзакций в решении может быть применен IHostService, который смог бы выполнять транзакции по расписанию с более гибкой и продуманной бизнес-логикой.

About

A set of microservices and framework are developed on the .NET Core 2.1 (LTS). The main task of the project is to make simple payment transactions using a mobile phone with the help of the QR code.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published