@startuml
Bob -> Alice : hello
create Other
Alice -> Other : new
create control String
Alice -> String
note right : You can also put notes!
Alice --> Bob : ok
@enduml
@startuml
hide circle
package Decks {
class Mission
class Character
class Action
}
package Location {
class Planet
class Environ
}
note "Depends on\ninfo in" as N3
"Mission Results" <-- N3 : gets info from >
N3 <-- Character : supplies info <
N3 <-- Planet : supplies info <
N3 <-- Environ : supplies info <
note "Mission Results\ncan change info in" as N4
N4 <-- "Mission Results"
Mission <-- N4 : changes info <
Action <-- N4 : changes info <
Planet <-- N4 : changes info <
Environ <-- N4 : changes info <
Player <-- N4 : changes info <
Mission <-- Action : depends on <
Environ <-- Action : depends on <
Character <-- Mission : depends on <
Player <-- Deck : depends on <
note "Mission and Mission Results\nAuthors: Greg Donaldson and Robert Meine \nEditors: \nReviewed by Justin Hall" as N1
note "Mission, Action, and\nCharacter are extensions\nof the Deck class." as N2
Deck <|-- N2
N2 - Decks
class Deck {
deckName : string
deckMax : int
deckNumberDrawn : int
deckInfo : List of Dictionaries
deckCardsDrawn : Ordered Dictionary
phasingPlayerSide : string
Deck : draw()
Deck : shuffle()
Deck : getSide()
}
class Player {
playerSide : string
resourceTrack : int
Player : removeResources()
Player : addResources()
}
class "Mission Results" {
totalBonus : int
result : boolean
resultFormula : dictionary
missionType : char
phasingPlayerSide : string
Mission Results : calculateBonus()
Mission Results : getSide()
Mission Results : checkRestriction()
Mission Results : getSuccess()
Mission Results : bonusDraws()
Mission Results : processResult()
}
class Character {
characterName : string
detectionStatus : boolean
diplomacy : int
combat : int
endurance : int
intelligence : int
leadership : int
navigation : int
evasion : int
Character : changeStatus()
Character : removeCharacter()
}
class Environ {
resourceValue : int
units : list of lists
capturedUnits : list of lists
rebelCamp : boolean
Environ : removeUnit()
Environ : removeCapturedUnit()
Environ : addUnit()
Environ : addCapturedUnit()
Environ : changeCamp()
}
class Planet {
coupRating : int
currentLoyalty : int
loyaltyMarker : string
Planet : changeLoyalty()
Planet : flipMarker()
}
class Action {
missionType : char
missionSuccess : boolean
Action : getEnvironSize()
Action : getMissionType()
Action : checkActionLetter()
Action : getCharacterAttribute()
}
class Mission {
missionName : string
missionType : char
assignedCharacter : list
Mission : getType()
Mission : assignMission()
Mission : checkRestriction()
}
@enduml
@startuml
hide footbox
title Footer removed
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
@enduml
SEQUENCE DIAGRAM
5558976708083712
Users CRUD (Create Read Update Delete)UserUserWebUIWebUIOrchestraOrchestraLoginGET /user/login (auth d@f.com:pass)Get user from MongoDBOK 200{"status"=200"value"={"_id": "<uuid>", "name": "David Fischer", ...}}'Successfull login'Users TabGET /user/id/<uuid> (auth d@f.com:pass)Get user from MongoDBOK 200{"status"=200,"value"={"_id": "<uuid>", "name": "David Fischer", ...}}alt[if authenticated user has the admin_platform attribute]GET /user (auth d@f.com:pass)Get users from MongoDBOK 200{"status"=200,"value"=[{"_id": "<uuid>", "name": "David Fischer", ...}, ...]}<< Show the user and users listif authenticated user ... >>alt[if auth. user has the admin_platform attribute]Add an user (with add form)POST /user (auth d@f.com:pass) {"first_name": "Adi", "last_name": "Kouadio", ...}Save user to MongoDBOK 200{"status"=200,"value"={"_id": "<uuid_of_adi>", "name": "Adi Kouadio", ...}}<< Flash info message'The user "Adi Kouadio" has been added.' >>Edit an userPUT /user/id/<uuid_of_andres> {"admin_platform": false} (auth d@f.com:pass)Update user into MongoDBOK 200{"status"=200,"value"="The user \"Andrés Revuelta\" has been updated."}<< Flash info message'The user "Andrés Revuelta" has been updated.' >>Remove an userDELETE /user/id/<uuid_of_bram> (auth d@f.com:pass)Remove user from MongoDBOK 200{"status"=200,"value"="The user \"Bram Tullemans\" has been deleted."}<< Flash info message'The user "Bram Tullemans" has been deleted.' >>
SEQUENCE DIAGRAM
5559998373429248
Users CRUD (Create Read Update Delete)UserUserWebUIWebUIOrchestraOrchestraLoginGET /user/login (auth d@f.com:pass)Get user from MongoDBOK 200{"status"=200"value"={"_id": "<uuid>", "name": "David Fischer", ...}}'Successfull login'Users TabGET /user/id/<uuid> (auth d@f.com:pass)Get user from MongoDBOK 200{"status"=200,"value"={"_id": "<uuid>", "name": "David Fischer", ...}}alt[if authenticated user has the admin_platform attribute]GET /user (auth d@f.com:pass)Get users from MongoDBOK 200{"status"=200,"value"=[{"_id": "<uuid>", "name": "David Fischer", ...}, ...]}<< Show the user and users listif authenticated user ... >>alt[if auth. user has the admin_platform attribute]Add an user (with add form)POST /user (auth d@f.com:pass) {"first_name": "Adi", "last_name": "Kouadio", ...}Save user to MongoDBOK 200{"status"=200,"value"={"_id": "<uuid_of_adi>", "name": "Adi Kouadio", ...}}<< Flash info message'The user "Adi Kouadio" has been added.' >>Edit an userPUT /user/id/<uuid_of_andres> {"admin_platform": false} (auth d@f.com:pass)Update user into MongoDBOK 200{"status"=200,"value"="The user \"Andrés Revuelta\" has been updated."}<< Flash info message'The user "Andrés Revuelta" has been updated.' >>Remove an userDELETE /user/id/<uuid_of_bram> (auth d@f.com:pass)Remove user from MongoDBOK 200{"status"=200,"value"="The user \"Bram Tullemans\" has been deleted."}<< Flash info message'The user "Bram Tullemans" has been deleted.' >>
@startuml
skin BlueModern
title Users CRUD (Create Read Update Delete)
actor User
participant "WebUI" as W
participant "Orchestra" as O
'participant "Storage" as S
'participant "Transform" as T
'participant "Publisher" as P
User -> W: Login
activate W
W -> O: GET /user/login (auth d@f.com:pass)
activate O
O -> O: Get user from MongoDB
O --> W: <b>OK 200</b> {"status"=200\n "value"={"_id": "<uuid>", "name": "David Fischer", ...}}
deactivate O
W --> User: 'Successfull login'
deactivate W
User -> W: Users Tab
activate W
W -> O: GET /user/id/<uuid> (auth d@f.com:pass)
activate O
O -> O: Get user from MongoDB
O --> W: <b>OK 200</b> {"status"=200,\n "value"={"_id": "<uuid>", "name": "David Fischer", ...}}
deactivate O
alt if authenticated user has the admin_platform attribute
W -> O: GET /user (auth d@f.com:pass)
activate O
O -> O: Get users from MongoDB
O --> W: <b>OK 200</b> {"status"=200,\n "value"=[{"_id": "<uuid>", "name": "David Fischer", ...}, ...]}
deactivate O
end
W --> User: << Show the user and users list\nif authenticated user ... >>
deactivate W
alt if auth. user has the admin_platform attribute
User -> W: Add an user (with add form)
activate W
W -> O: POST /user (auth d@f.com:pass) {"first_name": "Adi", "last_name": "Kouadio", ...}
activate O
O -> O: Save user to MongoDB
O --> W: <b>OK 200</b> {"status"=200,\n "value"={"_id": "<uuid_of_adi>", "name": "Adi Kouadio", ...}}
deactivate O
W --> User: << Flash info message\n'The user "Adi Kouadio" has been added.' >>
deactivate W
User -> W: Edit an user
activate W
W -> O: PUT /user/id/<uuid_of_andres> {"admin_platform": false} (auth d@f.com:pass)
activate O
O -> O: Update user into MongoDB
O --> W: <b>OK 200</b> {"status"=200,\n "value"="The user \\"Andrés Revuelta\\" has been updated."}
deactivate O
W --> User: << Flash info message\n'The user "Andrés Revuelta" has been updated.' >>
deactivate W
User -> W: Remove an user
activate W
W -> O: DELETE /user/id/<uuid_of_bram> (auth d@f.com:pass)
activate O
O -> O: Remove user from MongoDB
O --> W: <b>OK 200</b> {"status"=200,\n "value"="The user \\"Bram Tullemans\\" has been deleted."}
deactivate O
W --> User: << Flash info message\n'The user "Bram Tullemans" has been deleted.' >>
deactivate W
end
@enduml
SEQUENCE DIAGRAM
5559998373429248
Developer«User»Expert«User»Maintainer«User»Subscriber«User»Workforce«User»«Application»Designer«Application»Runner«Software System»MailServerProvides new versionsUpdates quizzes contentExports updated quizzesSends updated quizzes to subscribersReceives updated quizzesAdd updated quizzesPasses quizzesChecks quiz results
USE CASE DIAGRAM
5564018462818304
Developer«User»Expert«User»Maintainer«User»Subscriber«User»Workforce«User»«Application»Designer«Application»Runner«Software System»MailServerProvides new versionsUpdates quizzes contentExports updated quizzesSends updated quizzes to subscribersReceives updated quizzesAdd updated quizzesPasses quizzesChecks quiz results
WearableWearableSmartphone_appSmartphone_appXenophile_serverXenophile_serverData requestData responseData requestData responseInternal callCreateRequestRequestCreatedServe user data
SEQUENCE DIAGRAM
5573425514938368
WearableWearableSmartphone_appSmartphone_appXenophile_serverXenophile_serverData requestData responseData requestData responseInternal callCreateRequestRequestCreatedServe user data
UserUserAppAppServerServerDatabaseDatabasereviw my profilemakeGetRequest()getUserProfile()ResultSetalt[login key is correct]HTTP Response(success:true, data)[else]HTTP Response(success:false)
SEQUENCE DIAGRAM
5597862805110784
UserUserAppAppServerServerDatabaseDatabasereviw my profilemakeGetRequest()getUserProfile()ResultSetalt[login key is correct]HTTP Response(success:true, data)[else]HTTP Response(success:false)
@startuml
actor User
User->App:reviw my profile
App->Server:makeGetRequest()
Server->Database:getUserProfile()
Database-->Server:ResultSet
alt login key is correct
Server-->App:HTTP Response(success:true, data)
else else
Server-->App:HTTP Response(success:false)
end
@enduml