-
Notifications
You must be signed in to change notification settings - Fork 0
C4 model
Paweł Kłos edited this page Feb 26, 2022
·
6 revisions
The C4 model is created using the tool: https://structurizr.com/
C1 - General view
C2 - System view
C3 - Component view
workspace {
model {
user = person "User" {
description "User with or without an account"
}
softwareSystem = softwareSystem "Weather platform" {
desktopApp = container "Desktop application" {
user -> this "Uses"
}
mobileApp = container "Mobile app" {
user -> this "Uses"
}
ApiControler = container "Api - Controler" {
InterfaceToDonwloadWeather = component "Interface to donwload weather" "1234" {
this -> desktopApp "Uses [json/https]"
this -> mobileApp "Uses [json/https]"
}
webapp3 = component "Reset Password" {
this -> desktopApp "Uses [json/https]"
this -> mobileApp "Uses [json/https]"
}
logIn = component "LogIn" {
this -> desktopApp "Uses [json/https]"
this -> mobileApp "Uses [json/https]"
}
CreateAcc = component "Create account" {
this -> desktopApp "Uses [json/https]"
this -> mobileApp "Uses [json/https]"
}
securyty = component "Security bridge" {
this -> webapp3 "Uses [json/https]"
this -> logIn "Uses [json/https]"
this -> CreateAcc "Uses [json/https]"
}
DBinterfaceApi = component "Database interface" {
this -> securyty "Get data about user"
}
weatherReasoning = component "Weather inference based on your user profile" {
InterfaceToDonwloadWeather -> this "downloads and sends data from the weather profile"
DBinterfaceApi -> this "Uses [json/https]"
}
desktopApp -> this "Reads from and writes to"
mobileApp -> this "Reads from and writes to"
}
dataBase = container "Database" {
this -> DBinterfaceApi "read/write"
ApiControler -> this "Read/Write"
}
}
softwareSystemm = softwareSystem "Weather API" {
webapp2 = container "Web Application" {
ApiControler -> this "Api Call"
weatherReasoning -> this "Uses [json/https]"
}
}
}
views {
systemContext softwareSystem {
include *
autolayout lr
}
container softwareSystem {
include *
autolayout lr
}
component ApiControler {
include *
autolayout lr
}
theme default
}
}