Простое приложения для управления счетами.
Реализован контроллер /accounts, с помощью которого можно управлять счетами, а именно пополнять счет, снимать деньги со счета, переводить деньги с одного счета на другой.
Для запуска приложения в демо режиме (создадутся два счета) достаточно запустить в терминале
mvn clean package
docker-compose up
Технологии:
- spring-boot
- postgresql
- liquibase
- testcontainers
Особенности реализации:
- синхронизация операций по счетам реализована через пессимистичный лок в базе
- сумма счета в базе хранится в целых числах (на текущий момент в копейках), чтобы расчеты были точные
Возможные улучшения:
- добавить сущность "Транзакция" для сохранения истории операций
- добавить актуатор
- добавить секьюрность
- добавить круд эндпоинты для основных сущностей
- добавить описания модели и эндпоинтов для OpenAPI спецификации