From 8695069461c04b27c6b851dcd5c5b3a35a452012 Mon Sep 17 00:00:00 2001 From: Seiwy Date: Sat, 7 Sep 2024 12:29:39 +0200 Subject: [PATCH] Did fill most of the tables in the diagram I has't belike hath left out some imp'rtant details --- .idea/.gitignore | 5 + .idea/inspectionProfiles/Project_Default.xml | 6 + .idea/learningpulse.iml | 12 ++ .idea/modules.xml | 8 ++ .idea/vcs.xml | 6 + documentation/diagrams/erdClassroom.mmd | 127 ++++++++++++++++++- 6 files changed, 158 insertions(+), 6 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/learningpulse.iml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..b58b603 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,5 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..03d9549 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/learningpulse.iml b/.idea/learningpulse.iml new file mode 100644 index 0000000..24643cc --- /dev/null +++ b/.idea/learningpulse.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..a6093c9 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/documentation/diagrams/erdClassroom.mmd b/documentation/diagrams/erdClassroom.mmd index df29e4d..50c944d 100644 --- a/documentation/diagrams/erdClassroom.mmd +++ b/documentation/diagrams/erdClassroom.mmd @@ -9,30 +9,34 @@ erDiagram USER ||--|| ADMIN : is USER ||--|| TEACHER : is -%% TEACHER }o--o{ CLASSROOM : creates + TEACHER }o--o{ CLASSROOM : creates TEACHER ||--o{ QUIZ : creates %% TEACHER }o--o{ ASSIGMENT : makes ROLES }|--|| TEACHER : has QUIZ ||--|{ QUESTION : contains + QUESTION ||--|| "QUESTION-ANSWER": "gets chosen" %% STUDENT }o--o{ ASSIGMENT : gets - "TEACHER-STUDENT CHAT" ||--|| CLASSROOM : contains + "TEACHER-STUDENT MESSAGES" ||--|| CLASSROOM : contains MATERIAL }o--|| ASSIGMENT : contains DRIVE ||--|{ MATERIAL : accesses %% STUDENT }o--o{ CLASSROOM : "part of" - "TEACHER-STUDENT CHAT" }o--|| TEACHER : "part of" + "TEACHER-STUDENT MESSAGES" }o--|| TEACHER : "part of" CLASSROOM ||--o{ ASSIGMENT : contains ASSIGMENT ||--o| CHAT : has STUDENT ||--|{ CHAT : "part of" - STUDENT ||--o{ "TEACHER-STUDENT CHAT" : "part of" + STUDENT ||--o{ "TEACHER-STUDENT MESSAGES" : "part of" STUDENT ||--o{ ROLES : has + STUDENT ||--o{ "PRIVATE-MESSAGE": "part of" + TEACHER ||--o{ "PRIVATE-MESSAGE": "part of" + STUDENT ||--|| DRIVE : "uploads to" TEACHER ||--|| DRIVE : "uploads to" %% TEACHER }o--o{ MATERIAL : makes @@ -72,17 +76,128 @@ erDiagram string name string nickname string email + date dateOfBirth + datetime dateTimeOfJoin + enum active + %% active = just like on discord, so the teachers can spy on the students if they're doing their work in class or just scrolling through TikTok } TEACHER { - %% uuid userId FK + uuid userId PK, FK + uuid roleId FK + uuid createdClassroomId + } CLASSROOM { uuid classroomId PK uuid creatorId FK + datetime creationDateTime } ASSIGMENT { uuid assigmentId PK, FK - } \ No newline at end of file + uuid containingChatId + datetime creationDateTime + + + } + + %% basic chatting attributes, can add more in the future + CHAT { + uuid chatId PK + uuid senderId + date sentDate + text messageText + } + + ADMIN { + uuid userId PK, FK + uuid createdRoleId + %% the admin creates a role and gets the id back in order to determine which admin created the role. i guess + } + + STUDENT { + uuid userId PK, FK + uuid roleId FK + + + } + + "TEACHER-STUDENT MESSAGES" { + uuid teacherStudentMessageId PK + uuid senderId + datetime sentDateTime + text messageText + } + + ROLES { + uuid roleId PK + datetime creationDateTime + string roleName + %% idk about these + } + + + DRIVE { + uuid materialId FK + uuid uploaderId + + } + + %% idk how file upload works, so I'll just give it a text attribute. needs changing + MATERIAL { + uuid materialId PK, FK + uuid creatorId + datetime creationDateTime + text materialContent + } + + %% added this table because you wanna dm the teacher + "PRIVATE-MESSAGE" { + uuid privateMessageId PK + uuid senderId + datetime sentDateTime + text messageText + } + + QUIZ { + uuid quizId PK + datetime dateOfCreation + uuid containsQuestionsId + int quizLenght + int pointMaximum + int pointEarned + int gradeGiven + datetime dateTimeStarted + datetime dateTimeFinished + time timeSpent + } + + QUESTION { + uuid questionId PK + int questionNumber + int pointMaximum + int pointEarned + + text questionTitle + enum questionType + text questionTextInput + text questionRadioInput + text questionCheckboxInput + text questionPairInput + text questionOderInput + * questionFileInput + %% * = idk how this works + } + + "QUESTION-ANSWER" { + uuid questionId PK, FK + + %% text doesn't need answer + text questionRadioAnswer + text questionCheckboxAnswer + text questionPairAnswer + text questionOrderAnswer + %% file doesn't need answer + }