Merge pull request #13 from Mueller-Patrick/develop

Deploying dev
This commit is contained in:
Patrick 2020-12-06 23:08:37 +01:00 committed by GitHub
commit d4487e0095
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
39 changed files with 1768 additions and 6080 deletions

View File

@ -4,7 +4,7 @@ root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
indent_size = 4
insert_final_newline = true
trim_trailing_whitespace = true

File diff suppressed because it is too large Load Diff

View File

@ -1,48 +1,48 @@
{
"name": "betterzon",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "^10.2.3",
"@angular/common": "^10.2.3",
"@angular/compiler": "^10.2.3",
"@angular/core": "^10.2.3",
"@angular/forms": "^10.2.3",
"@angular/platform-browser": "^10.2.3",
"@angular/platform-browser-dynamic": "^10.2.3",
"@angular/router": "^10.2.3",
"angular-cli": "^1.0.0-beta.28.3",
"ng": "0.0.0",
"rxjs": "~6.6.0",
"tslib": "^2.0.3",
"zone.js": "~0.10.2"
},
"devDependencies": {
"@angular-devkit/build-angular": "^0.1100.1",
"@angular/cli": "^10.2.0",
"@angular/compiler-cli": "^10.2.3",
"@types/jasmine": "~3.5.0",
"@types/jasminewd2": "~2.0.3",
"@types/node": "^12.19.4",
"codelyzer": "^6.0.0",
"jasmine-core": "~3.6.0",
"jasmine-spec-reporter": "~5.0.0",
"karma": "~5.0.0",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage-istanbul-reporter": "~3.0.2",
"karma-jasmine": "~4.0.0",
"karma-jasmine-html-reporter": "^1.5.0",
"protractor": "~7.0.0",
"ts-node": "~8.3.0",
"tslint": "~6.1.0",
"typescript": "^4.0.5"
}
"name": "betterzon",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "^10.2.3",
"@angular/cli": "^10.2.0",
"@angular/common": "^10.2.3",
"@angular/compiler": "^10.2.3",
"@angular/core": "^10.2.3",
"@angular/forms": "^10.2.3",
"@angular/platform-browser": "^10.2.3",
"@angular/platform-browser-dynamic": "^10.2.3",
"@angular/router": "^10.2.3",
"ng": "0.0.0",
"rxjs": "~6.6.0",
"tslib": "^2.0.3",
"zone.js": "~0.10.2"
},
"devDependencies": {
"@angular-devkit/build-angular": "^0.1100.2",
"@angular/cli": "^10.2.0",
"@angular/compiler-cli": "^10.2.3",
"@types/jasmine": "~3.5.0",
"@types/jasminewd2": "~2.0.3",
"@types/node": "^12.19.8",
"codelyzer": "^6.0.0",
"jasmine-core": "~3.6.0",
"jasmine-spec-reporter": "~5.0.0",
"karma": "~5.0.0",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage-istanbul-reporter": "~3.0.2",
"karma-jasmine": "~4.0.0",
"karma-jasmine-html-reporter": "^1.5.0",
"protractor": "~7.0.0",
"ts-node": "~8.3.0",
"tslint": "~6.1.0",
"typescript": "<4.1.0"
}
}

View File

@ -0,0 +1,16 @@
import { TestBed } from '@angular/core/testing';
import { ApiService } from './api.service';
describe('ApiService', () => {
let service: ApiService;
beforeEach(() => {
TestBed.configureTestingModule({});
service = TestBed.inject(ApiService);
});
it('should be created', () => {
expect(service).toBeTruthy();
});
});

View File

@ -0,0 +1,27 @@
import {Injectable} from '@angular/core';
import {HttpClient, HttpHeaders} from '@angular/common/http';
import process from 'process';
import {Product} from './models/product';
import {Observable, of} from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class ApiService {
apiUrl = 'https://backend.betterzon.xyz';
constructor(
private http: HttpClient
) {
}
getProducts(): Observable<Product[]> {
try {
const prods = this.http.get<Product[]>((this.apiUrl + '/products'));
console.log(prods);
return prods;
} catch (exception) {
process.stderr.write(`ERROR received from ${this.apiUrl}: ${exception}\n`);
}
}
}

