SwiftCodesProject to aplikacja napisana w Spring Boot, która korzysta z PostgreSQL jako bazy danych.
Projekt jest w pełni skonteneryzowany.
Przed uruchomieniem upewnij się, że masz zainstalowane:
- Sklonuj repozytorium
git clone https://github.com/twoj-username/swiftcodesproject.git
cd swiftcodesproject
Uruchom aplikację za pomocą Docker Compose
- Uruchom aplikację za pomocą Docker Compose
docker-compose up --build
To polecenie zbuduje i uruchomi aplikację Spring Boot oraz bazę danych PostgreSQL.
Aplikacja będzie dostępna pod adresem http://localhost:8080.
PostgreSQL działa na porcie 5430 (przekierowanym z 5432).
po poprawnym uruchomieniu powinno to wyglądać w następujący sposób:
🏗 Technologie
-Spring Boot – Backend
-PostgreSQL – Baza danych
-Docker – Konteneryzacja
📂 config/
➡ Konfiguracja aplikacji – zawiera klasy ładujące dane z csv do bazy danych oraz ustawiające mappery
📂 controllers/
➡ Warstwa kontrolerów – obsługuje żądania HTTP i przekazuje je do serwisów.
📂 domain/
➡ Modele danych (encje) – klasy reprezentujące tabele w bazie danych oraz DTO.
📂 exceptions/
➡ Obsługa wyjątków – niestandardowe wyjątki i ich obsługa w aplikacji.
📂 mappers/
➡ Konwersja encji do DTO – mapowanie obiektów domenowych na DTO i odwrotnie.
📂 repositories/
➡ Warstwa dostępu do danych (DAO) – interfejsy do komunikacji z bazą danych przy użyciu Spring Data JPA.
📂 services/
➡ Logika biznesowa aplikacji – operacje na danych i komunikacja z repozytoriami.
Wstępna analiza danych wykazała:
Klasa config/Dataloader wczytuje dane i przeprowadza ich walidacje za pomocą klasy services/SwiftCodeLoadService. Dodatkowo przeprowadza test czy liczba wgranych wierszy / oddziałów itp się zgadza. Na początku wgrywane są bazy typu "Headquarters" , aby następnie można było dokonać powiązania dla branches
Endpointy zdefiniowane są w /controllers/SwiftCodesController, korzystają z /services/SwiftCodeService
Get Swift-Code details
Dla "branch":
Dla "headquarters" dołączane są również jego odziały:
Get Swift-Codes by Country
Add Swift-Code
W metodzie dodającej Swift-codes zachodzi kilka etapów walidacji:
-
Metoda sprawdza, czy dany kod SWIFT już istnieje w bazie.
-
Metoda sprawdza, czy kod SWIFT ma dokładnie 11 znaków
-
Pobierane są ostatnie 3 znaki kodu SWIFT i konwertowane na wielkie litery. Jeśli to "XXX", to oznacza, że jest to główna siedziba banku (isHeadquarter = true).
-
Jeśli którekolwiek z pól (address, bankName, countryISO2, countryName) są puste, rzuca wyjątek.
-
Kody krajów są konwertowane na wielkie litery, by zachować spójność.
Dodawanie "headquarter":
Dodawanie "branch::
Wynik:
Usuwanie SWIFT-CODE:
usunięcie swift-code, aktualizuje również wartości jego odziałów na null
Wynik: