|
|
|
**Diagram**
|
|
|
|
|
|
|
|
```plantuml
|
|
|
|
!define table(x) class x << (T,#292929) >>
|
|
|
|
!define primary_key(x) <b><color:#fcc203><&key></color> x</b>
|
|
|
|
!define foreign_key(x) <color:#aaaaaa><&key></color> x
|
|
|
|
|
|
|
|
hide methods
|
|
|
|
skinparam backgroundColor #292929
|
|
|
|
skinparam shadowing false
|
|
|
|
skinparam defaultFontColor #e4e4e4
|
|
|
|
skinparam defaultFontSize 14
|
|
|
|
skinparam linetype ortho
|
|
|
|
skinparam class {
|
|
|
|
BackgroundColor #292929
|
|
|
|
ArrowColor #00cc92
|
|
|
|
BorderColor #00cc92
|
|
|
|
BorderRoundCorner 20
|
|
|
|
FontColor #000000
|
|
|
|
HeaderBackgroundColor #00cc92
|
|
|
|
}
|
|
|
|
|
|
|
|
table(challengeRoom) {
|
|
|
|
primary_key(challengeRoomId: uuid)
|
|
|
|
roomName: string
|
|
|
|
roomCode: string
|
|
|
|
roomDescription: string
|
|
|
|
endDate: timestamp
|
|
|
|
startDate: timestamp
|
|
|
|
isActive: boolean
|
|
|
|
isPaused: boolean
|
|
|
|
}
|
|
|
|
|
|
|
|
table(user){
|
|
|
|
primary_key(userId: uuid)
|
|
|
|
foreign_key(challengeRoomId: uuid)
|
|
|
|
userName: string
|
|
|
|
isGameMaster: boolean
|
|
|
|
userAvatar: number
|
|
|
|
}
|
|
|
|
|
|
|
|
table(submission){
|
|
|
|
primary_key(submissionId: uuid)
|
|
|
|
foreign_key(userId: uuid)
|
|
|
|
foreign_key(taskId: uuid)
|
|
|
|
status: string
|
|
|
|
fileName: string
|
|
|
|
mimeType: string
|
|
|
|
}
|
|
|
|
|
|
|
|
table(task) {
|
|
|
|
primary_key(taskId: uuid)
|
|
|
|
foreign_key(challengeRoomId: uuid)
|
|
|
|
taskDescription: string
|
|
|
|
taskNumber: number
|
|
|
|
}
|
|
|
|
|
|
|
|
challengeRoom ||--|{ user
|
|
|
|
challengeRoom ||--|{ task
|
|
|
|
task ||--|{ submission
|
|
|
|
user ||--|{ submission
|
|
|
|
```
|
|
|
|
|
|
|
|
**User**
|
|
|
|
|
|
|
|
User that will be created when the player joins a challenge room. User will always be in a room, and user can be only in one room. Players and gamemasters are in the same User table, separated by the isGameMaster boolean value.
|
|
|
|
|
|
|
|
**ChallengeRoom**
|
|
|
|
|
|
|
|
Game room's information.
|
|
|
|
|
|
|
|
**Task**
|
|
|
|
|
|
|
|
Challenge room's task.
|
|
|
|
|
|
|
|
**Submission**
|
|
|
|
|
|
|
|
Players' photo submissions to the challenge room tasks. Submission table contains the photo's information as well as tasks completion status. |
|
|
|
\ No newline at end of file |