donau

Donation authority for GNU Taler (experimental)
Log | Files | Refs | Submodules | README | LICENSE

commit a28fb79c2b8aec628d80eac5d68c0fdd5671aff5
parent edab9277a1e291a0c2c76b3c4db044867bb9d3a9
Author: Matyja Lukas Adam <lukas.matyja@students.bfh.ch>
Date:   Wed,  5 Jun 2024 12:29:07 +0200

update arch picture

Diffstat:
Mdoc/thesis/images/donau_system_arch.png | 0
Mdoc/thesis/images/uml/donau_system_arch.drawio | 172+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------
Mdoc/thesis/thesis.pdf | 0
3 files changed, 128 insertions(+), 44 deletions(-)

diff --git a/doc/thesis/images/donau_system_arch.png b/doc/thesis/images/donau_system_arch.png Binary files differ. diff --git a/doc/thesis/images/uml/donau_system_arch.drawio b/doc/thesis/images/uml/donau_system_arch.drawio @@ -1,101 +1,185 @@ -<mxfile host="app.diagrams.net" modified="2024-06-04T20:12:24.501Z" agent="Mozilla/5.0 (X11; Linux x86_64; rv:126.0) Gecko/20100101 Firefox/126.0" etag="PTGdJqgFEGB45qRsRi3k" version="24.4.13" type="device"> +<mxfile host="Electron" modified="2024-06-05T10:27:08.149Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.4.8 Chrome/124.0.6367.207 Electron/30.0.6 Safari/537.36" etag="x8lq_9H0ieLOgMtV8RC4" version="24.4.8" type="device"> <diagram name="Page-1" id="90a13364-a465-7bf4-72fc-28e22215d7a0"> - <mxGraphModel dx="2457" dy="966" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1.5" pageWidth="1169" pageHeight="826" background="none" math="0" shadow="0"> + <mxGraphModel dx="1793" dy="2287" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1.5" pageWidth="1169" pageHeight="826" background="none" math="0" shadow="0"> <root> <mxCell id="0" style=";html=1;" /> <mxCell id="1" style=";html=1;" parent="0" /> <mxCell id="3a17f1ce550125da-7" value="&lt;div&gt;Database&lt;/div&gt;" style="whiteSpace=wrap;html=1;shadow=1;fontSize=18;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1"> - <mxGeometry x="960" y="600" width="120" height="60" as="geometry" /> + <mxGeometry x="897" y="600" width="120" height="60" as="geometry" /> </mxCell> - <mxCell id="3a17f1ce550125da-20" style="edgeStyle=elbowEdgeStyle;rounded=0;html=1;startArrow=none;startFill=0;jettySize=auto;orthogonalLoop=1;fontSize=18;elbow=vertical;" parent="1" edge="1"> - <mxGeometry relative="1" as="geometry"> - <Array as="points"> - <mxPoint x="554" y="518.5" /> - </Array> - <mxPoint x="514" y="518.5" as="sourcePoint" /> - <mxPoint x="597" y="518.5" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="U7Q_6XmOLSdSQr47prqe-3" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="3a17f1ce550125da-8" target="3a17f1ce550125da-11"> + <mxCell id="U7Q_6XmOLSdSQr47prqe-3" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="3a17f1ce550125da-8" target="3a17f1ce550125da-11" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="3a17f1ce550125da-8" value="REST API" style="whiteSpace=wrap;html=1;shadow=1;fontSize=18;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1"> - <mxGeometry x="597" y="444" width="120" height="150" as="geometry" /> + <mxGeometry x="534" y="444" width="120" height="150" as="geometry" /> </mxCell> <mxCell id="3a17f1ce550125da-21" style="edgeStyle=elbowEdgeStyle;rounded=0;html=1;startArrow=none;startFill=0;jettySize=auto;orthogonalLoop=1;fontSize=18;elbow=vertical;" parent="1" source="3a17f1ce550125da-9" edge="1"> <mxGeometry relative="1" as="geometry"> - <mxPoint x="963" y="630" as="targetPoint" /> + <mxPoint x="900" y="630" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="3a17f1ce550125da-9" value="Database plugin" style="whiteSpace=wrap;html=1;shadow=1;fontSize=18;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1"> - <mxGeometry x="760" y="600" width="120" height="60" as="geometry" /> + <mxGeometry x="697" y="600" width="120" height="60" as="geometry" /> </mxCell> - <mxCell id="U7Q_6XmOLSdSQr47prqe-2" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="3a17f1ce550125da-11" target="3a17f1ce550125da-9"> + <mxCell id="U7Q_6XmOLSdSQr47prqe-2" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="3a17f1ce550125da-11" target="3a17f1ce550125da-9" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> - <mxCell id="U7Q_6XmOLSdSQr47prqe-20" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="3a17f1ce550125da-11" target="U7Q_6XmOLSdSQr47prqe-19"> + <mxCell id="U7Q_6XmOLSdSQr47prqe-20" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="3a17f1ce550125da-11" target="U7Q_6XmOLSdSQr47prqe-19" edge="1"> <mxGeometry relative="1" as="geometry"> <Array as="points"> - <mxPoint x="1119" y="519" /> - <mxPoint x="1119" y="472" /> + <mxPoint x="1056" y="519" /> + <mxPoint x="1056" y="472" /> </Array> </mxGeometry> </mxCell> - <mxCell id="U7Q_6XmOLSdSQr47prqe-22" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="3a17f1ce550125da-11" target="U7Q_6XmOLSdSQr47prqe-21"> + <mxCell id="U7Q_6XmOLSdSQr47prqe-22" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="3a17f1ce550125da-11" target="U7Q_6XmOLSdSQr47prqe-21" edge="1"> <mxGeometry relative="1" as="geometry"> <Array as="points"> - <mxPoint x="1119" y="519" /> - <mxPoint x="1119" y="554" /> + <mxPoint x="1056" y="519" /> + <mxPoint x="1056" y="554" /> </Array> </mxGeometry> </mxCell> - <mxCell id="U7Q_6XmOLSdSQr47prqe-24" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="3a17f1ce550125da-11" target="U7Q_6XmOLSdSQr47prqe-23"> + <mxCell id="U7Q_6XmOLSdSQr47prqe-24" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="3a17f1ce550125da-11" target="U7Q_6XmOLSdSQr47prqe-23" edge="1"> <mxGeometry relative="1" as="geometry"> <Array as="points"> - <mxPoint x="1119" y="519" /> - <mxPoint x="1119" y="635" /> + <mxPoint x="1056" y="519" /> + <mxPoint x="1056" y="635" /> </Array> </mxGeometry> </mxCell> <mxCell id="3a17f1ce550125da-11" value="&lt;div&gt;HTTP&lt;/div&gt;&lt;div&gt;Handler&lt;/div&gt;" style="whiteSpace=wrap;html=1;shadow=1;fontSize=18;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1"> - <mxGeometry x="760" y="489" width="120" height="60" as="geometry" /> + <mxGeometry x="697" y="489" width="120" height="60" as="geometry" /> </mxCell> - <mxCell id="U7Q_6XmOLSdSQr47prqe-1" value="" style="swimlane;startSize=0;" vertex="1" parent="1"> - <mxGeometry x="580" y="420" width="320" height="260" as="geometry"> + <mxCell id="U7Q_6XmOLSdSQr47prqe-1" value="" style="swimlane;startSize=0;" parent="1" vertex="1"> + <mxGeometry x="517" y="420" width="320" height="260" as="geometry"> <mxRectangle x="1220" y="20" width="50" height="40" as="alternateBounds" /> </mxGeometry> </mxCell> - <mxCell id="U7Q_6XmOLSdSQr47prqe-4" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;Donau server&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> - <mxGeometry x="672.5" y="690" width="135" height="30" as="geometry" /> + <mxCell id="U7Q_6XmOLSdSQr47prqe-4" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;Donau server&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> + <mxGeometry x="609.5" y="690" width="135" height="30" as="geometry" /> </mxCell> - <mxCell id="U7Q_6XmOLSdSQr47prqe-5" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;Postgresql&lt;br&gt;&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> - <mxGeometry x="952.5" y="690" width="135" height="30" as="geometry" /> + <mxCell id="U7Q_6XmOLSdSQr47prqe-5" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;Postgresql&lt;br&gt;&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> + <mxGeometry x="889.5" y="690" width="135" height="30" as="geometry" /> </mxCell> - <mxCell id="U7Q_6XmOLSdSQr47prqe-6" value="" style="swimlane;startSize=0;" vertex="1" parent="1"> - <mxGeometry x="940" y="580" width="160" height="100" as="geometry"> + <mxCell id="U7Q_6XmOLSdSQr47prqe-6" value="" style="swimlane;startSize=0;" parent="1" vertex="1"> + <mxGeometry x="877" y="580" width="160" height="100" as="geometry"> <mxRectangle x="1220" y="20" width="50" height="40" as="alternateBounds" /> </mxGeometry> </mxCell> - <mxCell id="U7Q_6XmOLSdSQr47prqe-7" value="Network requests" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> - <mxGeometry x="500" y="480" width="70" height="30" as="geometry" /> + <mxCell id="U7Q_6XmOLSdSQr47prqe-7" value="Network requests" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> + <mxGeometry x="438" y="480" width="70" height="30" as="geometry" /> </mxCell> - <mxCell id="U7Q_6XmOLSdSQr47prqe-12" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;Secmod Helper&lt;br&gt;&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> - <mxGeometry x="1149.25" y="690" width="147.5" height="30" as="geometry" /> + <mxCell id="U7Q_6XmOLSdSQr47prqe-12" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;Secmod Helper for key management&lt;br&gt;&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> + <mxGeometry x="1075.25" y="689" width="173.75" height="38" as="geometry" /> </mxCell> - <mxCell id="U7Q_6XmOLSdSQr47prqe-13" value="" style="swimlane;startSize=0;" vertex="1" parent="1"> - <mxGeometry x="1143" y="420" width="160" height="260" as="geometry"> + <mxCell id="U7Q_6XmOLSdSQr47prqe-13" value="" style="swimlane;startSize=0;" parent="1" vertex="1"> + <mxGeometry x="1080" y="420" width="160" height="260" as="geometry"> <mxRectangle x="1220" y="20" width="50" height="40" as="alternateBounds" /> </mxGeometry> </mxCell> - <mxCell id="U7Q_6XmOLSdSQr47prqe-19" value="EdDSA" style="whiteSpace=wrap;html=1;fontSize=18;fillColor=#f5f5f5;strokeColor=#666666;shadow=1;" vertex="1" parent="U7Q_6XmOLSdSQr47prqe-13"> + <mxCell id="U7Q_6XmOLSdSQr47prqe-19" value="EdDSA" style="whiteSpace=wrap;html=1;fontSize=18;fillColor=#f5f5f5;strokeColor=#666666;shadow=1;" parent="U7Q_6XmOLSdSQr47prqe-13" vertex="1"> <mxGeometry x="20" y="22" width="120" height="60" as="geometry" /> </mxCell> - <mxCell id="U7Q_6XmOLSdSQr47prqe-21" value="RSA" style="whiteSpace=wrap;html=1;fontSize=18;fillColor=#f5f5f5;strokeColor=#666666;shadow=1;" vertex="1" parent="U7Q_6XmOLSdSQr47prqe-13"> + <mxCell id="U7Q_6XmOLSdSQr47prqe-21" value="RSA" style="whiteSpace=wrap;html=1;fontSize=18;fillColor=#f5f5f5;strokeColor=#666666;shadow=1;" parent="U7Q_6XmOLSdSQr47prqe-13" vertex="1"> <mxGeometry x="22" y="104" width="120" height="60" as="geometry" /> </mxCell> - <mxCell id="U7Q_6XmOLSdSQr47prqe-23" value="CS" style="whiteSpace=wrap;html=1;fontSize=18;fillColor=#f5f5f5;strokeColor=#666666;shadow=1;" vertex="1" parent="U7Q_6XmOLSdSQr47prqe-13"> + <mxCell id="U7Q_6XmOLSdSQr47prqe-23" value="CS" style="whiteSpace=wrap;html=1;fontSize=18;fillColor=#f5f5f5;strokeColor=#666666;shadow=1;" parent="U7Q_6XmOLSdSQr47prqe-13" vertex="1"> <mxGeometry x="20" y="185" width="120" height="60" as="geometry" /> </mxCell> + <mxCell id="EpoHkzIW9bfajgbI6bdJ-7" value="" style="swimlane;startSize=0;" vertex="1" parent="1"> + <mxGeometry x="165" y="-118" width="320" height="260" as="geometry"> + <mxRectangle x="1220" y="20" width="50" height="40" as="alternateBounds" /> + </mxGeometry> + </mxCell> + <mxCell id="EpoHkzIW9bfajgbI6bdJ-4" value="Database" style="whiteSpace=wrap;html=1;shadow=1;fontSize=18;fillColor=#f5f5f5;strokeColor=#666666;" vertex="1" parent="EpoHkzIW9bfajgbI6bdJ-7"> + <mxGeometry x="178" y="30" width="120" height="60" as="geometry" /> + </mxCell> + <mxCell id="EpoHkzIW9bfajgbI6bdJ-6" value="&lt;div&gt;REST Client&lt;/div&gt;" style="whiteSpace=wrap;html=1;shadow=1;fontSize=18;fillColor=#f5f5f5;strokeColor=#666666;" vertex="1" parent="EpoHkzIW9bfajgbI6bdJ-7"> + <mxGeometry x="178" y="139" width="120" height="60" as="geometry" /> + </mxCell> + <mxCell id="EpoHkzIW9bfajgbI6bdJ-5" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="EpoHkzIW9bfajgbI6bdJ-7" source="EpoHkzIW9bfajgbI6bdJ-6" target="EpoHkzIW9bfajgbI6bdJ-4"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="EpoHkzIW9bfajgbI6bdJ-3" value="Frontend" style="whiteSpace=wrap;html=1;shadow=1;fontSize=18;fillColor=#f5f5f5;strokeColor=#666666;" vertex="1" parent="EpoHkzIW9bfajgbI6bdJ-7"> + <mxGeometry x="17" y="94" width="120" height="150" as="geometry" /> + </mxCell> + <mxCell id="EpoHkzIW9bfajgbI6bdJ-2" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="EpoHkzIW9bfajgbI6bdJ-7" source="EpoHkzIW9bfajgbI6bdJ-3" target="EpoHkzIW9bfajgbI6bdJ-6"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="EpoHkzIW9bfajgbI6bdJ-8" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;Donor Client&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="257.5" y="152" width="135" height="30" as="geometry" /> + </mxCell> + <mxCell id="EpoHkzIW9bfajgbI6bdJ-22" value="" style="swimlane;startSize=0;" vertex="1" parent="1"> + <mxGeometry x="838" y="-115" width="320" height="260" as="geometry"> + <mxRectangle x="1220" y="20" width="50" height="40" as="alternateBounds" /> + </mxGeometry> + </mxCell> + <mxCell id="EpoHkzIW9bfajgbI6bdJ-21" value="&lt;div&gt;HTTP&lt;/div&gt;&lt;div&gt;Handler&lt;/div&gt;" style="whiteSpace=wrap;html=1;shadow=1;fontSize=18;fillColor=#f5f5f5;strokeColor=#666666;" vertex="1" parent="EpoHkzIW9bfajgbI6bdJ-22"> + <mxGeometry x="179" y="134" width="120" height="60" as="geometry" /> + </mxCell> + <mxCell id="EpoHkzIW9bfajgbI6bdJ-19" value="Database" style="whiteSpace=wrap;html=1;shadow=1;fontSize=18;fillColor=#f5f5f5;strokeColor=#666666;" vertex="1" parent="EpoHkzIW9bfajgbI6bdJ-22"> + <mxGeometry x="179" y="27" width="120" height="60" as="geometry" /> + </mxCell> + <mxCell id="EpoHkzIW9bfajgbI6bdJ-20" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="EpoHkzIW9bfajgbI6bdJ-22" source="EpoHkzIW9bfajgbI6bdJ-21" target="EpoHkzIW9bfajgbI6bdJ-19"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="EpoHkzIW9bfajgbI6bdJ-18" value="REST API" style="whiteSpace=wrap;html=1;shadow=1;fontSize=18;fillColor=#f5f5f5;strokeColor=#666666;" vertex="1" parent="EpoHkzIW9bfajgbI6bdJ-22"> + <mxGeometry x="17" y="90" width="120" height="150" as="geometry" /> + </mxCell> + <mxCell id="EpoHkzIW9bfajgbI6bdJ-17" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="EpoHkzIW9bfajgbI6bdJ-22" source="EpoHkzIW9bfajgbI6bdJ-18" target="EpoHkzIW9bfajgbI6bdJ-21"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="EpoHkzIW9bfajgbI6bdJ-23" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;Charity Server&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="930.5" y="155" width="135" height="30" as="geometry" /> + </mxCell> + <mxCell id="EpoHkzIW9bfajgbI6bdJ-25" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="EpoHkzIW9bfajgbI6bdJ-21" target="3a17f1ce550125da-8"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="1138" y="-16.62" as="sourcePoint" /> + <mxPoint x="1298" y="-16.62" as="targetPoint" /> + <Array as="points"> + <mxPoint x="1077" y="314" /> + <mxPoint x="594" y="314" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="EpoHkzIW9bfajgbI6bdJ-27" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="EpoHkzIW9bfajgbI6bdJ-6" target="3a17f1ce550125da-8"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="465" y="-16.620000000000005" as="sourcePoint" /> + <mxPoint x="856" y="-16.620000000000005" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="EpoHkzIW9bfajgbI6bdJ-26" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="EpoHkzIW9bfajgbI6bdJ-6" target="EpoHkzIW9bfajgbI6bdJ-18"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="464" y="-16" as="sourcePoint" /> + <mxPoint x="507" y="-16" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="EpoHkzIW9bfajgbI6bdJ-28" value="Network requests" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="598" y="379" width="70" height="30" as="geometry" /> + </mxCell> + <mxCell id="EpoHkzIW9bfajgbI6bdJ-29" value="Network requests" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="759" y="13" width="70" height="30" as="geometry" /> + </mxCell> + <mxCell id="EpoHkzIW9bfajgbI6bdJ-30" value="Command Line Interface Charity" style="whiteSpace=wrap;html=1;shadow=1;fontSize=18;fillColor=#f5f5f5;strokeColor=#666666;" vertex="1" parent="1"> + <mxGeometry x="1220" y="23.5" width="234" height="51" as="geometry" /> + </mxCell> + <mxCell id="EpoHkzIW9bfajgbI6bdJ-33" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="EpoHkzIW9bfajgbI6bdJ-30" target="EpoHkzIW9bfajgbI6bdJ-19"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="1318" as="sourcePoint" /> + <mxPoint x="1318" y="-47" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="EpoHkzIW9bfajgbI6bdJ-34" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="1337" y="75.5" as="sourcePoint" /> + <mxPoint x="594" y="445" as="targetPoint" /> + <Array as="points"> + <mxPoint x="1337" y="314" /> + <mxPoint x="594" y="314" /> + </Array> + </mxGeometry> + </mxCell> </root> </mxGraphModel> </diagram> diff --git a/doc/thesis/thesis.pdf b/doc/thesis/thesis.pdf Binary files differ.