Explanation of the Submissions Backend

Classes and Attributes

  1. AssignmentSubmission
    • Represents a submission of an assignment by a student.
    • Attributes:
      • content: The submission content (likely a string).
      • assignment: The associated assignment.
      • students: A list of students who submitted the assignment.
  2. Assignment
    • Represents an assignment given to students.
    • Attributes:
      • name: The assignment’s name.
      • dueDate: The deadline for submission.
      • points: The maximum points the assignment is worth.
  3. Person
    • A general class representing a person (probably a base class for Student).
    • Attributes:
      • grades: A list of grades associated with the person.
      • submissions: A list of assignments submitted by the person.
  4. SynergyGrade
    • Represents a grade assigned for a specific assignment.
    • Attributes:
      • grade: The numerical grade.
      • assignment: The assignment being graded.
      • student: The student receiving the grade.
  5. Student
    • Represents an individual student.
    • Attributes:
      • studentId: A unique identifier for the student.
      • name: The student’s name.

Relationships Between Classes

  1. AssignmentSubmission -> Assignment
    • A submission belongs to an assignment.
  2. AssignmentSubmission -> Person
    • A submission belongs to a person (i.e., the submitter).
  3. SynergyGrade -> AssignmentSubmission
    • A grade is assigned to a specific submission.
  4. Assignment -> Person
    • An assignment has assigned graders (presumably teachers).
  5. Assignment -> SynergyGrade
    • An assignment is graded, producing grades.
  6. Student -> Person
    • The Student class inherits from Person (i.e., a student is a type of person).
  7. SynergyGrade -> Assignment
    • A grade belongs to a specific assignment.
  8. SynergyGrade -> Person
    • A grade belongs to a specific student.

Summary

This feature allows:

  • Assignments to be created and assigned.
  • Students to submit assignments.
  • Grades to be linked to assignments and submissions.