View File

@ -1 +1 @@
<app-hello-world></app-hello-world>
<router-outlet></router-outlet>

View File

@ -1,18 +1,29 @@
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';
import {HttpClientModule} from '@angular/common/http';
import {NgModule} from '@angular/core';
import { AppComponent } from './app.component';
import { HelloWorldComponent } from './hello-world/hello-world.component';
import {AppComponent} from './app.component';
import {AppRouting} from './app.routing';
import {ProductListComponent} from './product-list/product-list.component';
import { LandingpageComponent } from './landingpage/landingpage.component';
import { ProductDetailPageComponent } from './product-detail-page/product-detail-page.component';
import { FooterComponent } from './footer/footer.component';
@NgModule({
declarations: [
AppComponent,
HelloWorldComponent
],
imports: [
BrowserModule
],
providers: [],
bootstrap: [AppComponent]
declarations: [
AppComponent,
ProductListComponent,
LandingpageComponent,
ProductDetailPageComponent,
FooterComponent
],
imports: [
BrowserModule,
AppRouting,
HttpClientModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
export class AppModule {
}

View File

@ -0,0 +1,24 @@
import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {RouterModule, Routes} from '@angular/router';
import {AppComponent} from './app.component';
import {ProductListComponent} from './product-list/product-list.component';
import {LandingpageComponent} from './landingpage/landingpage.component';
import {ProductDetailPageComponent} from './product-detail-page/product-detail-page.component';
const routes: Routes = [
{path: '', component: LandingpageComponent},
{path: 'product', component: ProductDetailPageComponent}
];
@NgModule({
declarations: [],
imports: [
RouterModule.forRoot(routes)
],
exports: [
RouterModule
]
})
export class AppRouting {
}

View File

@ -0,0 +1,17 @@
.footer {
position: fixed;
left: 0;
bottom: 0;
width: 100%;
background-color: dimgrey;
color: white;
text-align: center;
}
.icon-3d {
padding: 10px;
color: #fff;
}

View File

@ -0,0 +1,14 @@
<!--- footer --->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<footer class="footer">
<div class='wrap'>
<div class="icons">
<a href="https://github.com/Mueller-Patrick/Betterzon" class="fa fa-github fa-4x icon-3d"></a>
<a href="https://twitter.com/elonmusk" class="fa fa-twitter fa-4x icon-3d"></a>
<a href="https://www.facebook.com/TheElonmusk/" class="fa fa-facebook fa-4x icon-3d"></a>
</div>
<div class = "blocks" id="copyright">© COPYRIGHT 2020 </div>
</div>
</footer>

View File

@ -1,20 +1,20 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { HelloWorldComponent } from './hello-world.component';
import { FooterComponent } from './footer.component';
describe('HelloWorldComponent', () => {
let component: HelloWorldComponent;
let fixture: ComponentFixture<HelloWorldComponent>;
describe('FooterComponent', () => {
let component: FooterComponent;
let fixture: ComponentFixture<FooterComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ HelloWorldComponent ]
declarations: [ FooterComponent ]
})
.compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(HelloWorldComponent);
fixture = TestBed.createComponent(FooterComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});

View File

@ -0,0 +1,15 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-footer',
templateUrl: './footer.component.html',
styleUrls: ['./footer.component.css']
})
export class FooterComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
}

View File

@ -1,2 +0,0 @@
<p>hello-world works! Title: </p>
<a href="https://blog.betterzon.xyz">Blog</a>

View File

@ -1,15 +0,0 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-hello-world',
templateUrl: './hello-world.component.html',
styleUrls: ['./hello-world.component.css']
})
export class HelloWorldComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
}

View File

@ -0,0 +1,2 @@
<app-product-list numberOfProducts="20" showProductPicture="true"></app-product-list>
<app-footer></app-footer>

View File

@ -0,0 +1,25 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { LandingpageComponent } from './landingpage.component';
describe('LandingpageComponent', () => {
let component: LandingpageComponent;
let fixture: ComponentFixture<LandingpageComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ LandingpageComponent ]
})
.compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(LandingpageComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -0,0 +1,15 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-landingpage',
templateUrl: './landingpage.component.html',
styleUrls: ['./landingpage.component.css']
})
export class LandingpageComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
}

