@startuml web-app

skinparam linetype ortho

class App {
' principale vuejs component

}

class Client {
    +getValues()
    +getNewValue()
}

class SeriesManager {
' get data, put data in graphs, ask new measure

    +getNewValue()
    +getAllValue()
}

class SerieConverter {
' convert timeseries from backend for graphs
    +jsonToSerie()
}

class TimeSeries {
' simplify the duplication of series in graphs
    -Series

}

class Button {
' vue js component
' ask new measure

}

class Serie {
' contains table of measure
' convert the table to graphs format
    -type
    -values
    -numberOfLastValus
    -id
    -place
    -name

    +getGraphFormat()
    ' needs to limit the number of value
    +addNewValue() 
}

class Plot {

}

App *-r- SeriesManager
App *-u- Client
SeriesManager *-r- TimeSeries
Plot -l-* TimeSeries
Serie -u-* TimeSeries
Serie *-- Button
SerieConverter .u.> SeriesManager 

@enduml