Merge branch 'documentation' into 'main'
Merge entire documentation branch into main See merge request felixalb/dcst1008-2022-group1!2
|
@ -2,57 +2,46 @@
|
||||||
' Internal development class diagram
|
' Internal development class diagram
|
||||||
' Describes database fields and object methods required
|
' Describes database fields and object methods required
|
||||||
|
|
||||||
|
title Tournament System - Group 1
|
||||||
|
skinparam Linetype ortho
|
||||||
|
|
||||||
|
class User {
|
||||||
|
*user_id: Integer
|
||||||
|
google_id: String
|
||||||
|
name: String
|
||||||
|
email: String
|
||||||
|
isManager: Boolean
|
||||||
|
}
|
||||||
|
|
||||||
class Match {
|
class Match {
|
||||||
*match_id: Integer
|
*match_id: Integer
|
||||||
tournament_id: Integer
|
tournament_id: Integer
|
||||||
team_ids: Integer[]
|
parentMatch_id: Integer
|
||||||
scores: Integer[]
|
team1_id: Integer
|
||||||
|
team2_id: Integer
|
||||||
winner_id: Integer
|
winner_id: Integer
|
||||||
|
tier: Integer
|
||||||
Match constructor(tournament_id: Integer, team_ids: Integer[])
|
|
||||||
void setScore(team_id: Integer, score: Integer)
|
|
||||||
void setWinner(winner_id: Integer)
|
|
||||||
}
|
}
|
||||||
class Team {
|
class Team {
|
||||||
*team_id: Integer
|
*team_id: Integer
|
||||||
|
tournament_id: Integer
|
||||||
name: String
|
name: String
|
||||||
tournament_ids: Integer[]
|
|
||||||
|
|
||||||
Team constructor(name: String)
|
|
||||||
void joinTournament(tournament_id: Integer)
|
|
||||||
void addPlayer(player_id: Integer)
|
|
||||||
void removePlayer(player_id: Integer)
|
|
||||||
void leaveTournament(tournament_id: Integer)
|
|
||||||
}
|
|
||||||
class Player {
|
|
||||||
*player_id: Integer
|
|
||||||
name: String
|
|
||||||
team_id: Integer
|
|
||||||
|
|
||||||
|
|
||||||
Player constructor(name: String)
|
|
||||||
void joinTeam(team_id: Integer)
|
|
||||||
void leaveTeam()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class Tournament {
|
class Tournament {
|
||||||
*tournament_id: Integer
|
*tournament_id: Integer
|
||||||
name: String
|
name: String
|
||||||
|
description: String
|
||||||
|
prize: String
|
||||||
|
teamLimit: Integer
|
||||||
start_date: Date
|
start_date: Date
|
||||||
end_date: Date
|
end_date: Date
|
||||||
manager_ids: Integer[]
|
|
||||||
team_ids: Integer[]
|
|
||||||
|
|
||||||
Tournament constructor(name: String, start_date: Date, end_date: Date)
|
|
||||||
void addTeam(team_id: Integer)
|
|
||||||
void removeTeam(team_id: Integer)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Team "2..*" -- "1..*" Tournament : "Plays in"
|
Team "2..*" --- "1..1" Tournament : "Plays in"
|
||||||
Tournament "1" -- "1..*" Match : contains
|
Team "2..2" --- "1..*" Match : "Competes in"
|
||||||
Player "1..*" -- "1..1" Team : "Belongs to"
|
|
||||||
Team "2..2" -- "1..*" Match : "Competes in"
|
|
||||||
|
|
||||||
|
|
||||||
|
left to right direction
|
||||||
|
Tournament "1" --- "3..*" Match : contains
|
||||||
@enduml
|
@enduml
|
|
@ -5,9 +5,9 @@ class Match {
|
||||||
*match_id: Integer
|
*match_id: Integer
|
||||||
Tournament
|
Tournament
|
||||||
Teams
|
Teams
|
||||||
Scores
|
|
||||||
Winner
|
Winner
|
||||||
}
|
}
|
||||||
|
|
||||||
class Team {
|
class Team {
|
||||||
*team_id
|
*team_id
|
||||||
Name
|
Name
|
||||||
|
@ -15,6 +15,7 @@ class Team {
|
||||||
Players
|
Players
|
||||||
Matches
|
Matches
|
||||||
}
|
}
|
||||||
|
|
||||||
class Player {
|
class Player {
|
||||||
*player_id
|
*player_id
|
||||||
Name
|
Name
|
||||||
|
@ -37,10 +38,16 @@ class Administrator {
|
||||||
Manager-status
|
Manager-status
|
||||||
}
|
}
|
||||||
|
|
||||||
Team "2..*" -> "1..*" Tournament : "Plays in"
|
class User {
|
||||||
Tournament "1" --> "1..*" Match : contains
|
|
||||||
Player "1..*" --> "1..1" Team : "Belongs to"
|
|
||||||
Team "2..2" --> "1..*" Match : "Competes in"
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Team "2..*" - "1..*" Tournament : "Plays in"
|
||||||
|
Tournament "1" -- "1..*" Match : contains
|
||||||
|
Player "1..*" -- "1..1" Team : "Belongs to"
|
||||||
|
Team "2..2" -- "1..*" Match : "Competes in"
|
||||||
|
|
||||||
|
Administrator "1..*" -- "0..*" Tournament : "Manages"
|
||||||
|
Administrator "1..*" -- "0..*" Team : "Manages"
|
||||||
|
User "0..*" --> "0..*" Tournament : "View overview"
|
||||||
@enduml
|
@enduml
|
After Width: | Height: | Size: 137 KiB |
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 34 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 89 KiB |
After Width: | Height: | Size: 67 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 69 KiB |
After Width: | Height: | Size: 176 KiB |
After Width: | Height: | Size: 777 KiB |
After Width: | Height: | Size: 507 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 49 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 56 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 772 KiB |
|
@ -0,0 +1,27 @@
|
||||||
|
@startuml Create Tournament
|
||||||
|
title Create Tournament
|
||||||
|
Actor Admin #palegreen
|
||||||
|
participant Website
|
||||||
|
database Server #brown
|
||||||
|
hide footbox
|
||||||
|
|
||||||
|
Admin->Website: createTournament(Tournament)
|
||||||
|
activate Admin
|
||||||
|
activate Website
|
||||||
|
Website->Server: sendInfo(Tournament)
|
||||||
|
activate Server
|
||||||
|
Server-->Website: {status: success | failure}
|
||||||
|
deactivate Server
|
||||||
|
alt status = success
|
||||||
|
Website->Server: fetchInfo(Tournament)
|
||||||
|
activate Server
|
||||||
|
Server-->Website: sendInfo(Tournament)
|
||||||
|
deactivate Server
|
||||||
|
Website-->Admin: displayTournament(Tournament)
|
||||||
|
end
|
||||||
|
alt status = failure
|
||||||
|
Website-->Admin: displayError(error)
|
||||||
|
end
|
||||||
|
deactivate Admin
|
||||||
|
deactivate Website
|
||||||
|
@enduml
|
|
@ -0,0 +1,26 @@
|
||||||
|
@startuml Asura Tournament System
|
||||||
|
title Login
|
||||||
|
Actor Admin #palegreen
|
||||||
|
participant Website
|
||||||
|
database Server #brown
|
||||||
|
hide footbox
|
||||||
|
|
||||||
|
Admin->Website: login(username, passwd)
|
||||||
|
activate Admin
|
||||||
|
activate Website
|
||||||
|
Website->Server: Login Request
|
||||||
|
activate Server
|
||||||
|
Server-->Website: {status: success | failure}
|
||||||
|
deactivate Server
|
||||||
|
alt status = success
|
||||||
|
Website-->Admin: "Login Successful"
|
||||||
|
opt if (isManager(user))
|
||||||
|
Website->Admin: redirect(managerPage)
|
||||||
|
else
|
||||||
|
Website->Admin: redirect(adminPage)
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
deactivate Website
|
||||||
|
deactivate Admin
|
||||||
|
@enduml
|
|
@ -0,0 +1,101 @@
|
||||||
|
@startuml Manage Tournament
|
||||||
|
title Manage Tournament
|
||||||
|
Actor Admin #palegreen
|
||||||
|
participant Website
|
||||||
|
database Server #brown
|
||||||
|
hide footbox
|
||||||
|
|
||||||
|
alt Manage Teams
|
||||||
|
Admin->Website: manageTeamsButton()
|
||||||
|
activate Admin
|
||||||
|
activate Website
|
||||||
|
Website-->Admin: redirect(/tournament/id/teams)
|
||||||
|
opt Add
|
||||||
|
Admin->Website: addTeam(name,members)
|
||||||
|
opt Error
|
||||||
|
Website-->Admin: displayError(error)
|
||||||
|
end
|
||||||
|
Website->Server: addTeam(id,name,members)
|
||||||
|
activate Server
|
||||||
|
Server-->Website: postTeam(team)
|
||||||
|
deactivate Server
|
||||||
|
Website-->Admin: updateTeamList(team)
|
||||||
|
deactivate Admin
|
||||||
|
deactivate Website
|
||||||
|
end
|
||||||
|
opt Edit
|
||||||
|
Admin->Website: selectTeam(team)
|
||||||
|
activate Admin
|
||||||
|
activate Website
|
||||||
|
Website->Server: getTeam(team)
|
||||||
|
activate Server
|
||||||
|
Server-->Website: postTeam(team)
|
||||||
|
deactivate Server
|
||||||
|
Website-->Admin: showTeam(team,members)
|
||||||
|
opt Add Member
|
||||||
|
Admin->Website: addMember(name)
|
||||||
|
activate Server
|
||||||
|
Website->Server: updateTeam(team,member:name)
|
||||||
|
Website-->Admin: showTeam(team,member)
|
||||||
|
deactivate Server
|
||||||
|
end
|
||||||
|
opt Remove Member
|
||||||
|
Admin->Website: removeMember(id)
|
||||||
|
activate Server
|
||||||
|
Website->Server: updateTeam(team,member:id)
|
||||||
|
Website-->Admin: showTeam(team,member)
|
||||||
|
deactivate Server
|
||||||
|
deactivate Admin
|
||||||
|
deactivate Website
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
opt Delete
|
||||||
|
activate Admin
|
||||||
|
activate Website
|
||||||
|
Admin->Website: deleteTeam(team)
|
||||||
|
Website-->Admin: confirm ? Yes : No;
|
||||||
|
opt Error
|
||||||
|
Website-->Admin: displayError(error)
|
||||||
|
end
|
||||||
|
opt Yes
|
||||||
|
Website->Server: removeTeam(team:id)
|
||||||
|
activate Server
|
||||||
|
Server-->Website: postTeam(team)
|
||||||
|
deactivate Server
|
||||||
|
Website-->Admin: updateTeamList(team)
|
||||||
|
end
|
||||||
|
opt No
|
||||||
|
Website-->Admin: redirect(/tournament/tournament/id/teams)
|
||||||
|
end
|
||||||
|
deactivate Admin
|
||||||
|
deactivate Website
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
alt Select Match Winner
|
||||||
|
Admin->Website: chooseWinner(match,team)
|
||||||
|
Website->Server: updateMatch(id:matchID,winner:teamID)
|
||||||
|
activate Server
|
||||||
|
Server-->Website: updateParentOf(child:matchID)
|
||||||
|
deactivate Server
|
||||||
|
Website-->Admin: displayTournament(Tournament)
|
||||||
|
end
|
||||||
|
|
||||||
|
alt Delete Tournament
|
||||||
|
Admin->Website: removeTournament(tournament)
|
||||||
|
Website-->Admin: confirm ? Yes : No;
|
||||||
|
opt Yes
|
||||||
|
activate Server
|
||||||
|
Website->Server: removeTournament(tournament:id)
|
||||||
|
Website-->Admin: redirect(/homePage)
|
||||||
|
deactivate Server
|
||||||
|
end
|
||||||
|
opt No
|
||||||
|
Website-->Admin: redirect(/tournaments/id/)
|
||||||
|
end
|
||||||
|
deactivate Admin
|
||||||
|
deactivate Website
|
||||||
|
end
|
||||||
|
@enduml
|
|
@ -0,0 +1,67 @@
|
||||||
|
@startuml Manger View
|
||||||
|
title Manager View
|
||||||
|
Actor Manager #lime
|
||||||
|
participant Website
|
||||||
|
database Server #brown
|
||||||
|
|
||||||
|
note left of Manager #white
|
||||||
|
**Managers can do**
|
||||||
|
**everything an admin can,**
|
||||||
|
**these are additions**
|
||||||
|
end note
|
||||||
|
|
||||||
|
alt View Admins
|
||||||
|
activate Manager
|
||||||
|
activate Website
|
||||||
|
Manager->Website: viewAdmins()
|
||||||
|
activate Server
|
||||||
|
Website->Server: requestList(Admins)
|
||||||
|
Website<--Server: sendList(Admins)
|
||||||
|
deactivate Server
|
||||||
|
Manager<--Website: displayAdmins()
|
||||||
|
end
|
||||||
|
|
||||||
|
alt Add Admins
|
||||||
|
Manager->Website: addAdmin(name,passwd)
|
||||||
|
activate Server
|
||||||
|
Website->Server: addUser(id,name,passwd)
|
||||||
|
Website<--Server: {status: success | failure}
|
||||||
|
deactivate Server
|
||||||
|
opt status = success
|
||||||
|
Manager<--Website: displayInfo(Success)
|
||||||
|
activate Server
|
||||||
|
Website->Server: requestList(Admins)
|
||||||
|
Website<--Server: sendList(Admins)
|
||||||
|
deactivate Server
|
||||||
|
Manager<--Website: displayAdmins()
|
||||||
|
|
||||||
|
else status = failure
|
||||||
|
Manager<--Website: displayError(error)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
alt Remove Admins
|
||||||
|
Manager->Website: removeAdmin(name)
|
||||||
|
activate Server
|
||||||
|
Website->Server: removeUser(id)
|
||||||
|
Website<--Server: {status: success | failure}
|
||||||
|
deactivate Server
|
||||||
|
opt status = success
|
||||||
|
Manager<--Website: displayInfo(Success)
|
||||||
|
activate Server
|
||||||
|
Website->Server: requestList(Admins)
|
||||||
|
Website<--Server: sendList(Admins)
|
||||||
|
deactivate Server
|
||||||
|
Manager<--Website: displayAdmins()
|
||||||
|
|
||||||
|
else status = failure
|
||||||
|
Manager<--Website: displayError(error)
|
||||||
|
end
|
||||||
|
deactivate Manager
|
||||||
|
deactivate Website
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@enduml
|
|
@ -1,7 +1,9 @@
|
||||||
@startuml User View
|
@startuml User View
|
||||||
|
title User View
|
||||||
actor User #LightBlue
|
actor User #LightBlue
|
||||||
participant Website
|
participant Website
|
||||||
database Server #Brown
|
database Server #Brown
|
||||||
|
hide footbox
|
||||||
|
|
||||||
User->Website: viewTournament(Tournament)
|
User->Website: viewTournament(Tournament)
|
||||||
activate User
|
activate User
|
|
@ -0,0 +1,81 @@
|
||||||
|
@startuml Tournament System
|
||||||
|
title Tournament System - Group 1
|
||||||
|
|
||||||
|
skinparam actorStyle awesome
|
||||||
|
skinparam linetype ortho
|
||||||
|
|
||||||
|
package Administrators {
|
||||||
|
actor Manager as mgr
|
||||||
|
actor Admin as adm
|
||||||
|
|
||||||
|
note "Manager extends admin" as MgrNote
|
||||||
|
mgr .l. MgrNote
|
||||||
|
MgrNote .l.|> adm
|
||||||
|
}
|
||||||
|
|
||||||
|
actor User as u1
|
||||||
|
|
||||||
|
left to right direction
|
||||||
|
rectangle System {
|
||||||
|
usecase "Login" as SysLogin
|
||||||
|
usecase "Manage admins" as SysMngAdm
|
||||||
|
|
||||||
|
usecase "Create admin" as SysCrtAdm
|
||||||
|
usecase "Delete admin" as SysDelAdm
|
||||||
|
|
||||||
|
usecase "View home page" as HomeView
|
||||||
|
|
||||||
|
package Tournament {
|
||||||
|
usecase "Manage tournament" as MngTou
|
||||||
|
usecase "Create tournament" as TouCreateT
|
||||||
|
together {
|
||||||
|
usecase "Edit tournament" as TouEdit
|
||||||
|
usecase "Delete tournament" as TouDelete
|
||||||
|
usecase "View teams" as TeamView
|
||||||
|
}
|
||||||
|
together {
|
||||||
|
usecase "Add team" as TeamAdd
|
||||||
|
usecase "Delete team" as TeamDel
|
||||||
|
usecase "Manage team" as TeamMng
|
||||||
|
usecase "Add members" as MembAdd
|
||||||
|
usecase "Remove members" as MembDel
|
||||||
|
}
|
||||||
|
together {
|
||||||
|
usecase "View tournaments" as TouVtou
|
||||||
|
usecase "View matches" as TouVmatch
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
note "If logged in as manager" as SysCrtAdmNote
|
||||||
|
SysLogin .r. SysCrtAdmNote
|
||||||
|
SysCrtAdmNote ..> SysMngAdm
|
||||||
|
}
|
||||||
|
|
||||||
|
mgr --> SysLogin
|
||||||
|
|
||||||
|
adm --> SysLogin
|
||||||
|
adm --> HomeView
|
||||||
|
|
||||||
|
u1 --> HomeView
|
||||||
|
|
||||||
|
SysLogin --> MngTou
|
||||||
|
SysLogin --> TouCreateT
|
||||||
|
|
||||||
|
SysMngAdm -l--> SysCrtAdm
|
||||||
|
SysMngAdm -l--> SysDelAdm
|
||||||
|
|
||||||
|
MngTou --> TouEdit
|
||||||
|
MngTou --> TouDelete
|
||||||
|
MngTou --> TeamView
|
||||||
|
|
||||||
|
TeamView --> TeamAdd
|
||||||
|
TeamView --> TeamDel
|
||||||
|
TeamView --> TeamMng
|
||||||
|
|
||||||
|
TeamMng --> MembAdd
|
||||||
|
TeamMng --> MembDel
|
||||||
|
|
||||||
|
|
||||||
|
HomeView --> TouVtou
|
||||||
|
HomeView --> TouVmatch
|
||||||
|
@enduml
|