-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFlowDiagram.drawio
150 lines (150 loc) · 11.8 KB
/
FlowDiagram.drawio
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
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36" version="24.8.3">
<diagram name="Page-1" id="U24ihy-yBwmCIwKRuUSr">
<mxGraphModel dx="1000" dy="568" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="MXZ6crxHRBTjp2_8ThT7-27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="MXZ6crxHRBTjp2_8ThT7-1" target="MXZ6crxHRBTjp2_8ThT7-4">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="220" y="70" />
<mxPoint x="220" y="170" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-1" value="Users" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="80" y="40" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-2" value="USER LEVEL" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="600" y="90" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="MXZ6crxHRBTjp2_8ThT7-4" target="MXZ6crxHRBTjp2_8ThT7-1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="220" y="170" />
<mxPoint x="220" y="70" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="MXZ6crxHRBTjp2_8ThT7-4" target="MXZ6crxHRBTjp2_8ThT7-5">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="310" y="250" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-4" value="Front-end<div>(React Vite Tailwind)</div>" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="250" y="140" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-25" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="MXZ6crxHRBTjp2_8ThT7-5" target="MXZ6crxHRBTjp2_8ThT7-4">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-5" value="Back-end<div>(Express.js with Firebase Admin SDK)</div>" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="410" y="220" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-23" value="Get data only" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="MXZ6crxHRBTjp2_8ThT7-6" target="MXZ6crxHRBTjp2_8ThT7-5">
<mxGeometry x="0.2" y="-40" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-6" value="Firestore Database &amp; Firebase Storage" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="410" y="330" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-16" value="Watchdog triggered<div>sending result</div>" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="MXZ6crxHRBTjp2_8ThT7-7" target="MXZ6crxHRBTjp2_8ThT7-6">
<mxGeometry x="-0.375" relative="1" as="geometry">
<Array as="points">
<mxPoint x="640" y="360" />
</Array>
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-7" value="Google Cloud Compute Engine (VM Instance)" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="580" y="410" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-14" value="File Transfer Protocol (FTP)" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="MXZ6crxHRBTjp2_8ThT7-8" target="MXZ6crxHRBTjp2_8ThT7-7">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-19" value="Data Taken" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="MXZ6crxHRBTjp2_8ThT7-8" target="MXZ6crxHRBTjp2_8ThT7-13">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-8" value="ESP32 CAM&nbsp;" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="120" y="620" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-15" value="HTTP Post<div>via Firebase SDK ESP</div>" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="MXZ6crxHRBTjp2_8ThT7-9" target="MXZ6crxHRBTjp2_8ThT7-6">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-9" value="ESP32 ToF&nbsp;" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="120" y="540" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-11" value="Deployed with tar file transfer via SCP" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="MXZ6crxHRBTjp2_8ThT7-10" target="MXZ6crxHRBTjp2_8ThT7-7">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-10" value="Trained model of YoloV5s<div>(with Firebase Admin SDK for uploading result and Watchdog in mounting file via docker)</div>" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="540" y="750" width="200" height="80" as="geometry" />
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-18" value="Develop" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="MXZ6crxHRBTjp2_8ThT7-12" target="MXZ6crxHRBTjp2_8ThT7-10">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-12" value="Model training and testing" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="330" y="760" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-17" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="MXZ6crxHRBTjp2_8ThT7-13" target="MXZ6crxHRBTjp2_8ThT7-12">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-21" value="Data input" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="MXZ6crxHRBTjp2_8ThT7-17">
<mxGeometry x="-0.1022" y="-2" relative="1" as="geometry">
<mxPoint y="-2" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-13" value="Data training" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="120" y="760" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-29" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="10" y="120" as="sourcePoint" />
<mxPoint x="730" y="120" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-30" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="10" y="310" as="sourcePoint" />
<mxPoint x="730" y="310" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-31" value="SOFTWARE LEVEL" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="570" y="280" width="150" height="30" as="geometry" />
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-32" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="10" y="500" as="sourcePoint" />
<mxPoint x="730" y="500" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-33" value="DATABASE LEVEL" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="10" y="470" width="150" height="30" as="geometry" />
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-34" value="Deployed using Vercel Project Vite" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="380" y="155" width="280" height="30" as="geometry" />
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-35" value="Deployed using Vercel Serverless Function" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="60" y="250" width="350" height="30" as="geometry" />
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-36" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="10" y="710" as="sourcePoint" />
<mxPoint x="730" y="710" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-37" value="HARDWARE LEVEL" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="480" y="680" width="160" height="30" as="geometry" />
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-38" value="AI LEVEL" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="10" y="830" width="160" height="30" as="geometry" />
</mxCell>
<mxCell id="MXZ6crxHRBTjp2_8ThT7-39" value="Developed with Docker" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="290" y="720" width="220" height="30" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>