View File

@ -0,0 +1,14 @@
export interface Product {
product_id: number;
asin: string;
is_active: boolean;
name: string;
short_description: string;
long_description: string;
image_guid: string;
date_added: Date;
last_modified: Date;
manufacturer_id: number;
selling_rank: string;
category_id: number;
}

View File

@ -0,0 +1 @@
<p>product-detail-page works!</p>

View File

@ -0,0 +1,25 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ProductDetailPageComponent } from './product-detail-page.component';
describe('ProductDetailPageComponent', () => {
let component: ProductDetailPageComponent;
let fixture: ComponentFixture<ProductDetailPageComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ ProductDetailPageComponent ]
})
.compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(ProductDetailPageComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -0,0 +1,15 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-product-detail-page',
templateUrl: './product-detail-page.component.html',
styleUrls: ['./product-detail-page.component.css']
})
export class ProductDetailPageComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
}

View File

@ -0,0 +1,6 @@
.productItem {
border-style: solid;
border-color: dimgrey;
border-radius: .5em;
padding: .25em;
}

View File

@ -0,0 +1,7 @@
<meta charset="UTF-8">
<p class="productItem" *ngFor="let product of products" (click)="clickedProduct(product)">
{{product.name}}
</p>
<div *ngIf="showProductPicture">
Test
</div>

View File

@ -0,0 +1,25 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ProductListComponent } from './product-list.component';
describe('ProductListComponent', () => {
let component: ProductListComponent;
let fixture: ComponentFixture<ProductListComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ ProductListComponent ]
})
.compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(ProductListComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -0,0 +1,41 @@
import {Component, Input, OnInit} from '@angular/core';
import {ApiService} from '../api.service';
import {Product} from '../models/product';
import {Router} from '@angular/router';
@Component({
selector: 'app-product-list',
templateUrl: './product-list.component.html',
styleUrls: ['./product-list.component.css']
})
export class ProductListComponent implements OnInit {
products: Product[];
@Input() numberOfProducts: number;
@Input() showProductPicture: boolean;
constructor(
private apiService: ApiService,
private router: Router
) {
}
ngOnInit(): void {
this.getProducts();
if (!this.numberOfProducts) {
this.numberOfProducts = 10;
}
if (!this.showProductPicture) {
this.showProductPicture = false;
}
}
getProducts(): void {
this.apiService.getProducts().subscribe(products => this.products = products);
}
clickedProduct(product: Product): void {
this.router.navigate([('/helloworld/' + product.product_id)]);
}
}

View File

@ -1,5 +1,5 @@
# Betterzon
Website: https://betterzon.xyz<br>
Website: https://www.betterzon.xyz<br>
Blog: https://blog.betterzon.xyz<br>
Wiki: https://github.com/Mueller-Patrick/Betterzon/wiki

View File

@ -0,0 +1,227 @@
<mxfile host="app.diagrams.net" modified="2020-12-03T11:41:32.250Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36" etag="uRPGeO05pJ0AHwPZkFaV" version="13.10.6" type="github">
<diagram id="1FtotTu9mR2_sEpA9Rtm" name="Page-1">
<mxGraphModel dx="446" dy="448" 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="8x2PvsE8vemwwiOMz4da-1" value="" style="ellipse;html=1;shape=startState;fillColor=#000000;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="225" y="110" width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-2" 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="8x2PvsE8vemwwiOMz4da-1" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="240" y="230" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-14" value="Vendor goes to landing page" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="180" y="230" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-15" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="8x2PvsE8vemwwiOMz4da-14" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="240" y="330" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-16" value="Vendor clicks on &quot;Vendors&quot;" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="180" y="330" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-17" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="8x2PvsE8vemwwiOMz4da-16" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="240" y="430" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-20" value="Vendor is logged in?" style="rhombus;whiteSpace=wrap;html=1;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="164" y="430" width="150" height="70" as="geometry" />
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-21" value="no" style="edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="8x2PvsE8vemwwiOMz4da-20" parent="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint x="400" y="465" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-22" value="yes" style="edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=top;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="8x2PvsE8vemwwiOMz4da-20" parent="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint x="239" y="560" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-27" value="yes" style="edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=top;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" parent="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint x="474.5" y="562.5" as="targetPoint" />
<mxPoint x="474.5" y="500" as="sourcePoint" />
<Array as="points">
<mxPoint x="474.5" y="517.5" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-28" value="Vendor is registered?" style="rhombus;whiteSpace=wrap;html=1;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="400" y="430" width="150" height="70" as="geometry" />
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-29" value="Vendor can login" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="415" y="560" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-30" 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="8x2PvsE8vemwwiOMz4da-29" parent="1" target="8x2PvsE8vemwwiOMz4da-31">
<mxGeometry relative="1" as="geometry">
<mxPoint x="475" y="660" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-31" value="&quot;Manage Vendor Shop&quot; Overview Page is displayed" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="179" y="560" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-32" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="8x2PvsE8vemwwiOMz4da-31" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="239" y="670" as="targetPoint" />
<Array as="points">
<mxPoint x="239" y="660" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-35" value="no" style="edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="8x2PvsE8vemwwiOMz4da-28">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint x="730" y="464.71" as="targetPoint" />
<mxPoint x="560" y="465.21" as="sourcePoint" />
<Array as="points">
<mxPoint x="730" y="465" />
</Array>
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-36" value="&quot;Vendor Register Page&quot; is shown" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="730" y="445" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-37" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="8x2PvsE8vemwwiOMz4da-36" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="790" y="515" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-38" value="Vendor can register" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="730" y="520" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-39" 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="8x2PvsE8vemwwiOMz4da-38" parent="1" target="8x2PvsE8vemwwiOMz4da-42">
<mxGeometry relative="1" as="geometry">
<mxPoint x="790" y="590" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-42" value="Registration waits for manual approval" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="730" y="610" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-43" 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="8x2PvsE8vemwwiOMz4da-42" parent="1" target="8x2PvsE8vemwwiOMz4da-46">
<mxGeometry relative="1" as="geometry">
<mxPoint x="670" y="635" as="targetPoint" />
<Array as="points">
<mxPoint x="680" y="630" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-46" value="Registration is valid?" style="rhombus;whiteSpace=wrap;html=1;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="570" y="570" width="110" height="70" as="geometry" />
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-47" value="no" style="edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" source="8x2PvsE8vemwwiOMz4da-46" parent="1">
<mxGeometry x="-0.3332" y="5" relative="1" as="geometry">
<mxPoint x="625" y="700" as="targetPoint" />
<Array as="points">
<mxPoint x="625" y="680" />
<mxPoint x="625" y="680" />
</Array>
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-48" value="yes" style="edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=top;endArrow=open;endSize=8;strokeColor=#ff0000;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" source="8x2PvsE8vemwwiOMz4da-46" parent="1" target="8x2PvsE8vemwwiOMz4da-29">
<mxGeometry x="0.4169" y="-10" relative="1" as="geometry">
<mxPoint x="540" y="760" as="targetPoint" />
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-49" value="" style="ellipse;html=1;shape=endState;fillColor=#000000;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="610" y="700" width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-50" value="Vendor can manage Shop" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="179" y="670" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-53" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="8x2PvsE8vemwwiOMz4da-50" target="8x2PvsE8vemwwiOMz4da-58">
<mxGeometry relative="1" as="geometry">
<mxPoint x="105" y="880" as="targetPoint" />
<mxPoint x="164" y="690" as="sourcePoint" />
<Array as="points">
<mxPoint x="60" y="690" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-54" 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" parent="1" target="8x2PvsE8vemwwiOMz4da-60">
<mxGeometry relative="1" as="geometry">
<mxPoint x="170" y="920" as="targetPoint" />
<mxPoint x="195" y="710" as="sourcePoint" />
<Array as="points">
<mxPoint x="195" y="710" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-55" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="8x2PvsE8vemwwiOMz4da-50" target="8x2PvsE8vemwwiOMz4da-62">
<mxGeometry relative="1" as="geometry">
<mxPoint x="340" y="880" as="targetPoint" />
<mxPoint x="280" y="710" as="sourcePoint" />
<Array as="points">
<mxPoint x="480" y="690" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-58" value="Vendor can log out" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry y="920" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-60" value="Vendor activate/deactivate listings" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="135" y="920" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-61" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" parent="1" target="8x2PvsE8vemwwiOMz4da-64">
<mxGeometry relative="1" as="geometry">
<mxPoint x="66" y="1020" as="targetPoint" />
<mxPoint x="60" y="960" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-62" value="Vendor can change contact information" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="420" y="920" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-63" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;entryX=1;entryY=0.25;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" source="8x2PvsE8vemwwiOMz4da-62" parent="1" target="8x2PvsE8vemwwiOMz4da-50">
<mxGeometry relative="1" as="geometry">
<mxPoint x="500" y="670" as="targetPoint" />
<Array as="points">
<mxPoint x="480" y="1020" />
<mxPoint x="560" y="1020" />
<mxPoint x="560" y="680" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-64" value="" style="ellipse;html=1;shape=endState;fillColor=#000000;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="45" y="1020" width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-65" value="Vendor can activate/deactivate shop entirely" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="280" y="920" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-66" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="8x2PvsE8vemwwiOMz4da-65" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="300" y="680" as="targetPoint" />
<Array as="points">
<mxPoint x="340" y="1020" />
<mxPoint x="560" y="1020" />
<mxPoint x="560" y="680" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-67" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" parent="1" source="8x2PvsE8vemwwiOMz4da-50">
<mxGeometry relative="1" as="geometry">
<mxPoint x="340.03" y="920" as="targetPoint" />
<mxPoint x="320" y="690" as="sourcePoint" />
<Array as="points">
<mxPoint x="264" y="840" />
<mxPoint x="340" y="840" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="8x2PvsE8vemwwiOMz4da-73" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=none;endSize=8;strokeColor=#ff0000;endFill=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" source="8x2PvsE8vemwwiOMz4da-60" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="370" y="1020" as="targetPoint" />
<mxPoint x="210" y="960" as="sourcePoint" />
<Array as="points">
<mxPoint x="195" y="1020" />
</Array>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

View File

@ -0,0 +1,190 @@
<mxfile host="app.diagrams.net" modified="2020-12-06T21:54:07.076Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36" etag="eUYNFtx8g7yoIU2ueGTq" version="13.10.9" type="github">
<diagram id="vU0a4XMVAzZGOWdaQMjT" name="Page-1">
<mxGraphModel dx="1745" dy="922" 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="Hl9egU3SmJGG6HS5V9Vv-1" value="" style="ellipse;html=1;shape=startState;fillColor=#000000;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="210" y="80" width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-2" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="Hl9egU3SmJGG6HS5V9Vv-1" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="225" y="170" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-3" value="User goes to Landing Page" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="165" y="170" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-4" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="Hl9egU3SmJGG6HS5V9Vv-3" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="225" y="270" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-5" value="User searches for Product" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="165" y="270" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-6" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="Hl9egU3SmJGG6HS5V9Vv-5" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="225" y="370" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-7" value="User selects Product" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="165" y="370" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-8" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="Hl9egU3SmJGG6HS5V9Vv-7" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="225" y="470" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-11" value="User clicks on Vendor" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="165" y="470" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-12" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="Hl9egU3SmJGG6HS5V9Vv-11" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="225" y="570" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-13" value="User clicks on favorite Button" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="165" y="570" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-14" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="Hl9egU3SmJGG6HS5V9Vv-13" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="225" y="670" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-15" value="User is logged in?" style="rhombus;whiteSpace=wrap;html=1;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="170" y="670" width="110" height="70" as="geometry" />
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-16" 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="Hl9egU3SmJGG6HS5V9Vv-15" parent="1" target="Hl9egU3SmJGG6HS5V9Vv-18">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint x="360" y="700" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-17" value="yes" style="edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=top;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="Hl9egU3SmJGG6HS5V9Vv-15" parent="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint x="225" y="810" as="targetPoint" />
<Array as="points">
<mxPoint x="225" y="800" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-18" value="User can login" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="360" y="685" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-19" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" source="Hl9egU3SmJGG6HS5V9Vv-18" parent="1" target="Hl9egU3SmJGG6HS5V9Vv-13">
<mxGeometry relative="1" as="geometry">
<mxPoint x="320" y="520" as="targetPoint" />
<Array as="points">
<mxPoint x="490" y="700" />
<mxPoint x="490" y="520" />
<mxPoint x="255" y="520" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-20" value="Vendor is added to List of Favorite Vendors" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="165" y="810" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-21" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="Hl9egU3SmJGG6HS5V9Vv-20" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="247" y="170" as="targetPoint" />
<Array as="points">
<mxPoint x="225" y="910" />
<mxPoint x="510" y="910" />
<mxPoint x="510" y="120" />
<mxPoint x="247" y="120" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-22" value="User clicks on &lt;br&gt;Profile Icon" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="-10" y="270" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-23" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="Hl9egU3SmJGG6HS5V9Vv-22" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="50" y="370" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-25" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="50" y="270" as="targetPoint" />
<mxPoint x="220" y="210" as="sourcePoint" />
<Array as="points">
<mxPoint x="50" y="230" />
<mxPoint x="50" y="270" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-26" value="User is logged in?" style="rhombus;whiteSpace=wrap;html=1;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="-15" y="370" width="130" height="70" as="geometry" />
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-27" value="no" style="edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" source="Hl9egU3SmJGG6HS5V9Vv-26" parent="1" target="Hl9egU3SmJGG6HS5V9Vv-29">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint x="130" y="365" as="targetPoint" />
<Array as="points">
<mxPoint x="130" y="405" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-28" value="yes" style="edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=top;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="Hl9egU3SmJGG6HS5V9Vv-26" parent="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint x="50" y="520" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-29" value="User can login" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="70" y="320" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-30" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" source="Hl9egU3SmJGG6HS5V9Vv-29" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="194" y="170" as="targetPoint" />
<Array as="points">
<mxPoint x="130" y="120" />
<mxPoint x="194" y="120" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-31" value="Profile Options are displayed" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="-10" y="520" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-32" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="Hl9egU3SmJGG6HS5V9Vv-31" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="50" y="610" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-33" value="User selects &quot;Favorite Vendors&quot;" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="-10" y="610" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-34" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="Hl9egU3SmJGG6HS5V9Vv-33" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="50" y="710" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-37" value="&quot;Favorite Vendors&quot; Page is displayed" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="-10" y="710" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-38" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;" edge="1" source="Hl9egU3SmJGG6HS5V9Vv-37" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="50" y="810" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-43" value="User can delete Favorite Vendors" style="rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="-10" y="810" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-44" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" source="Hl9egU3SmJGG6HS5V9Vv-43" parent="1" target="Hl9egU3SmJGG6HS5V9Vv-37">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-40" y="700" as="targetPoint" />
<Array as="points">
<mxPoint x="50" y="895" />
<mxPoint x="-40" y="895" />
<mxPoint x="-40" y="730" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-49" value="" style="ellipse;html=1;shape=endState;fillColor=#000000;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="370" y="239" width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="Hl9egU3SmJGG6HS5V9Vv-50" value="User can end Activity&#xa; at any time" style="text;align=center;fontStyle=1;verticalAlign=middle;spacingLeft=3;spacingRight=3;strokeColor=none;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="1">
<mxGeometry x="320" y="270" width="130" height="26" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View File

@ -0,0 +1 @@
<mxfile host="app.diagrams.net" modified="2020-12-03T11:44:41.975Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36" version="13.10.6" etag="3TbEswIUj7dBRpMdLXCP" type="github"><diagram id="vU0a4XMVAzZGOWdaQMjT">UzV2zq1wL0osyPDNT0nNUTV2VTV2LsrPL4GwciucU3NyVI0MMlNUjV1UjYwMgFjVyA2HrCFY1qAgsSg1rwSLBiADYTaQg2Y1AA==</diagram></mxfile>

View File

@ -0,0 +1,73 @@
<mxfile host="app.diagrams.net" modified="2020-12-06T21:53:38.296Z" agent="5.0 (Windows)" etag="hYGDNP_IhNc-POs3TVJ_" version="13.10.0" type="github">
<diagram id="QF3JeXm2v-cOY2pJoseE" name="Page-1">
<mxGraphModel dx="1809" dy="554" 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="SwTz14L5hBOFtSALRySW-11" value="Server" style="verticalAlign=top;align=left;spacingTop=8;spacingLeft=2;spacingRight=12;shape=cube;size=10;direction=south;fontStyle=4;html=1;" vertex="1" parent="1">
<mxGeometry x="360" y="40" width="180" height="280" as="geometry" />
</mxCell>
<mxCell id="SwTz14L5hBOFtSALRySW-12" value="GitHub" style="verticalAlign=top;align=left;spacingTop=8;spacingLeft=2;spacingRight=12;shape=cube;size=10;direction=south;fontStyle=4;html=1;" vertex="1" parent="1">
<mxGeometry x="40" y="40" width="180" height="280" as="geometry" />
</mxCell>
<mxCell id="SwTz14L5hBOFtSALRySW-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=0;exitDy=35;exitPerimeter=0;" edge="1" parent="1" source="SwTz14L5hBOFtSALRySW-13" target="SwTz14L5hBOFtSALRySW-14">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="230" y="125" />
<mxPoint x="230" y="125" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="SwTz14L5hBOFtSALRySW-20" value="Sending build status" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="SwTz14L5hBOFtSALRySW-18">
<mxGeometry x="-0.0491" y="-1" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="SwTz14L5hBOFtSALRySW-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="SwTz14L5hBOFtSALRySW-13" target="SwTz14L5hBOFtSALRySW-23">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="SwTz14L5hBOFtSALRySW-25" value="Deploying changes" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="SwTz14L5hBOFtSALRySW-24">
<mxGeometry x="-0.7533" relative="1" as="geometry">
<mxPoint y="3.89" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="SwTz14L5hBOFtSALRySW-13" value="CI/CD&#xa;Jenkins-&#xa;Instance&#xa;" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="390" y="90" width="100" height="50" as="geometry" />
</mxCell>
<mxCell id="SwTz14L5hBOFtSALRySW-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0;entryDx=0;entryDy=15;entryPerimeter=0;" edge="1" parent="1" source="SwTz14L5hBOFtSALRySW-14" target="SwTz14L5hBOFtSALRySW-13">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="230" y="105" />
<mxPoint x="230" y="105" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="SwTz14L5hBOFtSALRySW-19" value="&lt;div&gt;Automatically pulling changes&lt;br&gt;&lt;/div&gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="SwTz14L5hBOFtSALRySW-16">
<mxGeometry x="-0.0848" y="1" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="SwTz14L5hBOFtSALRySW-14" value="Repo" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="70" y="90" width="100" height="50" as="geometry" />
</mxCell>
<mxCell id="SwTz14L5hBOFtSALRySW-21" value="" style="endArrow=classic;html=1;entryX=0;entryY=0;entryDx=0;entryDy=15;entryPerimeter=0;" edge="1" parent="1" target="SwTz14L5hBOFtSALRySW-14">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint y="105" as="sourcePoint" />
<mxPoint x="70" y="100" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="SwTz14L5hBOFtSALRySW-22" value="Push" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="SwTz14L5hBOFtSALRySW-21">
<mxGeometry x="-0.4691" y="1" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="SwTz14L5hBOFtSALRySW-23" value="Webserver&#xa;(Backend &amp;&#xa;Frontend)&#xa;" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="390" y="170" width="100" height="50" as="geometry" />
</mxCell>
<mxCell id="SwTz14L5hBOFtSALRySW-26" value="Database" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
<mxGeometry x="390" y="250" width="100" height="50" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

BIN
doku/Deployment_View.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
doku/ERM.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

BIN
doku/betterzon_stack.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 444 KiB

View File

@ -1,199 +1 @@
<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>
<mxfile host="app.diagrams.net" modified="2020-12-03T09:39:52.243Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36" etag="RUzsjnuqX_zRTCHSTruo" version="13.10.6" type="github"><diagram id="QFWcWedTnleHV76omDGD" name="Page-1">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</diagram></mxfile>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 87 KiB