Compare commits

...
This repository has been archived on 2021-12-05. You can view files and clone it, but cannot push or open issues or pull requests.

2 Commits

Author SHA1 Message Date
Kai S. K. Engelbart 6b02fd0f46
Add Datamodel 2020-10-24 12:39:51 +02:00
Maximilian P. Käfer a062911d55 Handshake Sequence UML 2020-10-24 12:37:33 +02:00
2 changed files with 786 additions and 0 deletions

285
doc/datamodel.uxf Normal file
View File

@ -0,0 +1,285 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<diagram program="umlet" version="14.3.0">
<zoom_level>10</zoom_level>
<element>
<id>UMLClass</id>
<coordinates>
<x>50</x>
<y>60</y>
<w>210</w>
<h>240</h>
</coordinates>
<panel_attributes>DBUser
--
id: Long
nick: String
name: String
chats: Set&lt;DBChat&gt;
status: UserStatus
created: Instant
lastSeen: Instant
deleted: Boolean
avatar: DBAvatar
passwordHash: String
authToken: String
authTokenExpiration: Instant
--
+toCommon(): User</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>380</x>
<y>330</y>
<w>290</w>
<h>160</h>
</coordinates>
<panel_attributes>DBMessage
--
id: Long
sender: DBUser
forwarded: Boolean
deleted: Boolean
statuses: Map&lt;DBUser, DBMessageStatus&gt;
text: String
attachment: DBAttachment
--
+toCommon(): Message</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>770</x>
<y>320</y>
<w>210</w>
<h>100</h>
</coordinates>
<panel_attributes>DBMessageStatus
--
id: Long
status: MessageStatus
timestamp: Instant
--
+toCommon(): MessageStatus</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>770</x>
<y>440</y>
<w>180</w>
<h>120</h>
</coordinates>
<panel_attributes>DBAttachment
--
id: Long
name: String
type: AttachmentType
url: String
--
+toCommon(): Attachment</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>510</x>
<y>70</y>
<w>200</w>
<h>180</h>
</coordinates>
<panel_attributes>DBChat
--
id: Long
name: String
members: Set&lt;DBUser&gt;
admins: Set&lt;DBUser&gt;
messages: Set&lt;DBMessage&gt;
avatar: DBAvatar
allowJoining: Boolean
allowAttachments: Boolean
--
+toCommon(): Chat</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>250</x>
<y>100</y>
<w>280</w>
<h>40</h>
</coordinates>
<panel_attributes>lt=&lt;-&gt;
m1=0..n
m2=0..n</panel_attributes>
<additional_attributes>10.0;10.0;260.0;10.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>600</x>
<y>240</y>
<w>50</w>
<h>110</h>
</coordinates>
<panel_attributes>lt=-&gt;
m2=0..n</panel_attributes>
<additional_attributes>10.0;10.0;10.0;90.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>660</x>
<y>360</y>
<w>130</w>
<h>40</h>
</coordinates>
<panel_attributes>lt=-&gt;
m2=0..n</panel_attributes>
<additional_attributes>10.0;10.0;110.0;10.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>660</x>
<y>470</y>
<w>130</w>
<h>40</h>
</coordinates>
<panel_attributes>lt=-&gt;
m2=0..1</panel_attributes>
<additional_attributes>10.0;10.0;110.0;10.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>140</x>
<y>290</y>
<w>260</w>
<h>150</h>
</coordinates>
<panel_attributes>lt=&lt;-
m1=0..n</panel_attributes>
<additional_attributes>10.0;10.0;10.0;130.0;240.0;130.0</additional_attributes>
</element>
<element>
<id>UMLPackage</id>
<coordinates>
<x>10</x>
<y>0</y>
<w>1010</w>
<h>590</h>
</coordinates>
<panel_attributes>envoy.server.data
--
bg=#CCCCCC</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>90</x>
<y>680</y>
<w>170</w>
<h>130</h>
</coordinates>
<panel_attributes>User
--
id: long
nick: String
name: String
status: UserStatus
created: Instant
deleted: boolean</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>340</x>
<y>680</y>
<w>190</w>
<h>100</h>
</coordinates>
<panel_attributes>UserStatus
--
_+ONLINE: UserStatus_
_+AWAY: UserStatus_
_+BUSY: UserStatus_
_+OFFLINE: UserStatus_</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>250</x>
<y>730</y>
<w>110</w>
<h>30</h>
</coordinates>
<panel_attributes>lt=&lt;-</panel_attributes>
<additional_attributes>90.0;10.0;10.0;10.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>340</x>
<y>150</y>
<w>100</w>
<h>80</h>
</coordinates>
<panel_attributes>DBAvatar
--
id: Long
edited: Instant
url: String
layer=1</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>250</x>
<y>190</y>
<w>110</w>
<h>40</h>
</coordinates>
<panel_attributes>lt=&lt;-
m1=0..1</panel_attributes>
<additional_attributes>90.0;10.0;10.0;10.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>430</x>
<y>190</y>
<w>100</w>
<h>40</h>
</coordinates>
<panel_attributes>lt=&lt;-
m1=0..1</panel_attributes>
<additional_attributes>10.0;10.0;80.0;10.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>610</x>
<y>680</y>
<w>180</w>
<h>130</h>
</coordinates>
<panel_attributes>Chat
--
id: long
name: String
deceased: boolean
members: Set&lt;User&gt;
admins: Set&lt;User&gt;
messages: List&lt;Message&gt;</panel_attributes>
<additional_attributes/>
</element>
</diagram>

