Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(programs): undergrad program requirements #103

Open
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

laggycomputer
Copy link
Member

@laggycomputer laggycomputer commented Jan 29, 2025

Description

We scrape and serve undergraduate requirements, i.e. UC and GE requirements, which are required to earn any undergraduate degree but are not considered part of any major.

  • The DegreeWorks scraper now acquires this data and saves it to the new school_requirement table.
  • A new requirement type, the marker requirement, is introduced. This represents any requirement which is to be marked manually by an advisor and is not completed by coursework. This PR conjectures that such requirements, when not complete, are labelled as "Incomplete". Based on my own view of DegreeWorks I only observe "Complete", so this other variant is a guess.
  • We now systematically replace the word "satisfied" with "required", when preceded by a space, from the name of any requirement. This is because the names of some requirements, such as American History and American Institutions, change when they are completed. If not addressed, this would make scraping results dependent on the actual progress of the account we scrape from. The word "satisfied" does not currently appear in any major, minor, or specialization requirement and *only* in newly scraped requirements.
  • This new marker type is a new member of the requirement type union on REST and GraphQL, comprising a breaking change.
  • The new REST endpoint /v2/rest/programs/ugradRequirements is created, taking an id which is "UC" | "GE". I argue it is reasonable to enumerate the options because a violation of this assumption would be a serious overhaul to the structure of DegreeWorks.
  • The GraphQL resource ugradRequirements is created with similar interface.

Related Issue

Completes #102.

Motivation and Context

pov: PP asks you for even more features

How Has This Been Tested?

  1. The scraper was rerun to acquire the new data (if you're short on time, only scrape the new data).
  2. Run the new REST and GraphQL.

Screenshots (if appropriate):

REST:
Screenshot_20250128_211602

GraphQL:
Screenshot_20250128_211541

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My code involves a change to the database schema.
  • My code requires a change to the documentation.

@ecxyzzy ecxyzzy linked an issue Jan 29, 2025 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Serve UC and GE requirements
1 participant