Ta aplikacja prezentuje architekturę REST API do zarządzania danymi kodów SWIFT, z wykorzystaniem konteneryzacji dla uproszczonego wdrażania. Aplikacja umożliwia parsowanie danych z plików .xlsx zawierających kody SWIFT oraz przechowywanie tych informacji w bazie danych PostgreSQL. Dzięki temu możliwe jest szybkie wyszukiwanie i zarządzanie danymi bankowymi wykorzystując poprzez czytelne i intuicyjne API.
🎯 Funkcjonalności
- Parsowanie danych SWIFT: odczyt i przetwarzanie informacji z plików Excel.
- Trwałe przechowywanie danych: baza PostgreSQL optymalizowana pod kątem szybkiego odpytywania.
- REST API: zarządzanie rekordami SWIFT, umożliwiające dodawanie, odczytywanie i usuwanie danych.
- Walidacja i obsługa błędów: zapewnia poprawność danych wejściowych i zwraca czytelne komunikaty o błędach.
- Konteneryzacja: uproszczone wdrożenie aplikacji i bazy danych za pomocą kontenerów Docker.
🚀 Technologie i biblioteki
- Java 21
- PostgreSQL
- JOOQ
- Jetty (wbudowany serwer HTTP)
- Apache POI (obsługa plików Excel)
- JUnit (testy jednostkowe)
- Rest Assured (testy integracyjne)
- Log4j2 (logowanie)
- Gradle (budowanie i zarządzanie zależnościami)
- Docker (konteneryzacja)
📂 Struktura projektu
├── src/ │ ├── main/ │ │ ├── java/com/jakub/bone/api # REST API │ │ ├── java/com/jakub/bone/database # Zarządzanie bazą danych │ │ ├── java/com/jakub/bone/domain # Modele domenowe │ │ ├── java/com/jakub/bone/repository # Repozytoria bazodanowe │ │ ├── java/com/jakub/bone/server # Zarządzanie serwerem │ │ ├── java/com/jakub/bone/service # Logika biznesowa │ │ └── java/com/jakub/bone/utills # Klasy pomocnicze │ └── test/ # Testy ├── Dockerfile # Budowanie kontenera ├── docker-compose.yml # Orkiestracja kontenerów └── build.gradle # Konfiguracja Gradle
✨ Kluczowe funkcjonalności
REST API:
- Pobieranie szczegółów kodu SWIFT
- Pobieranie kodów SWIFT według kraju
- Dodawanie nowych rekordów SWIFT
- Usuwanie rekordów SWIFT
- Baza danych i bezpieczeństwo:
- PostgreSQL z JOOQ do bezpiecznego zarządzania danymi
Komunikacja:
- JSON: serializacja/deserializacja wiadomości
Testowanie:
- Testy jednostkowe (JUnit)
- Testy integracyjne (Rest Assured)
🔗 Repozytorium
Swift-Code-Hub
jakubBone • Updated May 5, 2025