aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/DesignDoc.md6
-rw-r--r--docs/architecture-tiers-and-layers.drawio195
-rw-r--r--docs/architecture-tiers-and-layers.pngbin77956 -> 82794 bytes
-rw-r--r--etc/Acceptance Test Plan.xlsxbin30285 -> 30698 bytes
4 files changed, 108 insertions, 93 deletions
diff --git a/docs/DesignDoc.md b/docs/DesignDoc.md
index 8996e67..27d14f6 100644
--- a/docs/DesignDoc.md
+++ b/docs/DesignDoc.md
@@ -17,6 +17,8 @@ geometry: margin=1in
Our project is intended to create a space to fund aquatic conservation, from physical ecosystems such as coral reefs to aquatic creatures such as jellyfish. Users will be able to donate funds, both physical and monetary, to individal 'needs', and see how close to reaching a funding goal each need is.
### Purpose
+
+The purpose of this project is to provide an avenue for companies to crowd-fund and for users to contribute to funds of their choosing.
> _**[Sprint 2 & 4]** Provide a very brief statement about the project and the most
> important user group and user goals._
@@ -34,6 +36,8 @@ Our project is intended to create a space to fund aquatic conservation, from phy
This section describes the features of the application.
+The requirements for this u-fund project to be functional include a system for organizations (administrators) to create funding goals (needs) that can be satisfied by clients (users).
+
> _In this section you do not need to be exhaustive and list every
> story. Focus on top-level features from the Vision document and
> maybe Epics and critical Stories._
@@ -186,6 +190,8 @@ In our model tier we have a Need class, a User class, and a UserAuth class. The
Currently around 100 tests, with roughly 95% coverage overall. Model tier is above 95% individually.
### Acceptance Testing
+
+The number of user storeis that have passed their a
> _**[Sprint 2 & 4]** Report on the number of user stories that have passed all their
> acceptance criteria tests, the number that have some acceptance
> criteria tests failing, and the number of user stories that
diff --git a/docs/architecture-tiers-and-layers.drawio b/docs/architecture-tiers-and-layers.drawio
index e3fb576..f60cd70 100644
--- a/docs/architecture-tiers-and-layers.drawio
+++ b/docs/architecture-tiers-and-layers.drawio
@@ -1,234 +1,243 @@
-<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">
+<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:136.0) Gecko/20100101 Firefox/136.0" version="26.0.14">
<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">
+ <mxGraphModel dx="1313" dy="673" 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">
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-1" value="View" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;" parent="1" vertex="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 id="Ork7YycwdDH3GpRj4XOS-3" value="ViewModel" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;" parent="1" vertex="1">
+ <mxGeometry x="285" y="220" width="355" 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 id="Ork7YycwdDH3GpRj4XOS-4" value="Model" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;" parent="1" vertex="1">
+ <mxGeometry x="680" y="220" width="240" 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">
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-5" value="Web Interface" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="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">
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-6" value="User" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="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">
+ <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;" parent="1" vertex="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">
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-8" value="&lt;div&gt;Service&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="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">
+ <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;" parent="1" target="Ork7YycwdDH3GpRj4XOS-5" edge="1">
<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">
+ <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;" parent="1" target="Ork7YycwdDH3GpRj4XOS-7" edge="1">
<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">
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-11" value="" style="endArrow=classic;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" edge="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 id="Ork7YycwdDH3GpRj4XOS-13" value="Model" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
+ <mxGeometry x="690" y="270" width="100" height="50" as="geometry" />
</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 id="Ork7YycwdDH3GpRj4XOS-14" value="Persistence" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
+ <mxGeometry x="810" 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">
+ <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;" parent="1" source="Ork7YycwdDH3GpRj4XOS-13" target="Ork7YycwdDH3GpRj4XOS-14" edge="1">
<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">
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-17" value="Storage" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="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">
+ <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;" parent="1" source="Ork7YycwdDH3GpRj4XOS-5" edge="1">
<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">
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-20" value="&lt;div&gt;Angular&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="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">
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-21" value="Frameworks" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="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">
+ <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;" parent="1" edge="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">
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-26" value="Any Modern Browser" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="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">
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-27" value="Platform" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="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">
+ <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;" parent="1" edge="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">
+ <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;" parent="1" edge="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">
+ <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;" parent="1" edge="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" />
+ <mxPoint x="739.76" y="320" as="sourcePoint" />
+ <mxPoint x="739.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">
+ <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;" parent="1" edge="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" />
+ <mxPoint x="859.76" y="320" as="sourcePoint" />
+ <mxPoint x="859.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">
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-36" value="Usage" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="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">
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-38" value="TBD" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="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">
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-39" value="SpringBoot" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" parent="1" vertex="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">
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-41" value="REST API" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" parent="1" vertex="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">
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-43" value="Java" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fad7ac;strokeColor=#b46504;" parent="1" vertex="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">
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-44" value="TypeScript" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="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">
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-45" value="Any Modern Operating System" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="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">
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-46" value="OS" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="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 id="Ork7YycwdDH3GpRj4XOS-48" value="Need" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fad7ac;strokeColor=#b46504;" parent="1" vertex="1">
+ <mxGeometry x="690" 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 id="Ork7YycwdDH3GpRj4XOS-56" value="DAO" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fad7ac;strokeColor=#b46504;" parent="1" vertex="1">
+ <mxGeometry x="810" 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 id="Ork7YycwdDH3GpRj4XOS-58" value="FileDAO" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fad7ac;strokeColor=#b46504;" parent="1" vertex="1">
+ <mxGeometry x="810" 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 id="Ork7YycwdDH3GpRj4XOS-60" value="Controller" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
+ <mxGeometry x="530" 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">
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-63" value="" style="endArrow=classic;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="Ork7YycwdDH3GpRj4XOS-14" target="Ork7YycwdDH3GpRj4XOS-17" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="910" y="295" as="sourcePoint" />
+ <mxPoint x="930" y="260" 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">
+ <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;" parent="1" vertex="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">
+ <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;" parent="1" edge="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" />
+ <mxPoint x="579.76" y="320" as="sourcePoint" />
+ <mxPoint x="579.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 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;" parent="1" vertex="1">
+ <mxGeometry x="530" 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">
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-74" value="Any Modern Browser" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="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">
+ <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;" parent="1" edge="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">
+ <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;" parent="1" edge="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">
+ <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;" parent="1" edge="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">
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-79" value="" style="endArrow=classic;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="473.76" y="420" as="sourcePoint" />
+ <mxPoint x="474" y="440" 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">
+ <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;" parent="1" edge="1" source="Ork7YycwdDH3GpRj4XOS-48">
<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" />
+ <mxPoint x="738.76" y="420" as="sourcePoint" />
+ <mxPoint x="738.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">
+ <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;" parent="1" edge="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" />
+ <mxPoint x="858.76" y="420" as="sourcePoint" />
+ <mxPoint x="858.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">
+ <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;" parent="1" edge="1" source="Ork7YycwdDH3GpRj4XOS-70">
<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" />
+ <mxPoint x="578.76" y="420" as="sourcePoint" />
+ <mxPoint x="578.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">
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-83" value="Any Modern Operating System" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="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">
+ <mxCell id="Ork7YycwdDH3GpRj4XOS-84" value="Any Modern Operating System" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="980" y="480" width="100" height="40" as="geometry" />
</mxCell>
+ <mxCell id="52uoB4Gf5a0lLT2oJs9e-1" 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-13">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="800" y="305" as="sourcePoint" />
+ <mxPoint x="820" y="305" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="52uoB4Gf5a0lLT2oJs9e-2" 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-8" target="Ork7YycwdDH3GpRj4XOS-60">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="810" y="315" as="sourcePoint" />
+ <mxPoint x="830" y="315" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="52uoB4Gf5a0lLT2oJs9e-3" value="Cupboard.json" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1">
+ <mxGeometry x="980" y="380" width="100" height="20" as="geometry" />
+ </mxCell>
+ <mxCell id="52uoB4Gf5a0lLT2oJs9e-4" value="User.json" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1">
+ <mxGeometry x="980" y="400" width="100" height="20" as="geometry" />
+ </mxCell>
+ <mxCell id="52uoB4Gf5a0lLT2oJs9e-5" value="UserService" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
+ <mxGeometry x="425" y="380" width="100" height="20" as="geometry" />
+ </mxCell>
+ <mxCell id="52uoB4Gf5a0lLT2oJs9e-6" value="CupboardService" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
+ <mxGeometry x="425" y="400" width="100" height="20" as="geometry" />
+ </mxCell>
+ <mxCell id="52uoB4Gf5a0lLT2oJs9e-7" value="AuthService" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
+ <mxGeometry x="425" y="420" width="100" height="20" as="geometry" />
+ </mxCell>
</root>
</mxGraphModel>
</diagram>
diff --git a/docs/architecture-tiers-and-layers.png b/docs/architecture-tiers-and-layers.png
index 02647b2..4d0bdae 100644
--- a/docs/architecture-tiers-and-layers.png
+++ b/docs/architecture-tiers-and-layers.png
Binary files differ
diff --git a/etc/Acceptance Test Plan.xlsx b/etc/Acceptance Test Plan.xlsx
index 1128f15..dd55e20 100644
--- a/etc/Acceptance Test Plan.xlsx
+++ b/etc/Acceptance Test Plan.xlsx
Binary files differ