ApfelNetzwerk/docs/use_case_diagram.svg

149 lines
8.3 KiB
XML
Raw Permalink Normal View History

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 12.1.1 (0)
-->
<!-- Pages: 1 -->
<svg width="750pt" height="536pt"
viewBox="0.00 0.00 750.25 535.56" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 531.56)">
<polygon fill="white" stroke="none" points="-4,4 -4,-531.56 746.25,-531.56 746.25,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_sensor_nodes</title>
<polygon fill="none" stroke="blue" stroke-dasharray="5,2" points="8,-314.83 8,-519.56 716,-519.56 716,-314.83 8,-314.83"/>
<text text-anchor="middle" x="362" y="-502.26" font-family="Times,serif" font-size="14.00">Ad&#45;hoc Network</text>
</g>
<!-- Sensor Nodes 1 -->
<g id="node1" class="node">
<title>Sensor Nodes 1</title>
<ellipse fill="lightgrey" stroke="lightgrey" cx="362" cy="-458.38" rx="109.42" ry="27.93"/>
<text text-anchor="middle" x="362" y="-460.83" font-family="Arial" font-size="14.00">ESP8266 Nodes</text>
<text text-anchor="middle" x="362" y="-445.08" font-family="Arial" font-size="14.00">(Temperature Sensors)</text>
</g>
<!-- Exit Node -->
<g id="node5" class="node">
<title>Exit Node</title>
<ellipse fill="lightgrey" stroke="lightgrey" cx="362" cy="-243.15" rx="59.04" ry="27.93"/>
<text text-anchor="middle" x="362" y="-245.6" font-family="Arial" font-size="14.00">ESP8266</text>
<text text-anchor="middle" x="362" y="-229.85" font-family="Arial" font-size="14.00">(Exit Node)</text>
</g>
<!-- Sensor Nodes 1&#45;&gt;Exit Node -->
<g id="edge1" class="edge">
<title>Sensor Nodes 1&#45;&gt;Exit Node</title>
<path fill="none" stroke="black" d="M362,-430.37C362,-392.98 362,-325.25 362,-282.6"/>
<polygon fill="black" stroke="black" points="365.5,-282.79 362,-272.79 358.5,-282.79 365.5,-282.79"/>
<text text-anchor="middle" x="397.25" y="-345.34" font-family="Arial" font-size="14.00">Sends Data</text>
</g>
<!-- Sensor Nodes 2 -->
<g id="node2" class="node">
<title>Sensor Nodes 2</title>
<ellipse fill="lightgrey" stroke="lightgrey" cx="599" cy="-458.38" rx="109.42" ry="27.93"/>
<text text-anchor="middle" x="599" y="-460.83" font-family="Arial" font-size="14.00">ESP8266 Nodes</text>
<text text-anchor="middle" x="599" y="-445.08" font-family="Arial" font-size="14.00">(Temperature Sensors)</text>
</g>
<!-- Sensor Nodes 2&#45;&gt;Exit Node -->
<g id="edge2" class="edge">
<title>Sensor Nodes 2&#45;&gt;Exit Node</title>
<path fill="none" stroke="black" d="M569.94,-431.23C526.3,-391.97 443.98,-317.91 397.07,-275.71"/>
<polygon fill="black" stroke="black" points="399.64,-273.31 389.87,-269.22 394.96,-278.51 399.64,-273.31"/>
<text text-anchor="middle" x="543.18" y="-345.34" font-family="Arial" font-size="14.00">Sends Data</text>
</g>
<!-- Sensor Nodes 3 -->
<g id="node3" class="node">
<title>Sensor Nodes 3</title>
<ellipse fill="lightgrey" stroke="lightgrey" cx="171" cy="-350.77" rx="109.42" ry="27.93"/>
<text text-anchor="middle" x="171" y="-353.22" font-family="Arial" font-size="14.00">ESP8266 Nodes</text>
<text text-anchor="middle" x="171" y="-337.47" font-family="Arial" font-size="14.00">(Temperature Sensors)</text>
</g>
<!-- Sensor Nodes 3&#45;&gt;Exit Node -->
<g id="edge3" class="edge">
<title>Sensor Nodes 3&#45;&gt;Exit Node</title>
<path fill="none" stroke="black" d="M214.36,-324.68C233.63,-313.63 256.62,-300.58 277.5,-289.08 288.98,-282.76 301.41,-276.07 313.12,-269.84"/>
<polygon fill="black" stroke="black" points="314.64,-272.99 321.83,-265.21 311.36,-266.8 314.64,-272.99"/>
<text text-anchor="middle" x="312.75" y="-291.53" font-family="Arial" font-size="14.00">Sends Data</text>
</g>
<!-- Sensor Nodes 4 -->
<g id="node4" class="node">
<title>Sensor Nodes 4</title>
<ellipse fill="lightgrey" stroke="lightgrey" cx="125" cy="-458.38" rx="109.42" ry="27.93"/>
<text text-anchor="middle" x="125" y="-460.83" font-family="Arial" font-size="14.00">ESP8266 Nodes</text>
<text text-anchor="middle" x="125" y="-445.08" font-family="Arial" font-size="14.00">(Temperature Sensors)</text>
</g>
<!-- Sensor Nodes 4&#45;&gt;Sensor Nodes 3 -->
<g id="edge4" class="edge">
<title>Sensor Nodes 4&#45;&gt;Sensor Nodes 3</title>
<path fill="none" stroke="black" d="M136.85,-430.18C142.27,-417.74 148.77,-402.79 154.65,-389.3"/>
<polygon fill="black" stroke="black" points="157.81,-390.82 158.59,-380.26 151.39,-388.03 157.81,-390.82"/>
<text text-anchor="middle" x="186" y="-399.15" font-family="Arial" font-size="14.00">Sends Data</text>
</g>
<!-- Backend Server -->
<g id="node6" class="node">
<title>Backend Server</title>
<ellipse fill="lightgrey" stroke="lightgrey" cx="362" cy="-135.54" rx="70.71" ry="27.93"/>
<text text-anchor="middle" x="362" y="-137.99" font-family="Arial" font-size="14.00">Rust Backend</text>
<text text-anchor="middle" x="362" y="-122.24" font-family="Arial" font-size="14.00">(on PC)</text>
</g>
<!-- Exit Node&#45;&gt;Backend Server -->
<g id="edge5" class="edge">
<title>Exit Node&#45;&gt;Backend Server</title>
<path fill="none" stroke="black" d="M362,-214.96C362,-202.76 362,-188.16 362,-174.88"/>
<polygon fill="black" stroke="black" points="365.5,-175.16 362,-165.16 358.5,-175.16 365.5,-175.16"/>
<text text-anchor="middle" x="434" y="-183.92" font-family="Arial" font-size="14.00">Sends Data over WLAN</text>
</g>
<!-- Postgres DB -->
<g id="node7" class="node">
<title>Postgres DB</title>
<ellipse fill="lightgrey" stroke="lightgrey" cx="301" cy="-27.93" rx="63.82" ry="27.93"/>
<text text-anchor="middle" x="301" y="-30.38" font-family="Arial" font-size="14.00">PostgreSQL</text>
<text text-anchor="middle" x="301" y="-14.63" font-family="Arial" font-size="14.00">Database</text>
</g>
<!-- Backend Server&#45;&gt;Postgres DB -->
<g id="edge6" class="edge">
<title>Backend Server&#45;&gt;Postgres DB</title>
<path fill="none" stroke="black" d="M321.4,-112.2C313.61,-105.96 306.5,-98.42 302,-89.61 298.56,-82.88 296.97,-75.16 296.46,-67.53"/>
<polygon fill="black" stroke="black" points="299.97,-67.66 296.43,-57.68 292.97,-67.69 299.97,-67.66"/>
<text text-anchor="middle" x="360.5" y="-76.31" font-family="Arial" font-size="14.00">Persists Data in DB</text>
</g>
<!-- API -->
<g id="node9" class="node">
<title>API</title>
<ellipse fill="lightgrey" stroke="lightgrey" cx="523" cy="-27.93" rx="27" ry="18"/>
<text text-anchor="middle" x="523" y="-22.51" font-family="Arial" font-size="14.00">API</text>
</g>
<!-- Backend Server&#45;&gt;API -->
<g id="edge7" class="edge">
<title>Backend Server&#45;&gt;API</title>
<path fill="none" stroke="black" d="M393.17,-110.2C401.59,-103.56 410.67,-96.34 419,-89.61 427.53,-82.72 428.88,-79.96 438,-73.86 454.73,-62.68 474.56,-52.06 490.86,-43.96"/>
<polygon fill="black" stroke="black" points="492.17,-47.21 499.63,-39.68 489.11,-40.92 492.17,-47.21"/>
<text text-anchor="middle" x="508.5" y="-76.31" font-family="Arial" font-size="14.00">Provides API Endpoints</text>
</g>
<!-- Frontend -->
<g id="node8" class="node">
<title>Frontend</title>
<ellipse fill="lightgrey" stroke="lightgrey" cx="605" cy="-135.54" rx="94.58" ry="27.93"/>
<text text-anchor="middle" x="605" y="-137.99" font-family="Arial" font-size="14.00">Frontend</text>
<text text-anchor="middle" x="605" y="-122.24" font-family="Arial" font-size="14.00">(Web Browser/App)</text>
</g>
<!-- Frontend&#45;&gt;API -->
<g id="edge8" class="edge">
<title>Frontend&#45;&gt;API</title>
<path fill="none" stroke="black" d="M598.76,-107.2C595.34,-96.13 590.27,-83.67 583,-73.86 574.99,-63.06 563.67,-53.65 553.01,-46.28"/>
<polygon fill="black" stroke="black" points="555.09,-43.45 544.8,-40.92 551.26,-49.32 555.09,-43.45"/>
<text text-anchor="middle" x="655.22" y="-76.31" font-family="Arial" font-size="14.00">API Calls to Backend</text>
</g>
<!-- User -->
<g id="node10" class="node">
<title>User</title>
<ellipse fill="lightgrey" stroke="lightgrey" cx="605" cy="-243.15" rx="29.61" ry="18"/>
<text text-anchor="middle" x="605" y="-237.73" font-family="Arial" font-size="14.00">User</text>
</g>
<!-- User&#45;&gt;Frontend -->
<g id="edge9" class="edge">
<title>User&#45;&gt;Frontend</title>
<path fill="none" stroke="black" d="M605,-224.71C605,-211.29 605,-192.22 605,-175.25"/>
<polygon fill="black" stroke="black" points="608.5,-175.45 605,-165.45 601.5,-175.45 608.5,-175.45"/>
<text text-anchor="middle" x="673.62" y="-183.92" font-family="Arial" font-size="14.00">Interacts with Frontend</text>
</g>
</g>
</svg>