View File

@ -0,0 +1,501 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<diagram program="umlet" version="14.3.0">
<zoom_level>9</zoom_level>
<element>
<id>UMLActor</id>
<coordinates>
<x>72</x>
<y>540</y>
<w>54</w>
<h>99</h>
</coordinates>
<panel_attributes>Client1</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLGeneric</id>
<coordinates>
<x>2196</x>
<y>504</y>
<w>198</w>
<h>171</h>
</coordinates>
<panel_attributes>Database
halign=center
bg=orange
--</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLGeneric</id>
<coordinates>
<x>351</x>
<y>513</y>
<w>90</w>
<h>117</h>
</coordinates>
<panel_attributes>Main</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLGeneric</id>
<coordinates>
<x>531</x>
<y>513</y>
<w>90</w>
<h>117</h>
</coordinates>
<panel_attributes>Startup
bg=orange</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLGeneric</id>
<coordinates>
<x>702</x>
<y>513</y>
<w>90</w>
<h>117</h>
</coordinates>
<panel_attributes>Client
bg=yellow</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLGeneric</id>
<coordinates>
<x>873</x>
<y>513</y>
<w>90</w>
<h>117</h>
</coordinates>
<panel_attributes>LocalDB
bg=pink</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLGeneric</id>
<coordinates>
<x>1548</x>
<y>522</y>
<w>189</w>
<h>117</h>
</coordinates>
<panel_attributes>LoginCredentialsProcessor
bg=cyan</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLGeneric</id>
<coordinates>
<x>1809</x>
<y>522</y>
<w>135</w>
<h>117</h>
</coordinates>
<panel_attributes>PersistenceManager
bg=gray</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>396</x>
<y>729</y>
<w>189</w>
<h>36</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-
start javaFX app</panel_attributes>
<additional_attributes>190.0;20.0;10.0;20.0</additional_attributes>
</element>
<element>
<id>UMLGeneric</id>
<coordinates>
<x>387</x>
<y>720</y>
<w>18</w>
<h>54</h>
</coordinates>
<panel_attributes/>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>387</x>
<y>621</y>
<w>27</w>
<h>117</h>
</coordinates>
<panel_attributes>lt=.</panel_attributes>
<additional_attributes>10.0;10.0;10.0;110.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>567</x>
<y>621</y>
<w>27</w>
<h>117</h>
</coordinates>
<panel_attributes>lt=.</panel_attributes>
<additional_attributes>10.0;10.0;10.0;110.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>738</x>
<y>621</y>
<w>27</w>
<h>216</h>
</coordinates>
<panel_attributes>lt=.</panel_attributes>
<additional_attributes>10.0;10.0;10.0;220.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>909</x>
<y>621</y>
<w>27</w>
<h>153</h>
</coordinates>
<panel_attributes>lt=.</panel_attributes>
<additional_attributes>10.0;10.0;10.0;150.0</additional_attributes>
</element>
<element>
<id>UMLGeneric</id>
<coordinates>
<x>567</x>
<y>720</y>
<w>18</w>
<h>396</h>
</coordinates>
<panel_attributes>bg=orange</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLGeneric</id>
<coordinates>
<x>738</x>
<y>819</y>
<w>18</w>
<h>558</h>
</coordinates>
<panel_attributes>bg=yellow</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLGeneric</id>
<coordinates>
<x>909</x>
<y>756</y>
<w>18</w>
<h>621</h>
</coordinates>
<panel_attributes>bg=pink</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>576</x>
<y>756</y>
<w>351</w>
<h>36</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-
initialize</panel_attributes>
<additional_attributes>370.0;20.0;10.0;20.0</additional_attributes>
</element>
<element>
<id>UMLGeneric</id>
<coordinates>
<x>1062</x>
<y>513</y>
<w>90</w>
<h>117</h>
</coordinates>
<panel_attributes>Receiver
bg=red</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>1098</x>
<y>621</y>
<w>27</w>
<h>270</h>
</coordinates>
<panel_attributes>lt=.</panel_attributes>
<additional_attributes>10.0;10.0;10.0;280.0</additional_attributes>
</element>
<element>
<id>UMLGeneric</id>
<coordinates>
<x>1098</x>
<y>873</y>
<w>18</w>
<h>504</h>
</coordinates>
<panel_attributes>bg=red</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>576</x>
<y>1071</y>
<w>180</w>
<h>36</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-
init receivers
layer=0</panel_attributes>
<additional_attributes>180.0;20.0;10.0;20.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>576</x>
<y>828</y>
<w>180</w>
<h>36</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-
perform handshake</panel_attributes>
<additional_attributes>180.0;20.0;10.0;20.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>747</x>
<y>873</y>
<w>369</w>
<h>36</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-
init handhake receivers
layer=0</panel_attributes>
<additional_attributes>390.0;20.0;10.0;20.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>747</x>
<y>1071</y>
<w>369</w>
<h>36</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-
init permanent receivers
layer=0</panel_attributes>
<additional_attributes>390.0;20.0;10.0;20.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>1638</x>
<y>630</y>
<w>27</w>
<h>306</h>
</coordinates>
<panel_attributes>lt=.</panel_attributes>
<additional_attributes>10.0;10.0;10.0;320.0</additional_attributes>
</element>
<element>
<id>UMLGeneric</id>
<coordinates>
<x>1638</x>
<y>918</y>
<w>18</w>
<h>558</h>
</coordinates>
<panel_attributes>bg=cyan</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>747</x>
<y>918</y>
<w>909</w>
<h>36</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-
send login credentials
layer=0</panel_attributes>
<additional_attributes>990.0;20.0;10.0;20.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>1872</x>
<y>630</y>
<w>27</w>
<h>306</h>
</coordinates>
<panel_attributes>lt=.</panel_attributes>
<additional_attributes>10.0;10.0;10.0;320.0</additional_attributes>
</element>
<element>
<id>UMLGeneric</id>
<coordinates>
<x>1872</x>
<y>918</y>
<w>18</w>
<h>558</h>
</coordinates>
<panel_attributes>bg=gray</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>1881</x>
<y>918</y>
<w>423</w>
<h>36</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-
use queries
layer=0</panel_attributes>
<additional_attributes>450.0;20.0;10.0;20.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>2286</x>
<y>666</y>
<w>27</w>
<h>270</h>
</coordinates>
<panel_attributes>lt=.</panel_attributes>
<additional_attributes>10.0;10.0;10.0;280.0</additional_attributes>
</element>
<element>
<id>UMLGeneric</id>
<coordinates>
<x>2286</x>
<y>918</y>
<w>18</w>
<h>558</h>
</coordinates>
<panel_attributes>bg=orange</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>1647</x>
<y>918</y>
<w>243</w>
<h>36</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-
aquire data
layer=0</panel_attributes>
<additional_attributes>250.0;20.0;10.0;20.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>1881</x>
<y>954</y>
<w>423</w>
<h>36</h>
</coordinates>
<panel_attributes>lt=-&gt;&gt;
send query responses
layer=0</panel_attributes>
<additional_attributes>450.0;20.0;10.0;20.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>1647</x>
<y>954</y>
<w>243</w>
<h>36</h>
</coordinates>
<panel_attributes>lt=-&gt;&gt;
send aquired data
layer=0</panel_attributes>
<additional_attributes>250.0;20.0;10.0;20.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>1107</x>
<y>990</y>
<w>549</w>
<h>36</h>
</coordinates>
<panel_attributes>lt=-&gt;&gt;
send user, chats, pending messages, etc.
layer=0</panel_attributes>
<additional_attributes>590.0;20.0;10.0;20.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>918</x>
<y>990</y>
<w>198</w>
<h>36</h>
</coordinates>
<panel_attributes>lt=-&gt;&gt;
store data
layer=0</panel_attributes>
<additional_attributes>200.0;20.0;10.0;20.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>99</x>
<y>729</y>
<w>306</w>
<h>36</h>
</coordinates>
<panel_attributes>lt=-&gt;
start app</panel_attributes>
<additional_attributes>10.0;20.0;320.0;20.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>90</x>
<y>621</y>
<w>27</w>
<h>117</h>
</coordinates>
<panel_attributes>lt=.</panel_attributes>
<additional_attributes>10.0;10.0;10.0;110.0</additional_attributes>
</element>
<element>
<id>UMLGeneric</id>
<coordinates>
<x>90</x>
<y>720</y>
<w>18</w>
<h>54</h>
</coordinates>
<panel_attributes/>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>747</x>
<y>1026</y>
<w>369</w>
<h>36</h>
</coordinates>
<panel_attributes>lt=-&gt;&gt;
online
layer=0</panel_attributes>
<additional_attributes>390.0;20.0;10.0;20.0</additional_attributes>
</element>
</diagram>