From c49825501254958b419efe4180bb923044a7f9e7 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 28 Nov 2020 21:42:54 +0100 Subject: [PATCH] Added our initial class diagramms --- classes_initial.drawio | 1 + classes_initial.svg | 3 +++ 2 files changed, 4 insertions(+) create mode 100644 classes_initial.drawio create mode 100644 classes_initial.svg diff --git a/classes_initial.drawio b/classes_initial.drawio new file mode 100644 index 0000000..b9912fe --- /dev/null +++ b/classes_initial.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/classes_initial.svg b/classes_initial.svg new file mode 100644 index 0000000..0d8d924 --- /dev/null +++ b/classes_initial.svg @@ -0,0 +1,3 @@ + + +Track+ id: int+ name: string+ distance: int+ method(type): typeUser+ id: int+ uuid: string(uuid)+ email: string(email)+ username: string(default: mail)+ firstname: string+ ?middlename: string+ lastname: string+ password: string(hash w/ uuid salt)+ userpermissions: array/manytomany+ ?groups: manytomany+ enabled: bool+ refreshTokenCount: int+ ?profilepic: string(filename)+ method(type): typeUserAction+ user: user+ target: string
Relation
Relation
0..n
0..n
1
1
+ action: string+ changed: attributeRunner+ id: int+ firstname:string
Relation
Relation
0..n
0..n
1
1
+ ?middlename:string+ lastname:string+ ?address: location(1to1)+ ?email: string(mail)+ ?phone: string(phonenumber)+ group: RunnerGroup(many2many)«interface»RunnerGroup+ id: int+ name: string+ field: type+ ?contact: groupcontactRunnerOrganisation+ id: int+ name: string+ field: type+ ?contact: groupcontact+ ?address: location(1to1)RunnerTeam+ id: int+ name: string+ field: type+ ?contact: groupcontact+ parentGroup: RunnerGroup
Extends
Extends
Extends
Extends
Scan+ id: int+ runner: Runner+ track: Track+ distance: =>track.distance+ timestamp: int+ valid: boolean+ station: ScanStation
Relation
Relation
0..n
0..n
1
1
ScanStation+ id: int+ description: string+ track: Track+ enabled: boolean+ key: string(api key hash)
Relation
Relation
0..n
0..n
1
1
groupContact+ id: int+ firstname: string+ lastname: string+ ?middlename: string+ ?email: string(mail)+ ?phone: string(phonenumber)+ ?laddress: location
name
name
1
1
name
name
1
1
location+ id: int+ ?description: string+ address1: string+ ?address2: string+ postalcode: string(validate)+ city: string+ country: string
name
name
1
1
name
name
1
1
userGroup+ id: int+ name: string+ ?description: string+ grouppermissions: array/manytomany
Relation
Relation
0..n
0..n
1
1
permission+ id: int+ target: string+ action: string
Relation
Relation
0..n
0..n
1
1
Relation
Relation
0..n
0..n
1
1
<<interface>>donation+ id: int+ donor: participant+ amount: int(cent)distanceDonation+ id: int+ donor: participant+ amount: => getter+ runner: runner+ amountPerDistance: int(cent)fixedDonation+ id: int+ donor: participant+ amount: int(cent)<<interface>>participant+ id: int+ firstname:string+ ?address: location(1to1)+ lastname:string+ ?middlename:string+ ?phone: string(phonenumber)+ ?email: string(mail)
Extends
Extends
Extends
Extends
donor(needs 1 of email or address)+ id: int+ firstname:string+ ?address: location(1to1)+ lastname:string+ ?middlename:string+ ?phone: string(phonenumber)+ ?email: string(mail)+ receiptNeeded: boolean(address needed)
Extends
Extends
Extends
Extends
runnerCard+ id: int+ ?runner: runner+ code: string+ enabled: boolean(true)<<interface>>Scan+ id: int+ runner: runner+ distance: int(meters)
Extends
Extends
Viewer does not support full SVG 1.1
\ No newline at end of file