147 lines
4.4 KiB
Plaintext
147 lines
4.4 KiB
Plaintext
workspace "Events-WebApi" "Structurizr model za rješenje Events-WebApi" {
|
|
|
|
model {
|
|
auth0 = softwareSystem "Auth0" "Vanjski identity provider za prijavu i JWT tokene." {
|
|
tags "External", "Auth"
|
|
}
|
|
|
|
postgres = softwareSystem "PostgreSQL" "Relacijska baza podataka za domenu događaja." {
|
|
tags "External", "Database"
|
|
}
|
|
|
|
rabbitmq = softwareSystem "RabbitMQ" "Sabirnica poruka za asinkronu razmjenu događaja." {
|
|
tags "External", "MessageBus"
|
|
}
|
|
|
|
eventsSystem = softwareSystem "Events-WebApi" "Rješenje za upravljanje događajima, prijavama i generiranim datotekama." {
|
|
|
|
clientApp = container "ClientApp" "" "Vue 3 + Vite" {
|
|
tags "Frontend"
|
|
}
|
|
|
|
webApi = container "WebAPI" "CRUD servisi" "ASP.NET Core Web API" {
|
|
tags "API", "WebAPI"
|
|
}
|
|
|
|
filesApi = container "FilesAPI" "API za sinkronizaciju i isporuku PDF/XLSX datoteka." "ASP.NET Core Web API" {
|
|
tags "API", "FilesAPI"
|
|
}
|
|
|
|
clientApp -> auth0 "Prijava i dohvat pristupnog tokena"
|
|
clientApp -> webApi "CRUD operacije i registracija za događaj" "JSON/HTTPS"
|
|
clientApp -> filesApi "Preuzimanje certifikata i Excel izvoza" "HTTPS"
|
|
|
|
webApi -> auth0 "Validira JWT tokene" "OAuth2/JWT"
|
|
webApi -> postgres "Čita i zapisuje događaje, osobe, sportove i prijave" "EF Core/Npgsql"
|
|
webApi -> rabbitmq "Objavljuje RegistrationCreated/Updated/Deleted" "MassTransit/AMQP"
|
|
|
|
rabbitmq -> filesApi "Isporučuje registration događaje consumerima" "MassTransit/AMQP"
|
|
filesApi -> postgres "Čita podatke za generiranje datoteka" "EF Core/Npgsql"
|
|
}
|
|
}
|
|
|
|
views {
|
|
container eventsSystem "Containers" {
|
|
include clientApp
|
|
include webApi
|
|
include filesApi
|
|
include auth0
|
|
include postgres
|
|
include rabbitmq
|
|
|
|
animation {
|
|
clientApp
|
|
webApi postgres auth0
|
|
rabbitmq
|
|
filesApi
|
|
}
|
|
}
|
|
|
|
dynamic eventsSystem "RegistrationFlow" "Tok registracije za događaj" {
|
|
clientApp -> webApi "Korisnik u ClientApp šalje prijavu za događaj"
|
|
webApi -> auth0 "Validacija pristupnog tokena"
|
|
webApi -> postgres "Spremanje registracije u bazu"
|
|
webApi -> rabbitmq "Objava događaja RegistrationCreated"
|
|
rabbitmq -> filesApi "Isporuka događaja RegistrationCreated"
|
|
filesApi -> postgres "Dohvat podataka za certifikat i Excel"
|
|
}
|
|
|
|
theme default
|
|
|
|
styles {
|
|
element "Container" {
|
|
background #ffffff
|
|
color #222222
|
|
stroke #444444
|
|
fontSize 34
|
|
}
|
|
|
|
element "Frontend" {
|
|
shape WebBrowser
|
|
background #ffffff
|
|
color #1565c0
|
|
stroke #42a5f5
|
|
strokeWidth 3
|
|
fontSize 36
|
|
}
|
|
|
|
element "API" {
|
|
shape Hexagon
|
|
background #ffffff
|
|
strokeWidth 3
|
|
fontSize 36
|
|
}
|
|
|
|
element "WebAPI" {
|
|
color #1565c0
|
|
stroke #42a5f5
|
|
}
|
|
|
|
element "FilesAPI" {
|
|
color #2e7d32
|
|
stroke #66bb6a
|
|
}
|
|
|
|
element "Database" {
|
|
shape Cylinder
|
|
background #ffffff
|
|
color #1565c0
|
|
stroke #42a5f5
|
|
strokeWidth 3
|
|
fontSize 34
|
|
description false
|
|
}
|
|
|
|
element "MessageBus" {
|
|
shape Pipe
|
|
background #fff8e1
|
|
color #8d6e63
|
|
stroke #ff9800
|
|
strokeWidth 3
|
|
width 760
|
|
height 140
|
|
fontSize 34
|
|
description false
|
|
}
|
|
|
|
element "External" {
|
|
opacity 85
|
|
}
|
|
|
|
element "Auth" {
|
|
background #ffffff
|
|
color #c62828
|
|
stroke #e53935
|
|
strokeWidth 3
|
|
fontSize 34
|
|
}
|
|
|
|
relationship "Relationship" {
|
|
color #666666
|
|
thickness 2
|
|
fontSize 34
|
|
}
|
|
}
|
|
}
|
|
}
|