Load Spring 2027 courses when CMU publishes the schedule #73

Open
opened 2026-10-03 19:44:44 +00:00 by jalenluorion · 0 comments
Member

Goal
Students plan their next semester during registration in November. If Spring 2027 is on CMUCal by then, that is our best moment to win new users.

Current state

  • export_soc.py takes --semester Spring_27. It must be passed explicitly, because infer_semester_label returns Fall_26 until January.
  • check_soc_page_matches in api/scraper/helpers/semester.py refuses a page whose "Semester:" header names another term. Before CMU publishes, the run fails safely.
  • Spring dates in SEMESTER_CONFIG are month/day only ((1, 12) to (5, 5)) and reused every year; the comment says to check them against the HUB calendar each year.
  • /api/organizations/get_course_orgs returns every COURSE org with no semester filter, so the course picker will mix Fall and Spring once both are loaded. courses.semesters already records which terms a course runs.

Scope

  • Check https://www.cmu.edu/hub/calendar/ and update the Spring dates in semester.py for 2027.
  • Watch the SOC page and run a dry run as soon as the header says Spring 2027.
  • Load prod: python -m scraper.scripts.export_soc --semester Spring_27 (same secrets as the Fall load).
  • Make sure Fall 2026 data is untouched (upserts only).
  • Open a follow-up for a semester filter in the course picker if it is not already tracked.

Done when

  • Spring 2027 courses can be added to a schedule on prod before registration opens.
  • The run output is posted in a comment here.
**Goal** Students plan their next semester during registration in November. If Spring 2027 is on CMUCal by then, that is our best moment to win new users. **Current state** - `export_soc.py` takes `--semester Spring_27`. It must be passed explicitly, because `infer_semester_label` returns `Fall_26` until January. - `check_soc_page_matches` in `api/scraper/helpers/semester.py` refuses a page whose "Semester:" header names another term. Before CMU publishes, the run fails safely. - Spring dates in `SEMESTER_CONFIG` are month/day only (`(1, 12)` to `(5, 5)`) and reused every year; the comment says to check them against the HUB calendar each year. - `/api/organizations/get_course_orgs` returns every COURSE org with no semester filter, so the course picker will mix Fall and Spring once both are loaded. `courses.semesters` already records which terms a course runs. **Scope** - [ ] Check https://www.cmu.edu/hub/calendar/ and update the Spring dates in `semester.py` for 2027. - [ ] Watch the SOC page and run a dry run as soon as the header says Spring 2027. - [ ] Load prod: `python -m scraper.scripts.export_soc --semester Spring_27` (same secrets as the Fall load). - [ ] Make sure Fall 2026 data is untouched (upserts only). - [ ] Open a follow-up for a semester filter in the course picker if it is not already tracked. **Done when** - [ ] Spring 2027 courses can be added to a schedule on prod before registration opens. - [ ] The run output is posted in a comment here.
jalenluorion added this to the Phase 2 milestone 2026-10-03 19:44:44 +00:00
jalenluorion added this to the CMUCal project 2026-10-03 19:45:09 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
ScottyLabs/cal#73
No description provided.