The user should be able to track completion of their depth requirement, similar to the original CS checklist:
https://cs.uwaterloo.ca/sites/default/files/uploads/documents/2025-2026-bcs.pdf
At the end of the checklist, there should be a section titled Depth Requirement, consistent with other sections such as CS Units and Non-Math Elective Units. This section should behave as follows:
- The section should include a toggle that allows the user to indicate whether they are satisfying their depth requirement via:
- a chain of three courses, or
- 1.5 units of courses within the same program, with at least one course at the 3XX level or higher.
- The user should be able to add or remove courses using Add Course and Remove buttons. When Add Course is clicked, a text input appears allowing the user to enter a course code.
- Upon pressing Enter, the course is sent to the backend and added to the UserCourse model. If no errors are returned, the course is then added to the UserDepthList model.
- At this stage, there is no automated validation of depth requirement correctness. This feature exists solely to allow users to manually add and remove courses from their depth list.
The implementer has flexibility in how these details are implemented, provided the behaviour remains consistent with the overall application design.
The necessary models and API endpoints already exist. If a backend error is encountered during implementation, please create a new issue and link it accordingly.
The user should be able to track completion of their depth requirement, similar to the original CS checklist:
https://cs.uwaterloo.ca/sites/default/files/uploads/documents/2025-2026-bcs.pdf
At the end of the checklist, there should be a section titled Depth Requirement, consistent with other sections such as CS Units and Non-Math Elective Units. This section should behave as follows:
The implementer has flexibility in how these details are implemented, provided the behaviour remains consistent with the overall application design.
The necessary models and API endpoints already exist. If a backend error is encountered during implementation, please create a new issue and link it accordingly.