1
0
mirror of https://github.com/matt-fidd/stratos.git synced 2026-01-01 22:39:26 +00:00
Files
stratos/writeup/diagrams/classDiagram.puml

133 lines
2.3 KiB
Plaintext

@startuml
skinparam classAttributeIconSize 0
User <|-- Account
User <|-- Student
User <|-- Parent
User -- PasswordReset
Student -- Parent
Student -- Test
Student -- Class
Account -- Class
Account -- TestTemplate
Class -- Subject
Class -- Test
TestTemplate -- Test
TestTemplate -- Class
Test -- TestResult
TestResult -- Student
class User {
id: string
firstName: string
otherNames: string
lastName: string
email: string
password: string
type: string
getfullName(): string
verifyPassword(hash): boolean
changePassword(password): void
getPasswordReset(): PasswordReset
generatePasswordReset(): PasswordReset
{static} hashPassword(password): string
{static} createUser(...): Account|Student|Parent
{static} getUserByEmail(...): Account|Student|Parent
}
class Account {
getClasses(): Class[]
getTests(): TestTemplate[]
createTestTemplate(...): TestTemplate
createClass(...): Class
}
class Student {
getClasses(): Class[]
getTests(): Test[]
getParents(): Parent[]
}
class Parent {
getChildren(): Student[]
}
class PasswordReset {
userId: string
token: string
nonce: string
expires: Date
getUser(): User
{static} hashToken(): {string, string}
{static} generatePasswordReset(): PasswordReset
}
class Subject {
subjectId: int
name: string
}
class Class {
classId: string
subjectId: int
name: string
getSubject(): Subject
getTests(): Test[]
getTeachers(): Account[]
getTeacher(): Teacher
getStudents(): Student[]
getStudent(): Student
addTeacher(): void
removeTeacher(): void
addStudent(): void
removeStudent(): void
isAuthorised(User): boolean
calculateAverageMovement(): int
{static} createClass(): Class
}
class TestTemplate {
testTemplateId: string
accountId: string
name: string
maxMark: int
assignClass(): Test
getClasses(): Class[]
isAuthorised(User): boolean
{static} createTestTemplate(): TestTemplate
}
class Test {
testId: string
testTemplateId: string
classId: string
testDate: Date
getClass(): Class
getStudent(): TestResult
getStudents(): TestResult[]
getTestTemplate(): TestTemplate
calculateAverageScore(): int
calculateGradeBoundaries(): Object
}
class TestResult {
studentId: string
accountId: string
testId: string
setMark(): void
getMark(): int
getPercentage(): int
getGrade(): string
getStudent(): Student
getTest(): Test
}
@enduml