-
Notifications
You must be signed in to change notification settings - Fork 18
Schema
Jesse Hartloff edited this page Apr 18, 2022
·
5 revisions
All entities also have
- id (primary key)
- createdAt
- updatedAt
- deletedAt (If null, it's not deleted)
User
- externalId (eg. School id number)
- preferredName
Course
- name (eg. Computer Science 2)
- semester (eg. f2022)
- number (eg. CSE312)
- startDate
- endDate
UserCourse - Links a user to a course
- userId (foreign key of the user)
- courseId (foreign key of the course)
- level (student, ta, or instructor)
- dropped (Boolean)
Assignment
- courseId (foreign key of the course)
- name
- startDate (time when it should be available to students)
- dueDate (last time to submit without incurring late penalties)
- endDate (last time to submit even with a late penalty)
- gradingType
- categoryName (eg. HW, Quizzes)
- description
- maxFileSize (for submissions)
- maxSubmissions (if null, infinite submissions allowed)
- disableHandins (Boolean)
Submission
- courseId (foreign key of the course)
- assignmentId (foreign key of the assignment)
- userId (foreign key of the user owning the submission)
- content (The actual submission)
- type (filepath, json, or text)
- submitterIp
- submittedBy (foreign key of the user making the submission. Will match the userId for normal submissions. Will be different if instructor/ta is creating the submission or if a regrade request was made. Regrades create a new submission)
- orignalSubmissionId (null for normal submissions. Matches the original submission id for regrades. Number of non-nulls for a user is the number of submissions)
AssignmentProblem
- assignmentId (foreign key of the assignment)
- problemName
- maxScore
------ Everything above this line exists in the code. Everything below needs to be built ------