MyBankWebApp — это симуляция бэкенда банковской системы, разработанная для демонстрации навыков проектирования REST API, работы с реляционными базами данных и клиент-серверной архитектуры.
- Backend: Java 17, Spring Boot, Spring Web
- Data Access: Spring Data JPA, Hibernate, PostgreSQL
- Инфраструктура: Docker, Docker Compose
- Frontend: HTML5, Bootstrap 5, Vanilla JavaScript (Fetch API)
- Тестирование: JUnit 5, Spring Boot Test
- Инструменты: Lombok, Gradle
- Трехслойная архитектура: Четкое разделение на Controller (REST API), Service (бизнес-логика) и Repository (работа с БД).
- Реляционные связи: Реализована связь
@OneToManyмежду сущностямиUserиAccount. - Финансовая точность: Использование
BigDecimalдля исключения потери точности при работе с денежными транзакциями. - Транзакционность: Использование
@Transactional(ACID) для гарантии консистентности данных при финансовых операциях. - Изоляция окружения: База данных PostgreSQL полностью контейнеризирована с помощью Docker.
- Установленный Java 17 (JDK)
- Установленный Docker и Docker Compose
-
Склонируйте репозиторий:
git clone [https://github.com/JohnCodJava/MyBankWebApp.git](https://github.com/JohnCodJava/MyBankWebApp.git)
-
Перейдите в корневую директорию проекта:
cd MyBankWebApp -
Поднимите инфраструктуру базы данных PostgreSQL в Docker:
docker-compose up -d
-
Запустите Spring Boot приложение через вашу IDE или с помощью Gradle:
./gradlew bootRun
-
Откройте веб-интерфейс в браузере: http://localhost:8080/
При первом запуске приложение автоматически создаст тестового пользователя и инициализирует базовые банковские счета для демонстрации работы API.
🧪 Тестирование Проект покрыт базовыми интеграционными тестами с изолированным контекстом. Для запуска тестов используйте:
./gradlew test