Skip to content

Repository files navigation

🏦 MyBank Web Application

Java Spring Boot PostgreSQL Docker

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

Шаги для запуска:

  1. Склонируйте репозиторий:

    git clone [https://github.com/JohnCodJava/MyBankWebApp.git](https://github.com/JohnCodJava/MyBankWebApp.git)
    
  2. Перейдите в корневую директорию проекта:

    cd MyBankWebApp
    
  3. Поднимите инфраструктуру базы данных PostgreSQL в Docker:

    docker-compose up -d
    
  4. Запустите Spring Boot приложение через вашу IDE или с помощью Gradle:

    ./gradlew bootRun
    
  5. Откройте веб-интерфейс в браузере: http://localhost:8080/

При первом запуске приложение автоматически создаст тестового пользователя и инициализирует базовые банковские счета для демонстрации работы API.

🧪 Тестирование Проект покрыт базовыми интеграционными тестами с изолированным контекстом. Для запуска тестов используйте:

 ./gradlew test

About

REST API симуляция бэкенда банковской системы

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages