itat_challenge/README.md

2.7 KiB

Olympia 2024 Events

View updated Events with its Competitors and Rankings of all Disciplines

Galery

Getting Started

Dependencies

  • Qt6

Installation

git clone git@gitlab.kit.edu:ugmgt/itat_challenge_2024.git
# or download release
cd itat_challenge_2024
cmake -B build
cmake --build build
./build/itat_challenge_olympics

Code Structure

UML Diagram

@startuml
allowmixing
set namespaceSeparator none
skinparam ranksep 10 

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
    }
}

package QML <<Frame>> {

    component EventInfoPage {
        component [Page] as EIPage {
            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
        }
    }
}

'application.qml -u- a
'Application -r- a

Application *-- "1" SportModel
Application *-- "1" FilterModel

FilterModel "1" o-- "1" SportModel

SportModel *-- "0..*" EventInfo
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

  • Silas Stulz - Initial Work
  • Gero Beckmann - Initial Work