This commit is contained in:
Patrick 2020-11-01 18:37:41 +01:00
commit 8833bed232
13 changed files with 471 additions and 24 deletions

33
.github/workflows/master-betterzon.yml vendored Normal file
View File

@ -0,0 +1,33 @@
name: Test
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x]
steps:
- uses: actions/checkout@v1
- name: Cache node modules
uses: actions/cache@v1
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Node ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: npm ci and npm run build
run: |
npm ci
npm run build

View File

@ -1,27 +1,10 @@
# Betterzon # Betterzon
Website: https://betterzon.xyz<br>
Blog: https://blog.betterzon.xyz<br>
Wiki: https://github.com/Mueller-Patrick/Betterzon/wiki
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 10.1.5. # Project Status
[![build status](https://github.com/Mueller-Patrick/Betterzon/workflows/Build/badge.svg)](https://github.com/Mueller-Patrick/Betterzon/actions?query=branch%3Amaster)
## Development server # How to build
Run ```ng build --prod``` to build a production version of the project
Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
## Code scaffolding
Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
## Build
Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build.
## Running unit tests
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
## Running end-to-end tests
Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
## Further help
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).

145
doku/AC_Crawler.drawio Normal file
View File

@ -0,0 +1,145 @@
<mxfile host="app.diagrams.net" modified="2020-10-22T10:48:28.862Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36" etag="Qwq2Hbdg23HRl1kpLlkL" version="13.8.1" type="github">
<diagram id="HsOnwiffrXz8mLfPakhB" name="Page-1">
<mxGraphModel dx="1125" dy="807" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="qIYyL-Ke0HVsc26IhBTR-1" value="" style="ellipse;html=1;shape=startState;fillColor=#000000;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="370" y="70" width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-2" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="qIYyL-Ke0HVsc26IhBTR-1" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="385" y="160" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-15" value="Read Configuration" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="325" y="160" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-16" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="qIYyL-Ke0HVsc26IhBTR-15" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="385" y="260" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-17" value="Configuration valid?" style="rhombus;whiteSpace=wrap;html=1;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="315" y="260" width="140" height="60" as="geometry" />
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-18" value="no" style="edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="qIYyL-Ke0HVsc26IhBTR-17" parent="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint x="560" y="290" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-19" value="yes" style="edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=top;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="qIYyL-Ke0HVsc26IhBTR-17" parent="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint x="385" y="400" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-20" value="" style="ellipse;html=1;shape=endState;fillColor=#000000;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="560" y="275" width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-21" value="Shop exists&lt;br&gt;&amp;nbsp;in Database?" style="rhombus;whiteSpace=wrap;html=1;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="310" y="400" width="150" height="60" as="geometry" />
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-22" value="no" style="edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" source="qIYyL-Ke0HVsc26IhBTR-21" parent="1" target="qIYyL-Ke0HVsc26IhBTR-24">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint x="520" y="430" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-23" value="yes" style="edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=top;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="qIYyL-Ke0HVsc26IhBTR-21" parent="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint x="385" y="520" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-24" value="Create Entry" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="530" y="410" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-25" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" source="qIYyL-Ke0HVsc26IhBTR-24" parent="1" target="qIYyL-Ke0HVsc26IhBTR-26">
<mxGeometry relative="1" as="geometry">
<mxPoint x="470" y="550" as="targetPoint" />
<Array as="points">
<mxPoint x="590" y="540" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-26" value="Fetch Products from Category" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="325" y="520" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-27" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="qIYyL-Ke0HVsc26IhBTR-26" parent="1" target="qIYyL-Ke0HVsc26IhBTR-44">
<mxGeometry relative="1" as="geometry">
<mxPoint x="385" y="630" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-30" value="Product available&lt;br&gt;on Amazon?" style="rhombus;whiteSpace=wrap;html=1;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="296.25" y="710" width="180" height="80" as="geometry" />
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-31" value="no" style="edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="qIYyL-Ke0HVsc26IhBTR-30" parent="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint x="531.25" y="750" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-32" value="yes" style="edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=top;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="qIYyL-Ke0HVsc26IhBTR-30" parent="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint x="386.25" y="850" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-33" value="Discard Product" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="531.25" y="730" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-37" value="Product in Productdatabase?" style="rhombus;whiteSpace=wrap;html=1;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="290" y="850" width="192.5" height="70" as="geometry" />
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-38" value="no" style="edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="qIYyL-Ke0HVsc26IhBTR-37" parent="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint x="541.25" y="885" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-39" value="yes" style="edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=top;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="qIYyL-Ke0HVsc26IhBTR-37" parent="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint x="386.25" y="960" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-40" value="Add to Database" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="541.25" y="860" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-41" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" source="qIYyL-Ke0HVsc26IhBTR-40" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="446.25" y="980" as="targetPoint" />
<Array as="points">
<mxPoint x="601.25" y="980" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-44" value="For Product in List" style="ellipse;shape=umlControl;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="350" y="650" width="70" height="80" as="geometry" />
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-45" value="Last Product?" style="rhombus;whiteSpace=wrap;html=1;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="329.75" y="1030" width="113" height="60" as="geometry" />
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-46" value="no" style="edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;entryX=1.029;entryY=0.55;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" source="qIYyL-Ke0HVsc26IhBTR-45" parent="1" target="qIYyL-Ke0HVsc26IhBTR-44">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint x="710" y="650" as="targetPoint" />
<Array as="points">
<mxPoint x="710" y="1060" />
<mxPoint x="710" y="694" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-47" value="yes" style="edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=top;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="qIYyL-Ke0HVsc26IhBTR-45" parent="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint x="386.75" y="1130" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-48" value="" style="ellipse;html=1;shape=endState;fillColor=#000000;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="371.75" y="1130" width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-54" value="Add Price entry to Pricedatabase" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="326.25" y="960" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="qIYyL-Ke0HVsc26IhBTR-55" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" source="qIYyL-Ke0HVsc26IhBTR-54" parent="1" target="qIYyL-Ke0HVsc26IhBTR-45">
<mxGeometry relative="1" as="geometry">
<mxPoint x="180" y="1040" as="targetPoint" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

BIN
doku/AC_Crawler.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

View File

@ -0,0 +1,85 @@
<mxfile host="app.diagrams.net" modified="2020-10-29T08:11:48.133Z" agent="5.0 (Windows)" etag="Cp6NA62VCKcIwkdHvAuT" version="13.8.6" type="github">
<diagram id="Kj0Iu56uqGIeLT6yBY2t" name="Page-1">
<mxGraphModel dx="2062" dy="1163" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="t9Bwi1IrEdpbQbNlb-Hd-1" value="&lt;div&gt;User&lt;/div&gt;" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" parent="1" vertex="1">
<mxGeometry x="320" y="190" width="40" height="80" as="geometry" />
</mxCell>
<mxCell id="t9Bwi1IrEdpbQbNlb-Hd-2" value="" style="ellipse;html=1;shape=startState;fillColor=#000000;strokeColor=#ff0000;" parent="1" vertex="1">
<mxGeometry x="325" y="290" width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="t9Bwi1IrEdpbQbNlb-Hd-3" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" parent="1" source="t9Bwi1IrEdpbQbNlb-Hd-2" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="340" y="360" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t9Bwi1IrEdpbQbNlb-Hd-11" value="" style="ellipse;html=1;shape=endState;fillColor=#000000;strokeColor=#ff0000;" parent="1" vertex="1">
<mxGeometry x="325" y="600" width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="t9Bwi1IrEdpbQbNlb-Hd-23" value="Enters product name in search field" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" parent="1" vertex="1">
<mxGeometry x="280" y="360" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="t9Bwi1IrEdpbQbNlb-Hd-24" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="t9Bwi1IrEdpbQbNlb-Hd-23" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="340" y="440" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t9Bwi1IrEdpbQbNlb-Hd-28" value="&lt;div&gt;Clicking &quot;Search&quot; or pressing &quot;Enter&quot;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" parent="1" vertex="1">
<mxGeometry x="280" y="440" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="t9Bwi1IrEdpbQbNlb-Hd-29" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="t9Bwi1IrEdpbQbNlb-Hd-28" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="340" y="520" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t9Bwi1IrEdpbQbNlb-Hd-30" value="Clicking on resulting product" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" parent="1" vertex="1">
<mxGeometry x="280" y="520" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="t9Bwi1IrEdpbQbNlb-Hd-31" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="t9Bwi1IrEdpbQbNlb-Hd-30" target="t9Bwi1IrEdpbQbNlb-Hd-11" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="500" y="440" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t9Bwi1IrEdpbQbNlb-Hd-33" value="logged in?" style="rhombus;whiteSpace=wrap;html=1;fillColor=#ffffc0;strokeColor=#ff0000;" parent="1" vertex="1">
<mxGeometry x="460" y="520" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="t9Bwi1IrEdpbQbNlb-Hd-34" value="&lt;div&gt;yes&lt;/div&gt;" style="edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" parent="1" source="t9Bwi1IrEdpbQbNlb-Hd-33" edge="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint x="600" y="540" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t9Bwi1IrEdpbQbNlb-Hd-35" value="no" style="edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=top;endArrow=open;endSize=8;strokeColor=#ff0000;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="t9Bwi1IrEdpbQbNlb-Hd-33" target="t9Bwi1IrEdpbQbNlb-Hd-11" edge="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint x="360" y="615" as="targetPoint" />
<Array as="points">
<mxPoint x="500" y="615" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="t9Bwi1IrEdpbQbNlb-Hd-36" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="t9Bwi1IrEdpbQbNlb-Hd-30" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="460" y="540" as="targetPoint" />
<mxPoint x="340" y="560" as="sourcePoint" />
<Array as="points">
<mxPoint x="420" y="540" />
<mxPoint x="420" y="540" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="t9Bwi1IrEdpbQbNlb-Hd-37" value="Set price alarm" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" parent="1" vertex="1">
<mxGeometry x="600" y="520" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="t9Bwi1IrEdpbQbNlb-Hd-38" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="t9Bwi1IrEdpbQbNlb-Hd-37" target="t9Bwi1IrEdpbQbNlb-Hd-11" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="360" y="615" as="targetPoint" />
<Array as="points">
<mxPoint x="660" y="615" />
</Array>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

BIN
doku/AC_SearchProduct.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
doku/Betterzon_LP.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

BIN
doku/Betterzon_PP.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

1
doku/Product_CRUD.drawio Normal file
View File

@ -0,0 +1 @@
<mxfile host="app.diagrams.net" modified="2020-10-25T16:11:58.149Z" agent="5.0 (Windows)" etag="JGhUvImvLIzd6H7-qbSw" version="13.8.2" type="github"><diagram id="6AVlnouhUQOHfTXz5g4P" name="Page-1">3ZrbkqIwEIafxkunhHDyckfdQ9Xs1NRae7qMJEB2kFAxHpin3yBBCChqjYjjjUX+dBJId3+00R4YzTdfGIyD7xThsKcP0KYHxj1dtxxbfKZCkgnAcTLBZwRlklYIU/KGpTiQ6pIgvFAMOaUhJ7EqujSKsMsVDTJG16qZR0N11Rj6uCZMXRjW1d8E8SBTHd0u9K+Y+EG+smYNs545zI3lkywCiOi6JIFJD4wYpTy7mm9GOEz3Lt+XbNznA727G2M44qcMSCb41fVmzjdXd8fs13MUIdC35L3xJH9gjMTzyyZlPKA+jWA4KdRHRpcRwumsA9EqbJ4ojYWoCfEf5jyRzoRLToUU8Hkoe7M104UOPoqUFnTJXNxw/3lIQOZj3mCn7zZcBCqmc8xZIsYxHEJOVup9QBky/s5ODv3EGExKBjElEV+UZn5JBWEggx/kQZzH/rDiofPsxUV2B3mr9CiFtPX6GREg03EFw6Xchp5uhWIvHxFZiUs/vXzG61wVi5Q69obPE5wJCCguhyHxI3HtCg9jJoQVZpyINPskO+YEoSy68IK8wdl2vjS+5CaLyc3HnjnerZlOgDf7GCAHF5lXDqzDWVCPDjl7f/CgOwAorpErnhc/NYf3Ne2hMnG/Mgn1vIWIbDUMLuJ4TdvrvJZzXziCJX/S8Q+6mbf/ljvHGzl71kpkqwNogE6gYVQgYB6BRrN9O9DQ9FOoMcYh5viewZHlUBM5NPOS3MghYV0NEma3kCgTokyM24GE0QUkDFBJersZEkfsW4KEVYPEBBF+J5lvNma+iNXLVAjO1TJ92HE5oFQDg9tL9AMOP9nBisPO9U4el6Vc+oEhupNcGh7JJQ20VH4rk/bNXTF+hXSr+fOFUbR063hUc2wdEI6nMdyG9JrBWHW0R8JwREPKtmMBMrGDDKEvOKOvuNTj6DNgWU3urOXSQQcBvfJ2sWR7XToxkVJQOizJK9eLZ0vHKOuuaNFPZNkBf7ZbtOjWeUXLEfuWipY6aKdQ7MhdgLaZs+m3Fd18H1nbB2f9m+eIYcjrHnoPNz3P0113HzeRNbPMC3FTqwZ419zUQMc1oN1VEQhuGZzAqcTJ4MiRULN9S+A0aom550hoRCOPsPldnwkdODYsUXao2YqD+pc5FrIfLFsd0x6GQc3b+Wnfh8NwtXzd8bUzDNudYlhTGFxicvsYNm4Zw4Z93s95R+xbwnD997z7qV+zxGhE68AB72NpPpdxxcOA+qvzZ4w+Zk1rVGuPrmtas7a3ew/Obn9nq6+p3U5ffmdFs/hfShbkxZ97wOQ/</diagram></mxfile>

BIN
doku/Product_CRUD.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

1
doku/test.txt Normal file
View File

@ -0,0 +1 @@
Test

View File

@ -0,0 +1,199 @@
<mxfile host="app.diagrams.net" modified="2020-10-22T09:31:05.721Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36" etag="zUl4IRelcKPObecK6O1r" version="13.8.1" type="github">
<diagram id="QFWcWedTnleHV76omDGD" name="Page-1">
<mxGraphModel dx="1422" dy="807" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="zG22HQRfr113MJy_nXjD-1" value="Registered User" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;" parent="1" vertex="1">
<mxGeometry x="130" y="130" width="30" height="60" as="geometry" />
</mxCell>
<mxCell id="zG22HQRfr113MJy_nXjD-4" value="" style="endArrow=none;html=1;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="200" y="80" as="sourcePoint" />
<mxPoint x="640" y="80" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="zG22HQRfr113MJy_nXjD-5" value="" style="endArrow=none;html=1;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="200" y="840" as="sourcePoint" />
<mxPoint x="200" y="80" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="zG22HQRfr113MJy_nXjD-6" value="" style="endArrow=none;html=1;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="640" y="840" as="sourcePoint" />
<mxPoint x="640" y="80" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="zG22HQRfr113MJy_nXjD-7" value="" style="endArrow=none;html=1;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="200" y="840" as="sourcePoint" />
<mxPoint x="640" y="840" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="zG22HQRfr113MJy_nXjD-10" value="Search for Product" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="210" y="280" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="zG22HQRfr113MJy_nXjD-11" value="" style="endArrow=none;html=1;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="200" y="120" as="sourcePoint" />
<mxPoint x="640" y="120" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="zG22HQRfr113MJy_nXjD-12" value="betterzon.xyz" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="394" y="90" width="40" height="20" as="geometry" />
</mxCell>
<mxCell id="zG22HQRfr113MJy_nXjD-13" value="Unregistered User" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;" parent="1" vertex="1">
<mxGeometry x="130" y="275" width="30" height="60" as="geometry" />
</mxCell>
<mxCell id="zG22HQRfr113MJy_nXjD-17" value="Unregistered &lt;br&gt;Shop Owner" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" parent="1" vertex="1">
<mxGeometry x="130" y="770" width="30" height="60" as="geometry" />
</mxCell>
<mxCell id="zG22HQRfr113MJy_nXjD-19" value="Sort by price" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="400" y="220" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="zG22HQRfr113MJy_nXjD-22" value="Sort by location" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="400" y="280" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="zG22HQRfr113MJy_nXjD-23" value="smart sort" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="400" y="340" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="zG22HQRfr113MJy_nXjD-25" value="Login" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="210" y="135" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="zG22HQRfr113MJy_nXjD-27" value="Business Registration" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="210" y="775" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="zG22HQRfr113MJy_nXjD-28" value="" style="endArrow=none;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="zG22HQRfr113MJy_nXjD-13" target="zG22HQRfr113MJy_nXjD-10" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="540" y="530" as="sourcePoint" />
<mxPoint x="590" y="480" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="zG22HQRfr113MJy_nXjD-29" value="" style="endArrow=none;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="zG22HQRfr113MJy_nXjD-1" target="zG22HQRfr113MJy_nXjD-25" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="20" y="155" as="sourcePoint" />
<mxPoint x="70" y="105" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="zG22HQRfr113MJy_nXjD-30" value="" style="endArrow=none;html=1;" parent="1" source="zG22HQRfr113MJy_nXjD-17" target="zG22HQRfr113MJy_nXjD-27" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="540" y="545" as="sourcePoint" />
<mxPoint x="590" y="495" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="zG22HQRfr113MJy_nXjD-31" value="" style="endArrow=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="zG22HQRfr113MJy_nXjD-10" target="zG22HQRfr113MJy_nXjD-19" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="540" y="530" as="sourcePoint" />
<mxPoint x="590" y="480" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="zG22HQRfr113MJy_nXjD-32" value="" style="endArrow=none;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="zG22HQRfr113MJy_nXjD-22" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="330" y="305" as="sourcePoint" />
<mxPoint x="170" y="370" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="zG22HQRfr113MJy_nXjD-33" value="" style="endArrow=none;html=1;exitX=0.992;exitY=0.64;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="zG22HQRfr113MJy_nXjD-10" target="zG22HQRfr113MJy_nXjD-23" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="540" y="530" as="sourcePoint" />
<mxPoint x="590" y="480" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="zG22HQRfr113MJy_nXjD-34" value="set price alarm" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="400" y="135" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="zG22HQRfr113MJy_nXjD-35" value="" style="endArrow=none;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="zG22HQRfr113MJy_nXjD-25" target="zG22HQRfr113MJy_nXjD-34" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="540" y="225" as="sourcePoint" />
<mxPoint x="350" y="163" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="HbB2AJq1uTnI_qS1wT4K-1" value="Register" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="210" y="360" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="HbB2AJq1uTnI_qS1wT4K-4" value="" style="endArrow=none;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="zG22HQRfr113MJy_nXjD-13" target="HbB2AJq1uTnI_qS1wT4K-1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="120" y="470" as="sourcePoint" />
<mxPoint x="170" y="420" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="HbB2AJq1uTnI_qS1wT4K-6" value="" style="endArrow=none;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="zG22HQRfr113MJy_nXjD-1" target="zG22HQRfr113MJy_nXjD-10" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="80" y="260" as="sourcePoint" />
<mxPoint x="130" y="210" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="HbB2AJq1uTnI_qS1wT4K-9" value="Registered &lt;br&gt;Shop Owner" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" parent="1" vertex="1">
<mxGeometry x="130" y="620" width="30" height="60" as="geometry" />
</mxCell>
<mxCell id="HbB2AJq1uTnI_qS1wT4K-14" value="Manage Account" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="210" y="590" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="HbB2AJq1uTnI_qS1wT4K-15" value="Apply for &lt;br&gt;Participation" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="210" y="660" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="HbB2AJq1uTnI_qS1wT4K-16" value="" style="endArrow=none;html=1;" parent="1" source="HbB2AJq1uTnI_qS1wT4K-9" target="HbB2AJq1uTnI_qS1wT4K-14" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="260" y="570" as="sourcePoint" />
<mxPoint x="310" y="520" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="HbB2AJq1uTnI_qS1wT4K-17" value="" style="endArrow=none;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="HbB2AJq1uTnI_qS1wT4K-9" target="HbB2AJq1uTnI_qS1wT4K-15" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="90" y="750" as="sourcePoint" />
<mxPoint x="140" y="700" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="AN68Dm_Q30RVdqnMXz4Q-3" value="" style="shape=image;html=1;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;image=img/clipart/Gear_128x128.png" vertex="1" parent="1">
<mxGeometry x="120" y="460" width="50" height="60" as="geometry" />
</mxCell>
<mxCell id="AN68Dm_Q30RVdqnMXz4Q-4" value="System" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;" vertex="1" parent="1">
<mxGeometry x="115" y="520" width="60" height="20" as="geometry" />
</mxCell>
<mxCell id="AN68Dm_Q30RVdqnMXz4Q-7" value="Crawl Shops" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="210" y="465" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="AN68Dm_Q30RVdqnMXz4Q-8" value="" style="endArrow=none;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="AN68Dm_Q30RVdqnMXz4Q-3" target="AN68Dm_Q30RVdqnMXz4Q-7">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="10" y="480" as="sourcePoint" />
<mxPoint x="60" y="430" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="AN68Dm_Q30RVdqnMXz4Q-10" value="Write to Database" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="394" y="465" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="AN68Dm_Q30RVdqnMXz4Q-11" value="" style="endArrow=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="AN68Dm_Q30RVdqnMXz4Q-7" target="AN68Dm_Q30RVdqnMXz4Q-10">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="540" y="430" as="sourcePoint" />
<mxPoint x="590" y="380" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="AN68Dm_Q30RVdqnMXz4Q-12" value="Database" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;" vertex="1" parent="1">
<mxGeometry x="560" y="420" width="60" height="80" as="geometry" />
</mxCell>
<mxCell id="AN68Dm_Q30RVdqnMXz4Q-14" value="Read from Database" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="394" y="410" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="AN68Dm_Q30RVdqnMXz4Q-16" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="AN68Dm_Q30RVdqnMXz4Q-14" target="AN68Dm_Q30RVdqnMXz4Q-12">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="540" y="610" as="sourcePoint" />
<mxPoint x="590" y="560" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="AN68Dm_Q30RVdqnMXz4Q-17" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="AN68Dm_Q30RVdqnMXz4Q-10" target="AN68Dm_Q30RVdqnMXz4Q-12">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="520" y="650" as="sourcePoint" />
<mxPoint x="570" y="600" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="AN68Dm_Q30RVdqnMXz4Q-20" value="&amp;lt;&amp;lt;include&amp;gt;&amp;gt;" style="edgeStyle=none;html=1;endArrow=open;verticalAlign=bottom;dashed=1;labelBackgroundColor=none;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="zG22HQRfr113MJy_nXjD-10" target="AN68Dm_Q30RVdqnMXz4Q-14">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="480" y="610" as="sourcePoint" />
<mxPoint x="640" y="610" as="targetPoint" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

BIN
doku/use-case-betterzon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB