-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathClassDiagram
More file actions
222 lines (222 loc) · 26.1 KB
/
ClassDiagram
File metadata and controls
222 lines (222 loc) · 26.1 KB
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
<mxfile host="app.diagrams.net" modified="2021-03-03T15:20:07.590Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36" etag="1UfMyEcquUBwsAzOijTH" version="14.4.3" type="github">
<diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">
<mxGraphModel dx="1422" dy="738" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
<root>
<mxCell id="WIyWlLk6GJQsqaUBKTNV-0" />
<mxCell id="WIyWlLk6GJQsqaUBKTNV-1" parent="WIyWlLk6GJQsqaUBKTNV-0" />
<mxCell id="zkfFHV4jXpPFQw0GAbJ--6" value="GroupGoal" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="640" y="200" width="160" height="138" as="geometry">
<mxRectangle x="130" y="380" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--7" value="-groupId:int" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--6" vertex="1">
<mxGeometry y="26" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--9" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--6" vertex="1">
<mxGeometry y="52" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--17" value="<<enumeration>>
GoalType" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=40;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="600" y="50" width="160" height="100" as="geometry">
<mxRectangle x="550" y="140" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--18" value="Simple" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--17" vertex="1">
<mxGeometry y="40" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--19" value="Complex" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="zkfFHV4jXpPFQw0GAbJ--17" vertex="1">
<mxGeometry y="66" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--23" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--17" vertex="1">
<mxGeometry y="92" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--26" value="" style="endArrow=open;shadow=0;strokeWidth=1;rounded=0;endFill=1;edgeStyle=elbowEdgeStyle;elbow=vertical;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="fOt2clN8Hv5LVnkUOfTA-1" target="zkfFHV4jXpPFQw0GAbJ--17" edge="1">
<mxGeometry x="0.5" y="41" relative="1" as="geometry">
<mxPoint x="100" y="179" as="sourcePoint" />
<mxPoint x="280" y="172" as="targetPoint" />
<mxPoint x="-40" y="32" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--27" value="0..1" style="resizable=0;align=left;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="zkfFHV4jXpPFQw0GAbJ--26" connectable="0" vertex="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--28" value="1" style="resizable=0;align=right;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="zkfFHV4jXpPFQw0GAbJ--26" connectable="0" vertex="1">
<mxGeometry x="1" relative="1" as="geometry">
<mxPoint x="-7" y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="3uA7-vpTSDyjAOvNhWsR-0" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>Meal</b></p><hr size="1"><p style="margin: 0px ; margin-left: 4px"></p><p style="margin: 0px ; margin-left: 4px">- foods:ArrayList&lt;Food&gt;<br style="padding: 0px ; margin: 0px">- drinks:ArrayList&lt;Drink&gt;<br style="padding: 0px ; margin: 0px">- timeConsumed: Date/Time<br style="padding: 0px ; margin: 0px">- calorieCount:int<br style="padding: 0px ; margin: 0px"><br style="padding: 0px ; margin: 0px">+ createMeal(Time): void<br style="padding: 0px ; margin: 0px">+ addFood(): void<br style="padding: 0px ; margin: 0px">+ addDrink(): void<br style="padding: 0px ; margin: 0px">+ updateCalories(): void</p><div style="padding: 0px ; margin: 0px"><br style="padding: 0px ; margin: 0px"></div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="590" y="384" width="160" height="180" as="geometry" />
</mxCell>
<mxCell id="7LJqKkAm_eQGmLYCBISN-4" value="Group" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="280" y="637" width="160" height="170" as="geometry" />
</mxCell>
<mxCell id="7LJqKkAm_eQGmLYCBISN-5" value="- groupName: string
- groupMambers: List<User>
- groupAdmin: User
- groupGoal: GroupGoal
- groupId: string" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="7LJqKkAm_eQGmLYCBISN-4" vertex="1">
<mxGeometry y="26" width="160" height="84" as="geometry" />
</mxCell>
<mxCell id="7LJqKkAm_eQGmLYCBISN-6" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="7LJqKkAm_eQGmLYCBISN-4" vertex="1">
<mxGeometry y="110" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="7LJqKkAm_eQGmLYCBISN-7" value="+ emailGroupGoal: void
+ deleteGroup: void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="7LJqKkAm_eQGmLYCBISN-4" vertex="1">
<mxGeometry y="118" width="160" height="52" as="geometry" />
</mxCell>
<mxCell id="fOt2clN8Hv5LVnkUOfTA-0" value="Goal" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="330" y="60" width="160" height="200" as="geometry" />
</mxCell>
<mxCell id="fOt2clN8Hv5LVnkUOfTA-1" value="- goalId:int
- goalName:Str
- startDate:Date
- endDate:Date
- goalType: GoalType" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="fOt2clN8Hv5LVnkUOfTA-0" vertex="1">
<mxGeometry y="26" width="160" height="84" as="geometry" />
</mxCell>
<mxCell id="fOt2clN8Hv5LVnkUOfTA-2" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="fOt2clN8Hv5LVnkUOfTA-0" vertex="1">
<mxGeometry y="110" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="fOt2clN8Hv5LVnkUOfTA-3" value="+ checkDueDate(Date):Date
+ sendNotification():void
+ suggestGoal:Goal
+ deleteGoal():void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="fOt2clN8Hv5LVnkUOfTA-0" vertex="1">
<mxGeometry y="118" width="160" height="82" as="geometry" />
</mxCell>
<mxCell id="MOFNNi989I0m5LfGQqLs-0" value="Workout" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="570" y="580" width="160" height="240" as="geometry">
<mxRectangle x="550" y="140" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="MOFNNi989I0m5LfGQqLs-1" value="-Exercisename:string" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="MOFNNi989I0m5LfGQqLs-0" vertex="1">
<mxGeometry y="26" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="MOFNNi989I0m5LfGQqLs-2" value="-Sets:int" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="MOFNNi989I0m5LfGQqLs-0" vertex="1">
<mxGeometry y="52" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="MOFNNi989I0m5LfGQqLs-3" value="-Reps:int" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="MOFNNi989I0m5LfGQqLs-0" vertex="1">
<mxGeometry y="78" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="MOFNNi989I0m5LfGQqLs-4" value="-Calories:int" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="MOFNNi989I0m5LfGQqLs-0" vertex="1">
<mxGeometry y="104" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="MOFNNi989I0m5LfGQqLs-5" value="-Weekday:string" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="MOFNNi989I0m5LfGQqLs-0" vertex="1">
<mxGeometry y="130" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="MOFNNi989I0m5LfGQqLs-6" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="MOFNNi989I0m5LfGQqLs-0" vertex="1">
<mxGeometry y="156" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="MOFNNi989I0m5LfGQqLs-7" value="+ addExercise(Exercise):void" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="MOFNNi989I0m5LfGQqLs-0" vertex="1">
<mxGeometry y="164" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="MOFNNi989I0m5LfGQqLs-8" value="+ deleteExercise:void" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="MOFNNi989I0m5LfGQqLs-0" vertex="1">
<mxGeometry y="190" width="160" height="20" as="geometry" />
</mxCell>
<mxCell id="MOFNNi989I0m5LfGQqLs-10" value="+ changeWeekDay:void" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="MOFNNi989I0m5LfGQqLs-0" vertex="1">
<mxGeometry y="210" width="160" height="20" as="geometry" />
</mxCell>
<mxCell id="3uA7-vpTSDyjAOvNhWsR-2" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>Food</b></p><hr size="1"><p style="margin: 0px ; margin-left: 4px">- foodName:String<br style="padding: 0px ; margin: 0px">- calorieCount:int<br style="padding: 0px ; margin: 0px">- quantity(int)<br></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="870" y="40" width="160" height="90" as="geometry" />
</mxCell>
<mxCell id="3uA7-vpTSDyjAOvNhWsR-3" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>Drink</b></p><hr size="1"><p style="margin: 0px ; margin-left: 4px">- drinkName:String<br style="padding: 0px ; margin: 0px">- calorieCount:int<br style="padding: 0px ; margin: 0px">- quantity(int)<br></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="950" y="580" width="160" height="90" as="geometry" />
</mxCell>
<mxCell id="3uA7-vpTSDyjAOvNhWsR-4" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>Diet</b></p><hr size="1"><p style="margin: 0px ; margin-left: 4px">-foodName:String<br style="padding: 0px ; margin: 0px">-calorieCount:int<br style="padding: 0px ; margin: 0px">-quantity(int)<br></p><p style="margin: 0px ; margin-left: 4px"><br></p><p style="margin: 0px ; margin-left: 4px">+updateCalorieCount(int):<br style="padding: 0px ; margin: 0px">void<br style="padding: 0px ; margin: 0px">+updateQuantity(int): void<br></p><p style="margin: 0px ; margin-left: 4px"><br></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="940" y="320" width="160" height="150" as="geometry" />
</mxCell>
<mxCell id="3uA7-vpTSDyjAOvNhWsR-7" value="«enum»<br><b>ExerciseType</b>" style="html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="965" y="720" width="110" height="50" as="geometry" />
</mxCell>
<mxCell id="3uA7-vpTSDyjAOvNhWsR-8" value="" style="endArrow=diamondThin;endFill=0;endSize=24;html=1;entryX=1;entryY=0.25;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="3uA7-vpTSDyjAOvNhWsR-2" target="3uA7-vpTSDyjAOvNhWsR-0" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="14" y="595" as="sourcePoint" />
<mxPoint x="294" y="740" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="3uA7-vpTSDyjAOvNhWsR-9" value="" style="endArrow=diamondThin;endFill=0;endSize=24;html=1;entryX=1;entryY=0.75;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="3uA7-vpTSDyjAOvNhWsR-3" target="3uA7-vpTSDyjAOvNhWsR-0" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="14" y="705" as="sourcePoint" />
<mxPoint x="294" y="740" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="3uA7-vpTSDyjAOvNhWsR-10" value="" style="endArrow=diamondThin;endFill=1;endSize=24;html=1;entryX=0;entryY=0.25;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="3uA7-vpTSDyjAOvNhWsR-2" target="3uA7-vpTSDyjAOvNhWsR-4" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="294" y="578" as="sourcePoint" />
<mxPoint x="294" y="740" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="3uA7-vpTSDyjAOvNhWsR-11" value="" style="endArrow=diamondThin;endFill=1;endSize=24;html=1;entryX=0;entryY=0.75;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="3uA7-vpTSDyjAOvNhWsR-3" target="3uA7-vpTSDyjAOvNhWsR-4" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="304" y="653" as="sourcePoint" />
<mxPoint x="294" y="740" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="3uA7-vpTSDyjAOvNhWsR-12" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;edgeStyle=orthogonalEdgeStyle;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="MOFNNi989I0m5LfGQqLs-2" target="3uA7-vpTSDyjAOvNhWsR-7" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="-46" y="937.5" as="sourcePoint" />
<mxPoint x="30" y="920" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="i0l9CgU8-eGEiHrzTuOj-0" value="User" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="30" y="30" width="160" height="230" as="geometry" />
</mxCell>
<mxCell id="i0l9CgU8-eGEiHrzTuOj-1" value="- firstName: String
- secondName : String
- weight: int
- height: int
- BMI: int
- goals: List<Goal>
- groups: List<Group>
- days: List<Day>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="i0l9CgU8-eGEiHrzTuOj-0" vertex="1">
<mxGeometry y="26" width="160" height="144" as="geometry" />
</mxCell>
<mxCell id="i0l9CgU8-eGEiHrzTuOj-2" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="i0l9CgU8-eGEiHrzTuOj-0" vertex="1">
<mxGeometry y="170" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="i0l9CgU8-eGEiHrzTuOj-3" value="+ deleteUser()
+ updateUser()
+ calculateBMI()" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="i0l9CgU8-eGEiHrzTuOj-0" vertex="1">
<mxGeometry y="178" width="160" height="52" as="geometry" />
</mxCell>
<mxCell id="D-Qd2ryg0VfCRZX3lKAm-0" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="i0l9CgU8-eGEiHrzTuOj-1" target="fOt2clN8Hv5LVnkUOfTA-1" edge="1">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="160" y="420" as="sourcePoint" />
<mxPoint x="320" y="420" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="D-Qd2ryg0VfCRZX3lKAm-1" value="Day" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="330" y="420" width="160" height="144" as="geometry" />
</mxCell>
<mxCell id="D-Qd2ryg0VfCRZX3lKAm-2" value="- date: Date
- meals: List<Meal>
- workouts: List<Workout>
" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="D-Qd2ryg0VfCRZX3lKAm-1" vertex="1">
<mxGeometry y="26" width="160" height="84" as="geometry" />
</mxCell>
<mxCell id="D-Qd2ryg0VfCRZX3lKAm-3" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="D-Qd2ryg0VfCRZX3lKAm-1" vertex="1">
<mxGeometry y="110" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="D-Qd2ryg0VfCRZX3lKAm-4" value="+ saveData: void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="D-Qd2ryg0VfCRZX3lKAm-1" vertex="1">
<mxGeometry y="118" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="D-Qd2ryg0VfCRZX3lKAm-5" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;exitX=1.025;exitY=0.826;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="i0l9CgU8-eGEiHrzTuOj-1" target="D-Qd2ryg0VfCRZX3lKAm-2" edge="1">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="70" y="570" as="sourcePoint" />
<mxPoint x="230" y="570" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="D-Qd2ryg0VfCRZX3lKAm-6" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;exitX=1.019;exitY=0.903;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="i0l9CgU8-eGEiHrzTuOj-1" target="7LJqKkAm_eQGmLYCBISN-5" edge="1">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="70" y="570" as="sourcePoint" />
<mxPoint x="230" y="570" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="D-Qd2ryg0VfCRZX3lKAm-7" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="7LJqKkAm_eQGmLYCBISN-5" target="zkfFHV4jXpPFQw0GAbJ--6" edge="1">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="470" y="630" as="sourcePoint" />
<mxPoint x="630" y="630" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="D-Qd2ryg0VfCRZX3lKAm-8" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="D-Qd2ryg0VfCRZX3lKAm-2" target="3uA7-vpTSDyjAOvNhWsR-0" edge="1">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="470" y="570" as="sourcePoint" />
<mxPoint x="630" y="570" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="D-Qd2ryg0VfCRZX3lKAm-10" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;exitX=1.006;exitY=0.845;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="D-Qd2ryg0VfCRZX3lKAm-2" target="MOFNNi989I0m5LfGQqLs-3" edge="1">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="390" y="890" as="sourcePoint" />
<mxPoint x="550" y="890" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="D-Qd2ryg0VfCRZX3lKAm-11" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="fOt2clN8Hv5LVnkUOfTA-3" target="zkfFHV4jXpPFQw0GAbJ--7" edge="1">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="550" y="330" as="sourcePoint" />
<mxPoint x="710" y="330" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="d4qBoeUQXAFRGhN6OpnH-0" value="<font style="font-size: 24px">Appendix 2</font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="290" y="10" width="250" height="40" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>