Did fill most of the tables in the diagram
I has't belike hath left out some imp'rtant details
This commit is contained in:
parent
9ef5d3f184
commit
8695069461
5
.idea/.gitignore
vendored
Normal file
5
.idea/.gitignore
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
6
.idea/inspectionProfiles/Project_Default.xml
Normal file
6
.idea/inspectionProfiles/Project_Default.xml
Normal 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
12
.idea/learningpulse.iml
Normal 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
8
.idea/modules.xml
Normal 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
6
.idea/vcs.xml
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
|
@ -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
|
||||
}
|
||||
|
|
Reference in a new issue