Refactor schemas
Closed this issue · 0 comments
apo5698 commented
User
AGS Users. (TAs or instructors, NOT STUDENTS)
Has many Course
- first_name: string
- last_name: string
- email: string
- password_digest: string
- role: enum
Course
Course examples:
- CSC 116 (004) Fall 2020
- CSC 116 (006) Spring 2021
Belongs to User
Has many Assignment
- name: string
- section: string
- semester: enum
- year: integer
Assignment
Assignment examples:
- Day 1 Exercise
- Project 2
- Lab 4
Belongs to Course
Has one Rubric
Has many Participant
Has many Grade
- name: string
- category: enum
- description: text
- programs: array
Student (currently not used)
Belongs to Assignment
- full_name: string
- email_address: string
Participant (replace Submission)
Participant
is different than Student
because they are generated from the gradesheet of each assignment.
Belongs to Assignment
Has one Grade
Has many Attachment
- programming_total: decimal
- zybooks_total: decimal
Grade
Belongs to Participant
- identifier: integer
- full_name: string
- email_address: string
- status: enum
- grade: decimal
- maximum_grade: decimal
- grade_can_be_changed: boolean
- last_modified_submission: timestamp
- last_modified_grade: timestamp
- feedback_comments: text
Attachment (to be determined)
Might be duplicated with ActiveStorageBlob
Belongs to Participant
- filename: string
- type: string/enum
Rubric
A generic grading rubric.
Belongs to Assignment
Has many RubricItem
RubricItem
Rubric items examples:
- Write/Compile/Execute
- Teaching Staff Black Box Testing
- Teaching Staff Unit Testing
- Student Black Box Testing
- Student Unit Testing
- Style
Has many Criterion
Has many Program
- type: enum
- description: text
Criterion
Criterions determine whether a participant should be awarded or deducted points. Examples:
point | expected behavior | actual behavior | feedback |
---|---|---|---|
1 | file is named 'HelloWorld.java' | file is named 'Helloworld.java' | file is incorrectly named |
2 | program compiles | program compiles | |
1 | program runs | program fails to run | exception thrown at line... |
- point: decimal
- expect: enum/string
- actual: enum/string
- feedback: text