aboutsummaryrefslogtreecommitdiff
path: root/docs/architecture-tiers-and-layers.drawio
diff options
context:
space:
mode:
authorAkash Keshav <112591754+domesticchores@users.noreply.github.com>2025-02-16 17:04:33 -0500
committerAkash Keshav <112591754+domesticchores@users.noreply.github.com>2025-02-16 17:04:33 -0500
commitae0bff7e12edbd6f4e76cf32468f5d5607e770a6 (patch)
tree351461ddfb35d4b0f973d9eba223a660a5d50398 /docs/architecture-tiers-and-layers.drawio
parent781da6af80a6a1391bfe1d6445f6d59a28362c72 (diff)
downloadJellySolutions-ae0bff7e12edbd6f4e76cf32468f5d5607e770a6.tar.gz
JellySolutions-ae0bff7e12edbd6f4e76cf32468f5d5607e770a6.tar.bz2
JellySolutions-ae0bff7e12edbd6f4e76cf32468f5d5607e770a6.zip
added design doc and relevant diagrams. -ak
Diffstat (limited to 'docs/architecture-tiers-and-layers.drawio')
-rw-r--r--docs/architecture-tiers-and-layers.drawio235
1 files changed, 235 insertions, 0 deletions
diff --git a/docs/architecture-tiers-and-layers.drawio b/docs/architecture-tiers-and-layers.drawio
new file mode 100644
index 0000000..e3fb576
--- /dev/null
+++ b/docs/architecture-tiers-and-layers.drawio
@@ -0,0 +1,235 @@
+<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:135.0) Gecko/20100101 Firefox/135.0" version="26.0.13">
+ <diagram name="Page-1" id="P8hgUCnVgUD2r0shnHkA">
+ <mxGraphModel dx="1105" dy="566" 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="Ork7YycwdDH3GpRj4XOS-1" value="View" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;" vertex="1" parent="1">
+ <mxGeometry x="125" y="220" width="120" height="120" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-3" value="ViewModel" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;" vertex="1" parent="1">
+ <mxGeometry x="285" y="220" width="240" height="120" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-4" value="Model" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;" vertex="1" parent="1">
+ <mxGeometry x="565" y="220" width="355" height="120" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-5" value="Web Interface" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
+ <mxGeometry x="135" y="270" width="100" height="50" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-6" value="User" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
+ <mxGeometry x="65" y="250" width="30" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-7" value="&lt;div&gt;REST API&lt;/div&gt;&lt;div&gt;(CupboardController)&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
+ <mxGeometry x="300" y="270" width="115" height="50" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-8" value="&lt;div&gt;Service&lt;/div&gt;&lt;div&gt;(TBD)&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;dashed=1;dashPattern=8 8;" vertex="1" parent="1">
+ <mxGeometry x="435" y="270" width="80" height="50" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-9" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#ffe6cc;strokeColor=#d79b00;" edge="1" parent="1" target="Ork7YycwdDH3GpRj4XOS-5">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="105" y="295" as="sourcePoint" />
+ <mxPoint x="415" y="370" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-10" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#ffe6cc;strokeColor=#d79b00;" edge="1" parent="1" target="Ork7YycwdDH3GpRj4XOS-7">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="235" y="294.78" as="sourcePoint" />
+ <mxPoint x="265" y="294.78" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-11" value="" style="endArrow=classic;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="415" y="294.78" as="sourcePoint" />
+ <mxPoint x="435" y="295" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-12" value="" style="endArrow=classic;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" target="Ork7YycwdDH3GpRj4XOS-13">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="515" y="294.78" as="sourcePoint" />
+ <mxPoint x="555" y="295" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-13" value="Model" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
+ <mxGeometry x="575" y="270" width="100" height="50" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-14" value="Persistence" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
+ <mxGeometry x="695" y="270" width="100" height="50" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-15" value="" style="endArrow=classic;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="Ork7YycwdDH3GpRj4XOS-13" target="Ork7YycwdDH3GpRj4XOS-14">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="675" y="294.78" as="sourcePoint" />
+ <mxPoint x="695" y="295" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-17" value="Storage" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
+ <mxGeometry x="980" y="270" width="100" height="50" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-19" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1" source="Ork7YycwdDH3GpRj4XOS-5">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="195" y="440" as="sourcePoint" />
+ <mxPoint x="185" y="380" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-20" value="&lt;div&gt;Angular&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
+ <mxGeometry x="305" y="100" width="100" height="20" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-21" value="Frameworks" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+ <mxGeometry x="235" y="125" width="60" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-22" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="357.19" y="320" as="sourcePoint" />
+ <mxPoint x="357" y="380" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-26" value="Any Modern Browser" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
+ <mxGeometry x="530" y="120" width="100" height="40" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-27" value="Platform" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+ <mxGeometry x="460" y="125" width="60" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-32" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="1029.5700000000002" y="320" as="sourcePoint" />
+ <mxPoint x="1030" y="380" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-33" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="474.76" y="320" as="sourcePoint" />
+ <mxPoint x="474.57" y="380" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-34" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="624.76" y="320" as="sourcePoint" />
+ <mxPoint x="624.5699999999999" y="380" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-35" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="744.76" y="320" as="sourcePoint" />
+ <mxPoint x="744.5699999999999" y="380" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-36" value="Usage" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+ <mxGeometry x="50" y="390" width="60" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-38" value="TBD" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
+ <mxGeometry x="135" y="380" width="100" height="40" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-39" value="SpringBoot" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1">
+ <mxGeometry x="307.5" y="380" width="100" height="40" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-41" value="REST API" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1">
+ <mxGeometry x="305" y="120" width="100" height="20" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-43" value="Java" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fad7ac;strokeColor=#b46504;" vertex="1" parent="1">
+ <mxGeometry x="305" y="140" width="100" height="20" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-44" value="TypeScript" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
+ <mxGeometry x="305" y="160" width="100" height="20" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-45" value="Any Modern Operating System" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
+ <mxGeometry x="740" y="120" width="100" height="40" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-46" value="OS" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+ <mxGeometry x="670" y="125" width="60" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-48" value="Need" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fad7ac;strokeColor=#b46504;" vertex="1" parent="1">
+ <mxGeometry x="575" y="380" width="100" height="20" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-56" value="DAO" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fad7ac;strokeColor=#b46504;" vertex="1" parent="1">
+ <mxGeometry x="695" y="380" width="100" height="20" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-58" value="FileDAO" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fad7ac;strokeColor=#b46504;" vertex="1" parent="1">
+ <mxGeometry x="695" y="400" width="100" height="20" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-61" value="" style="endArrow=classic;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="Ork7YycwdDH3GpRj4XOS-14" target="Ork7YycwdDH3GpRj4XOS-60">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="795" y="295" as="sourcePoint" />
+ <mxPoint x="1010" y="295" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-60" value="Controller" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
+ <mxGeometry x="810" y="270" width="100" height="50" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-63" value="" style="endArrow=classic;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="Ork7YycwdDH3GpRj4XOS-60" target="Ork7YycwdDH3GpRj4XOS-17">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="910" y="295" as="sourcePoint" />
+ <mxPoint x="1010" y="295" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-18" value="&lt;div&gt;File&lt;/div&gt;&lt;div&gt;I/O&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+ <mxGeometry x="920" y="280" width="60" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-69" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="859.76" y="320" as="sourcePoint" />
+ <mxPoint x="859.5699999999999" y="380" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-70" value="&lt;div&gt;Cupboard&lt;/div&gt;&lt;div&gt;Controller&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fad7ac;strokeColor=#b46504;" vertex="1" parent="1">
+ <mxGeometry x="810" y="380" width="100" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-72" value="TBD" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
+ <mxGeometry x="435" y="380" width="80" height="40" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-73" value="&lt;div&gt;Remote&lt;/div&gt;&lt;div&gt;Storage Location&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" vertex="1" parent="1">
+ <mxGeometry x="980" y="380" width="100" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-74" value="Any Modern Browser" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
+ <mxGeometry x="135" y="480" width="100" height="40" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-76" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="184.47" y="420" as="sourcePoint" />
+ <mxPoint x="184.47" y="480" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-77" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="356.19" y="420" as="sourcePoint" />
+ <mxPoint x="356" y="480" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-78" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="1028.5700000000002" y="420" as="sourcePoint" />
+ <mxPoint x="1029" y="480" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-79" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="473.76" y="420" as="sourcePoint" />
+ <mxPoint x="473.57" y="480" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-80" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="623.76" y="420" as="sourcePoint" />
+ <mxPoint x="623.5699999999999" y="480" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-81" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="743.76" y="420" as="sourcePoint" />
+ <mxPoint x="743.5699999999999" y="480" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-82" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="858.76" y="420" as="sourcePoint" />
+ <mxPoint x="858.5699999999999" y="480" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-83" value="Any Modern Operating System" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
+ <mxGeometry x="307.5" y="480" width="602.5" height="40" as="geometry" />
+ </mxCell>
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-84" value="Any Modern Operating System" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
+ <mxGeometry x="980" y="480" width="100" height="40" as="geometry" />
+ </mxCell>
+ </root>
+ </mxGraphModel>
+ </diagram>
+</mxfile>