Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/cornell-dti/course-plan/llms.txt

Use this file to discover all available pages before exploring further.

Every time you add, remove, or move a course, Courseplan recomputes which of your academic requirements are fulfilled. The requirements sidebar on the left side of the screen reflects the current state of your plan without requiring any manual refresh. This page explains the sidebar layout, how fulfillment status is determined, and the tools available for overriding the automatic assignment.

Requirements sidebar layout

The sidebar groups requirements into four categories, displayed top to bottom:
GroupWhat it covers
CollegeDistribution requirements and total academic credit minimums for your enrolled college (AG, AS, HE, IL, BU, etc.)
MajorCore courses, electives, and specialization requirements for each declared major
MinorRequirements for each declared minor
GradRequirements for graduate programs, treated at the same level as major/minor
Each group has a header showing the group name and a progress bar. Within a group, requirements are split into two sections:
  • Ongoing requirements — requirements where safeMinCountFulfilled < minCountRequired
  • Completed requirements — requirements fully satisfied by courses in your plan
Completed requirements are hidden behind a SHOW/HIDE toggle to keep the sidebar uncluttered while you are still working on your plan.

Fulfillment status

Courseplan uses two parallel fulfillment graphs — a safe graph and a dangerous graph — to distinguish courses that satisfy requirements without conflict from those that are involved in a constraint violation:
  • Safe fulfillment (safeMinCountFulfilled) counts only courses that are not double-counted across requirements that prohibit sharing.
  • Dangerous fulfillment (dangerousMinCountFulfilled) counts all courses, including those involved in conflicts.
When the Requirement Conflicts feature flag is enabled, the sidebar uses safe fulfillment counts. Progress bars reflect partial fulfillment as a fraction (safeMinCountFulfilled / minCountRequired), capped at 100%.

Self-check requirements

Some requirements cannot be verified programmatically (for example, “complete a senior thesis”). These are marked fulfilledBy: 'self-check' and display as manual checkboxes. They never count toward the automatic fulfilled total.

Toggleable requirements

Certain requirements offer mutually exclusive sub-tracks (for example, two different sets of distribution requirements). A dropdown appears inside the expanded requirement letting you switch between options. Your choice is stored in toggleableRequirementChoices and immediately recalculates fulfillment.

Opt-in and opt-out overrides

Courseplan’s automatic checker assigns each course to the requirement it best satisfies. You can override this assignment at any time. To opt a course out of a requirement: When you add a Cornell course, the requirement-assignment step shows which requirements the course automatically fulfills. If you leave the requirement selection blank, or explicitly select a different requirement, the system records an optOut list for that course’s FirestoreCourseOptInOptOutChoices. The course is then excluded from the opted-out requirement’s fulfillment count. To opt a course into a requirement arbitrarily: The arbitraryOptIn field on each course’s overridden choices allows you to attach a course to a requirement it would not normally satisfy — for example, assigning a CS course to a history distribution slot. This is recorded per requirement and per slot. Drag-and-drop from the requirements bar: When you drag a suggested course from a requirement’s course list directly into a semester column, Courseplan automatically computes the full opt-out list: it finds all other requirements the course could potentially satisfy and opts the course out of all of them except the one it was dragged from.
The opt-out list is computed at the time you add the course. If you later add more requirements or change your major, you may need to revisit assignments for courses that satisfy multiple requirements.

Requirement conflicts

When the Requirement Conflicts feature flag is enabled, Courseplan detects situations where a single course is being counted toward two requirements that prohibit double-counting. Affected course cards are highlighted with an amber border and a shadow (conflict CSS class). A conflict modal appears when you add a course that triggers a violation, giving you the option to resolve the conflict by opting the course out of one of the competing requirements, or to remove the course. The set of courses currently in constraint violations is tracked as courseToRequirementsInConstraintViolations — a map from course unique ID to the set of conflicting requirement ID pairs.

Common questions

The course may not match any checker rule for your declared major, college, or minor, or it may have been opted out of all requirements during the add flow. Open the course menu and check its requirement assignment. You can use the arbitrary opt-in feature to attach it to a requirement manually.
Some requirements have additional sub-requirements (additionalRequirements). A requirement is only moved to Completed when every nested sub-requirement is also satisfied. Expand the requirement in the sidebar to see which sub-requirement still needs courses.
It depends on the requirements. Some colleges and majors permit a course to count toward multiple requirements simultaneously. When the Requirement Conflicts feature is enabled, Courseplan flags courses that are used in ways the rules prohibit. If no conflict is flagged, the double-count is allowed by the requirements data.
The numbers show how many units (courses or credits, depending on the requirement type) you have fulfilled out of the minimum required. For credit-based requirements like Total Academic Credits, the bar fills as you accumulate eligible credits. PE courses and 1000-level courses do not count toward the 120-credit minimum for most colleges.
Each requirement can surface a list of courses that satisfy it. Clicking See all opens a paginated view (24 courses per page) inside the sidebar. You can drag any of those courses directly into a semester.
Exam credits are entered during onboarding. Courseplan converts them to CourseTaken entries using userDataToExamCourses and includes them in fulfillment calculations automatically. You can update your exam scores in your profile settings.

Build docs developers (and LLMs) love