digraph FacilitatorToolClassDiagram { fontname = "Tahoma" fontsize = 8 node [ fontname = "Tahoma" fontsize = 8 shape = "record" ] edge [ fontname = "Tahoma" fontsize = 8 ] Survey [ label = "{Survey|$title : String \l$description : String \l$creator : User \l$questions : Question[] \l|}" ] User [ label = "{User|$email : String \l$passwordHash : String \l$passwordSalt : String\l|}" ] Question [ label = "{Question|$code : String \l$title : String \l$type : String \l$description : String \l$category : String \l$answers : String[] \l|}" ] Answer [ label = "{Answer|$question : Question \l$values : Array \l|}" ] AnswerSet [ label = "{AnswerSet|$survey : Survey \l$respondent : Respondent \l$datetime : DateTime \l$answers : Array \l|}" ] Respondent [ label = "{Respondent|$email : String \l$passwordHash : String \l$passwordSalt : String\l|}" ] SurveyInstance [ label = "{SurveyInstance|$survey : Survey \l$starttime : DateTime \l$endtime : DateTime \l$open : boolean \l$presetanswers : Answer[] \l$answersets : AnswerSet[] \l|}" ] Application [ label = "{Application|$title : String \l$description : String \l$style : String \l|}" ] ApplicationInstance [ label = "{ApplicationInstance|$application : Application \l$starttime : DateTime \l$endtime : DateTime \l$open : boolean \l$playerresults : PlayerResult[] \l$groupresults : GroupResults[] \l$periodicresults : PeriodicResults[]|}" ] Session [ label = "{Session|$title : String \l$creator : User \l$creationdate : DateTime \l$pipeline : Survey/Application[] \l|}" ] SessionInstance[ label = "{SessionInstance|$title : String \l$location : String \l$facilitator : User \l$starttime : DateTime \l$endtime : DateTime \l$notes : String[] \l$session : Session \l$surveyinstances : SurveyInstance[] \l$applicationinstances : ApplicationInstance[] \l|}" ] PlayerResult[ label = "{PlayerResult|$value : KeyValuePair[] \l$respondent : Respondent \l$application : Application \l|}" ] GroupResult[ label = "{GroupResult|$value : KeyValuePair[] \l$respondent : Respondent \l$application : Application \l|}" ] PeriodicResult[ label = "{PeriodicResult|$value : KeyValuePair[] \l$respondent : Respondent \l$application : Application \l|}" ] edge [ arrowhead = "none" ] Survey -> User [headlabel = "1" "creator"] Survey -> Question [headlabel = "*" label = "questions"] Answer -> Question [headlabel = "1" label = "question"] AnswerSet -> Survey [headlabel = "1" label = "survey"] AnswerSet -> Answer [headlabel = "*" label = "answers"] AnswerSet -> Respondent [headlabel = "1" label = "respondent"] SurveyInstance -> Survey [headlabel = "1" label = "survey"] SurveyInstance -> AnswerSet [headlabel ="*" label = "answersets"] SurveyInstance -> Answer [headlabel = "*" label = "presetanswers"] ApplicationInstance -> Application [headlabel = "1" label = "application"] ApplicationInstance -> PlayerResult [headlabel = "*" label = "playerresults"] ApplicationInstance -> GroupResult [headlabel = "*" label = "groupresults"] ApplicationInstance -> PeriodicResult [headlabel = "*" label = "periodicresults"] Session -> User [headlabel ="1" label = "creator"] Session -> Survey [headlabel = "*" label = "pipeline"] Session -> Application [headlabel = "*" label ="pipeline"] SessionInstance -> User [headlabel = "1" label = "facilitator"] SessionInstance -> Session [headlabel = "1" label = "session"] SessionInstance -> SurveyInstance [headlabel = "*" label = "surveyinstances"] SessionInstance -> ApplicationInstance [headlabel = "*" label = "applicationinstances"] PlayerResult -> Respondent [headlabel = "1" label = "respondent"] GroupResult -> Respondent [headlabel = "1" label = "respondent"] PeriodicResult -> Respondent [headlabel = "1" label = "respondent"] }