UML.pu 2.44 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
@startuml Architecture

skinparam defaultFontName Inconsolata

package Core {

    note as notePackageCore
    <b>Write access is restricted to site admins and the members of the DRI group.</b>
    On some models, users can make requests for modifications (for this a copy of the model is used for storing).
end note


class City  #white {
    + name : string
    + local_name : string
    + area : string
}

class Country #white {
    # iso_code : string{2}
    + name : string
    + area : string
}

class Region #white {
    # iso_code : string {3}
    + name : string
}

City "*" -left-* Country
Country "*" -right- "1" Region
Region "*" -- "0..1" Region

note "Countries and Regions \n are intially hardcoded \n in the db." as N2
Region .. N2
N2 .. Country

class University  #wheat {
    + name : string
    + accronyme : string
    + logo : image
}

University "1" .. "1" City
note on link #white
    This link is acheived
    through the main campus module
    end note


    class MainCampus

    MainCampus "1" -[bold,#green]- "1" University



    Class Offer {
        + nb_seats_offered : int
    }

    Class Semester{
        + name : string
        + searchable : bool
    }

    Class Departement{
        + name : string
        + accronyme : string
        + searchable : bool
    }

    Class Specialty {
        + name : string
        + accronyme : string
        + searchable : bool
    }

    Offer "*" -left- "1" University
    Offer "*" -down- "1" Semester
    Offer "*" -left- "1..n" Departement
    Specialty "1..n" -left- "1" Departement

    note "Initial data inserted in db." as N3
    Semester .. N3
    N3 .. Specialty
    N3 .. Departement
}

package AbstractModels {

    abstract class Module{
        + icon : string
        + name : string
        + description : string
    }

    abstract class BasicModule{
        + comment : string
        + usefull_links : JSON \n array of {url,description}
    }

    abstract class ScholarShip{
        + type : string
        + amount_min : float {}
        + amount_max : float {}
    }

    abstract class Photo{
        + file : image
        + tile : string
        + description : MD
    }

    BasicModule --|> Module
    Photo --|> Module
    ScholarShip --|> BasicModule

    abstract class Campus{
        + name : string
        + Comment : MD
        + longitude : float
        + latitude : float
    }

    Campus --|> Module

}

Campus "*" -[bold,#green]- "1" City
MainCampus --|> Campus


@enduml