Diagramy UML i Architektura Systemu¶
Poniższe diagramy obrazują architekturę projektu, schemat bazy danych oraz przepływ komunikacji pomiędzy poszczególnymi warstwami.
1. Diagram Komponentów (Architektura)¶
Widok wysokiego poziomu przedstawiający z jakich modułów składa się aplikacja i w jaki sposób się one komunikują.
graph LR
User((Użytkownik)) <-->|Przeglądarka / HTTP| Frontend[Frontend: HTML/JS/CSS]
Frontend <-->|REST API / JSON| API[Backend: FastAPI]
API <-->|Sterownik Neo4j / Protokół Bolt| DB[(Baza Grafowa: Neo4j)]
2. Diagram Klas (Struktura Bazy Grafowej)¶
Diagram obrazujący strukturę i ontologię danych w bazie Neo4j. Węzły pełnią funkcję klas, a krawędzie (relacje) łączą poszczególne obiekty.
classDiagram
class Pierwiastek {
+int Z
+String nazwa
}
class Izotop {
+String nazwa
+int Z
+int A
+String czas_poltrwania
+float prawdopodobienstwo_SF
+JSON widmo
}
Pierwiastek "1" --> "1..*" Izotop : POSIADA_IZOTOP
Izotop "1" --> "0..*" Izotop : ROZPAD (α, β⁻, β⁺, IT, inne)
3. Diagram Sekwencji (Przepływ danych)¶
Scenariusz komunikacji w momencie, gdy użytkownik wybiera konkretny izotop na głównej siatce w celu poznania jego szczegółów (details.html).
sequenceDiagram
actor User as Użytkownik
participant UI as Frontend (details.js)
participant API as Backend (FastAPI)
participant DB as Neo4j
User->>UI: Wybiera izotop z siatki Segrè
UI->>API: GET /api/isotope/{nazwa}
API->>DB: MATCH (n:Izotop) ...
DB-->>API: Zwraca właściwości węzła (Z, A, widmo)
API-->>UI: Zwraca obiekt JSON
UI->>User: Wyświetla właściwości i widmo
UI->>API: GET /api/isotope/{nazwa}/decay-chains
API->>DB: Odpytanie o ścieżki rozpadów (do 15 kroków)
DB-->>API: Zwraca kolekcję relacji i węzłów
API-->>UI: Zwraca dane w formacie Cytoscape
UI->>User: Renderuje graf topologii izotopu