ARCHITEKTURA SYSTEMU
Diagram architektury

Opis architektury
-
Przeglądarka użytkownika:
- Użytkownik wchodzi na stronę aplikacji za pomocą przeglądarki internetowej.
- Przeglądarka komunikuje się z częścią frontendową aplikacji, napisaną w języku JavaScript.
- Zapytania użytkownika są kierowane przez system DNS, który mapuje nazwę domeny na odpowiedni adres IP serwera hostującego frontend.
-
Frontend (JavaScript):
- Frontend aplikacji jest odpowiedzialny za prezentację interfejsu użytkownika.
- Interfejs użytkownika jest generowany dynamicznie na podstawie danych zwracanych przez backend.
- Frontend komunikuje się z backendem za pomocą zapytań HTTP.
-
Backend (Java i Spark):
- Warstwa serwerowa aplikacji, napisana w języku Java i korzystająca z frameworka Spark, który umożliwia obsługę żądań HTTP.
- Backend przetwarza dane, wykonuje logikę biznesową i komunikuje się z bazą danych.
- Obsługuje także integrację z zewnętrzną usługą płatności (Stripe).
-
Baza danych (PostgreSQL):
- Przechowuje dane aplikacji, takie jak informacje o użytkownikach, transakcjach itp.
- Backend komunikuje się z bazą danych za pomocą języka SQL, aby pobierać i zapisywać dane.
- Baza danych działa w środowisku Docker, co zapewnia łatwość wdrażania i zarządzania.
-
Integracja z usługą płatności (Stripe):
- Backend obsługuje płatności za pomocą zewnętrznego dostawcy płatności Stripe.
- Dane dotyczące płatności są przesyłane z backendu do Stripe, który zajmuje się realizacją transakcji.
-
Docker:
- Środowisko, w którym uruchamiane są komponenty backendu i bazy danych.
- Zapewnia izolację oraz łatwość wdrażania i skalowania aplikacji.
Przepływ danych w systemie
- Użytkownik wysyła żądanie do aplikacji poprzez przeglądarkę → żądanie trafia do frontendu.
- Frontend przekazuje żądanie do backendu w celu przetworzenia.
- Backend komunikuje się z bazą danych, pobiera lub zapisuje dane.
- W przypadku operacji płatniczych backend przesyła dane do Stripe.
- Wyniki są zwracane do frontendu i prezentowane użytkownikowi.