Основной идеей веб-приложения является разработка платежной платформы, которая позволяла бы совершать платежные операции благодаря 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 и локализации.
Совершается покупка по следующему сценарию: покупатель зарегистрирован в системе, сканирует через мобильный телефон QR код, переходит по ссылке, видит на экране предварительный заказ и нажмет на кнопку "Оплатить", начинается совершение транзакции и по итогу видит чек.
Технология RabbitMQ была использована в ознакомительных целях. Для более корректного совершения транзакций в решении может быть применен IHostService, который смог бы выполнять транзакции по расписанию с более гибкой и продуманной бизнес-логикой.