apo5698/helli-grading

Refactor schemas

Closed this issue · 0 comments

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