Skip to main content

Requirements

Requirements represent a requirement that can be satisfied. This is probably the most important concept in the API and also has the most cognitive overhead. Requirement is an abstract type and has multiple classes that derive from it to represent the various types of requirements at UTD.

Requirement

⚠️ This is an abstract type.

Properties

NameTypeRequiredDescription
typeRequirementTypetrueThe type of requirement this object represents.

RequirementType

Requirement types are differentiated by the type attribute. The valid types are:

"course", "section", "exam", "major", "minor",
"gpa", "consent", "collection", "hours", "other"

CollectionRequirement

A CollectionRequirement represents the need to have some number of requirements from a list of Requirements to satisfy the requirement. This is used to represent groups of requirements, "and" relationships, "some" relationships, and "or" relationships. Collections can contain other collections.

As a more realistic example, consider the prerequisites for the course CS 3305. It requires CE 2305 or CS 2305 or TE 2305 with a grade of C or better and MATH 2414 or MATH 2419. This would be represented as a CollectionRequirement with required set to 2. The two options are two separate CollectionRequirements: one CollectionRequirement has a required property of 1 with the options of the CourseRequirements CE 2305, CS 2305, TE 2305 each with a minimum_grade of "C". The other CollectionRequirement has a required of 1 and the two options being the two CourseRequirements MATH 2414 and MATH 2419.

Properties

NameTypeRequiredRestrictionsDescription
typestringtrue"collection"none
namestringtruenoneA name for the collection to indicate what it holds. May be empty if not very applicable.
requiredintegertruenoneThe minimum number of requirements (from options) necessary to satisfy the collection requirement.
options[Requirement]truenoneA list of all the options for requirements that can contribute to satisfying the collection requirement.

Examples

An example collection requirement where completion of both CS 2305 and CS 2336 are required.

{
"type": "collection",
"name": "Example Collection Requirement",
"required": 2, // This represents a requirement that requires both CS 2305 and CS 2336 (i.e. an "and" relationship) to be satisfied.
// If the `required` property was set to 1, only 1 of CS 2305 and CS 2336 would be required (i.e. an "or" relationship).
"options": [
{
"type": "course",
"class_reference": "62414c4ee27d0c74c4094581", // CS 2305
"minimum_grade": ""
},
{
"type": "course",
"class_reference": "62414c52e27d0c74c409458d", // CS 2336
"minimum_grade": ""
}
]
}

This is the prerequisites collection requirement for the course CS 3305: It requires CE 2305 or CS 2305 or TE 2305 with a grade of C or better and MATH 2414 or MATH 2419.

{
"required": 1,
"type": "collection",
"options": [
{
"required": 2,
"type": "collection",
"options": [
{
"required": 1,
"type": "collection",
"options": [
{
"type": "course",
"class_reference": "6241328ce27d0c74c40942e3", // CE 2305
"minimum_grade": "C"
},
{
"type": "course",
"class_reference": "62414c4ee27d0c74c4094581", // CS 2305
"minimum_grade": "C"
},
{
"type": "course",
"class_reference": "624202cc9f98f082445205f1", // TE 2305
"minimum_grade": "C"
}
]
},
{
"required": 1,
"type": "collection",
"options": [
{
"type": "course",
"class_reference": "6241a7c7e0a87a87f38b1aea" // MATH 2414
},
{
"type": "course",
"class_reference": "6241a843e0a87a87f38b1b70" // MATH 2419
}
]
}
]
}
]
}

CourseRequirement

A CourseRequirement represents a specific Course that must be taken to satisfy the requirement. This will represent the majority of requirements.

Properties

NameTypeRequiredRestrictionsDescription
typestringtrue"course"none
class_referenceObjectIDtruenoneThe id of the respective Course
minimum_gradestringfalsenoneThe minimum grade required for the course to fulfill the requirement. An empty string indicates default behavior.

SectionRequirement

A SectionRequirement represents a specific Section that must be taken to satisfy the requirement.

Properties

NameTypeRequiredRestrictionsDescription
typestringtrue"section"none
section_referenceObjectIDtruenoneThe id of the respective Section

MajorRequirement

A MajorRequirementrepresents a major that a student must be enrolled in to satisfy the requirement.

Properties

NameTypeRequiredRestrictionsDescription
typestringtrue"major"none
majorstringtruenoneThe major abbreviation, as indicated on Coursebook

MinorRequirement

A MinorRequirement represents a minor that a student must be enrolled in to satisfy the requirement.

Properties

NameTypeRequiredRestrictionsDescription
typestringtrue"minor"none
minorstringtruenoneThe minor abbreviation, as indicated on Coursebook

ExamRequiremnet

An ExamRequirement represents a specific Exam credit that must be received to satisfy the requirement.

Properties

NameTypeRequiredRestrictionsDescription
typestringtrue"exam"none
exam_referenceObjectIDtruenoneA reference to the exam required
minimum_scoreintegertruenoneThe minimum score required on the exam to fulfill the requirement

GPARequirement

A GPARequirement represents the minimum GPA a student must have to satisfy the requirement.

Properties

NameTypeRequiredRestrictionsDescription
typestringtrue"gpa"none
minimumfloattrue0.0 - 4.0The minimum GPA required to fulfill the requirement
subsetstringtruenoneThe subset of courses that are in question when determining the GPA. If empty, this represents overall GPA.

HoursRequirement

An HoursRequirement represents the need to have taken some number of credit hours from a list of CourseRequirements to satisfy the requirement.

Properties

NameTypeRequiredRestrictionsDescription
typestringtrue"hours"none
requiredintegertruenoneThe minimum number of credit hours that a course meeting this requirement must fulfill
options[CourseRequirement]truenoneThe list of CourseRequirements to take hours from

LimitRequirement

A LimitRequirement represents a limit on the number of credit hours that a course may be repeated for.

Properties

NameTypeRequiredRestrictionsDescription
typestringtrue"limit"none
max_hoursintegertruenoneThe maximum number of credit hours that a course may be repeated for

ConsentRequirement

A ConsentRequirement represents the need for consent from a faculty member to satisfy the requirement.

Properties

NameTypeRequiredRestrictionsDescription
typestringtrue"consent"none
granterstringtruenoneThe type of faculty member who's consent is needed

CoreRequirement

A CoreRequirement represents the need to have taken a course fulfilling a specific core code for a minimum number of credit hours.

Properties

NameTypeRequiredRestrictionsDescription
typestringtrue"core"none
core_flagstringtruenoneThe Core Flag for this requirement, as indicated on the Course Catelog
hoursinttruenoneThe number of hours needed to satisfy this requirement

OtherRequirement

An OtherRequirement represents some miscellaneous need to satisfy the requirement.

Properties

NameTypeRequiredRestrictionsDescription
typestringtrue"other"none
descriptionstringtruenoneA description of what kind of custom criteria will be used to determine if the requirement is satisfied
conditionstringtruenoneThe condition to determine if the requirement is satisfied