feat(README): UML Diagram

This commit is contained in:
Orangerot 2024-08-16 22:04:42 +02:00
parent 8cf2692f65
commit 4956818d53

115
README.md
View file

@ -24,38 +24,109 @@ cmake --build build
### UML Diagram ### UML Diagram
```plantuml ```plantuml
class Application { @startuml
QGuiApplication app allowmixing
QmlComponent component set namespaceSeparator none
SportModel model skinparam ranksep 10
FilterModel<SportModel> filter
package C++ <<Frame>> {
class Application {
QGuiApplication app
QmlComponent component
SportModel model
FilterModel<SportModel> filter
}
class SportModel {
String discipline
<EventInfo> model
request(String discipline)
parseData()
}
class FilterModel {
void setFilterFixedString(String)
}
class EventInfo {
String eventName
List<Competitor> competitors
}
class Competitor {
String name
String code
String noc
}
} }
class SportModel { package QML <<Frame>> {
String discipline
<EventInfo> model component EventInfoPage {
request(String discipline) component [Page] as EIPage {
parseData() component [ToolBar] as EIToolBar
component [ListView] as EILisView
}
}
EIToolBar -[hidden]- EILisView
component EventsPage {
component [Page] as EPage {
component [ToolBar] as EToolBar
component [Column] as EColumn {
component [Row] as ERow {
component [ComboBox] as EComboBox
component [TextField] as ETextField
}
component [ListView] as EListView
}
}
}
EToolBar -[hidden]- EColumn
ERow -[hidden]- EListView
component application.qml {
component ApplicationWindow {
component StackView
}
}
} }
class FilterModel {} 'application.qml -u- a
'Application -r- a
class EventInfo {
String eventName
List<Competitor> competitors
}
class Competitor {
String name
String code
String noc
}
Application *-- "1" SportModel Application *-- "1" SportModel
Application *-- "1" FilterModel Application *-- "1" FilterModel
FilterModel "1" o-- "1" SportModel
SportModel *-- "0..*" EventInfo SportModel *-- "0..*" EventInfo
EventInfo *-- "0..*" Competitor EventInfo *-- "0..*" Competitor
Application <.l. application.qml
StackView <.. EventInfoPage
StackView <.. EventsPage
EComboBox "request()" .> SportModel
EComboBox -[hidden]u- ETextField
SportModel "View" .> EListView
FilterModel "View" .> EListView
ETextField "Control" .r.> FilterModel
EILisView <. "View" Competitor
cloud api.olympics.com
() REST
REST - api.olympics.com
SportModel -( REST
application.qml -[hidden]u- Application
@enduml
``` ```
## Authors ## Authors