Mishgan55 / account-service

Account-service

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Account service

Описание

Проект представляет собой сервис управления счетами пользователей и осуществления переводов между этими счетами c 
разными валютами, также берется конверсия за перевод в разынх валютах.

Сущности:
Пользователь (User):
Содержит информацию о пользователе, например, идентификатор (id) и другие персональные данные.
Аккаунт (Account):
Представляет собой счет пользователя, который связан с определенным пользователем.
Содержит информацию о балансе счета (balance) и валюте (currency).
Также может содержать ссылку на соответствующего пользователя.
Операция (Operation):
Содержит информацию о денежных операциях, совершаемых на счетах.
Включает в себя тип операции (например, пополнение или снятие), сумму операции и временную метку.

Как запустить

Отыкрыть terminal/cmd в проектной дериктории

Используя docker

docker-compose up

Технологии

  • Gradle 8.7
  • Java 21
  • PostgresSQl
  • Liquibase
  • Open API 3.0
  • Docker

Common URLs

Главаная идея была:

  1. Получение информации о пользователе по идентификатору (GET):

    • Пользователь который хочет первести деньги находит пользователя, которму нужно первести деньги
    • URL: http://localhost:8080/user/{id}
    • Тело запроса: Отсутствует (GET-запрос)
  2. Получение списка аккаунтов пользователя по его идентификатору (GET):

    • Далее пользователь может выбрать из своих аккаунтов, аккаунт с которого хочет первести деньги
    • URL: http://localhost:8080/account/accountsByUserId/{userId}
    • Тело запроса: Отсутствует (GET-запрос)
  3. Перевод денег между аккаунтами (POST):

    • Далее пользователь совершает перевод, пользователю, которого он выбрал. Если у пользователя есть аккаунт с валютой в которой идет перевод, то первеод осуществляется без комиссии, если например первый пользователь скидывает с аккаунта USD, а у вторго пользователя нету аккаунта с USD, а есть только RUB , то был создан апи для конвертации валют и снимается комиссия(у меня указана 7%)
    • URL: http://localhost:8080/account/transfer
    • Тело запроса:
      {
        "fromAccount": 1, // Идентификатор аккаунта, с которого происходит перевод
        "toUser": 2,      // Идентификатор пользователя, которому происходит перевод
        "amount": 100.00,         // Сумма перевода
        "currency": "USD"         // Валюта перевода
      }

Swagger: http://localhost:8080/swagger-ui/index.html

About

Account-service


Languages

Language:Java 99.5%Language:Dockerfile 0.5%