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
+ }