/BankAccountApp

RESTful API для банковского приложения, позволяющая пользователям создавать счета, пополнять или снимать средства, переводить средства с одного счета на другой и выводить все имеющиеся счета у пользователя

Primary LanguageJava

BankAccountApp

RESTful API для банковского приложения, позволяющая пользователям создавать счета, пополнять или снимать средства, переводить средства с одного счета на другой и выводить все имеющиеся счета у пользователя

Бэкенд-часть проекта предполагает реализацию следующего функционала:

  1. Создание нового счета (аккаунта):

Пользователи могут зарегистрироваться, указав имя и 4-х значный пин-код:

CreateAccount

{
  "username": "счет 1",
  "password": "2571"
}

В ответ получают информацию о новом счете:

ResponseAccount

{
  "id": 1,
  "username": "счет 1",
  "balance": 0
}
  1. Пополнение баланса:

Пользователи могут пополнить баланс, указав идентификатор пополняемого счета (аккаунта):

UpdateBalance

{
  "account_id": 1,
  "balance": 5000
}

В ответ получают информацию об измененном счете:

ResponseAccount

{
  "id": 1,
  "username": "счет 1",
  "balance": 5000
}
  1. Снятие средств со счета (аккаунта):

Пользователи могут снять средства со счета, указав идентификатор счета (аккаунта) и указать правильный пин-код:

UpdateBalance

{
  "account_id": 1,
  "balance": 500
}

Вводим валидный пин-код: 2571

В ответ получают информацию об измененном счете:

ResponseAccount

{
  "id": 1,
  "username": "счет 1",
  "balance": 4500
}
  1. Перевод средств с одного счета на другой:

Пользователи могут переводить средства со счета на счет, указав идентификатор счета (аккаунта), с которого будут переводиться средства и идентификатор пополняемого счета, а также указать правильный пин-код:

TransferAccount

{
  "from_account_id": 1,
  "to_account_id": 2,
  "balance": 1000
}

Вводим валидный пин-код: 2571

В ответ получают информацию об измененном счете:

ResponseAccount

{
  "id": 1,
  "username": "счет 1",
  "balance": 3500
}
  1. Получение всех счетов (аккаунтов) пользователя:

Пользователи могут получить список всех своих счетов:

ResponseWrapperAccounts

{
"count": 2,
    "results": [
    {
        "id": 1,
        "username": "счет 1",
        "balance": 3500
    },
    {
        "id": 2,
        "username": "счет 2",
        "balance": 1000
    }
    ]
}

Спецификация OpenAPI для описания API

OpenAPI specification

Использован следующий стек технологий:

Java17
SpringBoot 3
Security
Hibernate
PostgreSQL
Lombok
Gradle
Flyway
Mapstruct
OpenAPI
JUnit
Mockito

Структура базы данных:

Typing SVG