Refresh SI, peer tutoring and drop-in for Fall 2026 #72

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

Goal
SI sessions and peer tutoring are high-value recurring help sessions. They should be current for Fall 2026 and actually show on calendars.

Current state

  • Export scripts: api/scraper/scripts/export_supplemental_instruction.py and export_peer_tutoring.py (monitors in api/scraper/monitors/academic/).
  • drop_in.py and peer_tutoring.py scrape the same #dropintable on https://www.cmu.edu/student-success/programs/tutoring.html, so drop-in is the same data as peer tutoring. It does not need its own export.
  • Neither export calls regenerate_occurrences, so events and rules are written but no event_occurrences rows, and the calendar reads occurrences (api/app/api/schedule.py).
  • Semesters are labeled SI / PT instead of Fall_26, recurrences end at start + 180 days instead of the semester end, and CLEAR_CATEGORIES = True hard-deletes every event in each category before reinserting.
  • There is no --dry-run.

Scope

  • Run both against the dev profile and fix whatever is broken in the page parsing.
  • Call the shared regenerate_occurrences (from export_soc.py) after writing.
  • End recurrences at the semester end from scraper/helpers/semester.py and use real semester labels.
  • Replace the delete-everything step with an upsert plus pruning of sessions that are gone, so saved events are not wiped.
  • Add --dry-run.
  • Retire drop_in.py (or document why it stays).
  • Run on prod.

Done when

  • Fall 2026 SI and peer tutoring sessions appear on calendars and end with the semester.
  • A rerun changes nothing.
**Goal** SI sessions and peer tutoring are high-value recurring help sessions. They should be current for Fall 2026 and actually show on calendars. **Current state** - Export scripts: `api/scraper/scripts/export_supplemental_instruction.py` and `export_peer_tutoring.py` (monitors in `api/scraper/monitors/academic/`). - `drop_in.py` and `peer_tutoring.py` scrape the same `#dropintable` on https://www.cmu.edu/student-success/programs/tutoring.html, so drop-in is the same data as peer tutoring. It does not need its own export. - Neither export calls `regenerate_occurrences`, so events and rules are written but no `event_occurrences` rows, and the calendar reads occurrences (`api/app/api/schedule.py`). - Semesters are labeled `SI` / `PT` instead of `Fall_26`, recurrences end at start + 180 days instead of the semester end, and `CLEAR_CATEGORIES = True` hard-deletes every event in each category before reinserting. - There is no `--dry-run`. **Scope** - [ ] Run both against the dev profile and fix whatever is broken in the page parsing. - [ ] Call the shared `regenerate_occurrences` (from `export_soc.py`) after writing. - [ ] End recurrences at the semester end from `scraper/helpers/semester.py` and use real semester labels. - [ ] Replace the delete-everything step with an upsert plus pruning of sessions that are gone, so saved events are not wiped. - [ ] Add `--dry-run`. - [ ] Retire `drop_in.py` (or document why it stays). - [ ] Run on prod. **Done when** - [ ] Fall 2026 SI and peer tutoring sessions appear on calendars and end with the semester. - [ ] A rerun changes nothing.
jalenluorion added this to the Phase 2 milestone 2026-10-03 19:44:43 +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#72
No description provided.