Data model

From WeBWorK_wiki
Jump to navigation Jump to search
User
  • User #atom
    • username
    • tags
    • contact/personal info
    • authentication information
    • role
    • addCourse() #behavior
    • joinTeam(course,teamID) #behavior
    • getTeams() #behavior
Team
  • Team #atom --- "group of users that act as one"
    • student (list)
    • description
    • course
    • clone() #behavior
    • getMembers() #behavior
    • Team/User #relationship
    • Status --- "Active/inactive"
Course
  • Course #atom
    • descriptive information --- "some or all may actually be top level"
    • professor
    • term
    • start date
    • end date
    • conf
    • state --- "open/closed"
    • addUser() #behavior
    • Course/Participant #relationship
    • tags
    • overrides --- "start date, end date, state, etc."
    • status --- "active/inactive"
    • getSets() #behavior
    • addSet() #behavior
    • description
    • getType #behavior
    • Course/User #child-class
    • role --- "referenced by name?"
    • getGrade() #behavior
    • getTeams() #behavior
    • Course/Team #child-class
    • role
Set
  • Set #atom
    • Descriptive Info
      • name
      • etc.
    • tags
    • getProblemPoolList() #behavior --- "enumerated"
    • versioning information --- "this can be templated?"
      • strategy name
      • required strategy data
    • grading Information --- "this can be templated?"
      • strategy name
      • required strategy data
    • Course/Set #relationship
      • Due/Assignment/Answer Date Info
      • overrides for set data --- "any field from set can be over ridden"
      • IP Restriction Info
      • getAssignedParticipants() #behavior
      • tags
      • Course/Set/Participant #relationship
        • overrides for set course data --- "any field from course/set can be over ridden"
        • tags
        • state --- "working/done"
        • getSetGrade() #behavior
        • Course/Set/Participant/Problem Pool #relationship
          • current grade
          • getCurrentProblemInstance() #behavior
          • getNewProblemInstance() #behavior
          • incorrect attempts --- "int"
          • correct attempts --- "int"
          • number of instances --- "the number of times getNewProblemInstance has been called"
          • Course/Set/Participant/Problem Pool/Attempt #relationship
            • time
            • score
            • tags
            • problemInstance --- "all information required to faithfully recreate the problem"
Problem
  • Problem #atom
    • id
    • PG info --- to be expanded
Role
  • Role #atom --- "global immutable sysadmin role included"
    • Permissions
    • Name