Did fill most of the tables in the diagram
Some checks failed
Build docker images, publish them, deploy to test server / build (push) Failing after 32s
Mirror dev branch to remote / build (push) Has been cancelled

I has't belike hath left out some imp'rtant details
This commit is contained in:
Seiwy 2024-09-07 12:29:39 +02:00
parent 9ef5d3f184
commit 8695069461
6 changed files with 158 additions and 6 deletions

5
.idea/.gitignore vendored Normal file
View file

@ -0,0 +1,5 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/

View file

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
</profile>
</component>

12
.idea/learningpulse.iml Normal file
View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/temp" />
<excludeFolder url="file://$MODULE_DIR$/tmp" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

8
.idea/modules.xml Normal file
View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/learningpulse.iml" filepath="$PROJECT_DIR$/.idea/learningpulse.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

View file

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