Import SASC workshops and events #71

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

Goal
The Student Academic Success Center runs workshops and events many students would join if they saw them. Adding them grows the academic side of campus life beyond classes. (A Notion task "scrape SASC events" exists.)

Current state

  • SASC is already an org: setup_sasc_org in api/scraper/scripts/export_peer_tutoring.py and export_supplemental_instruction.py creates "SASC" (type DEPARTMENT). Peer tutoring and SI are imported under it.
  • No monitor exists for SASC events. Their "Workshops & Events" page is https://www.cmu.edu/student-success/calendar.html. The HTML has no static feed or iframe in it, so the events are probably loaded by script.

Scope

  • Find the real source behind the page (Google Calendar, LibCal, TartanConnect, an iCal feed or a JSON endpoint). Prefer a feed over HTML scraping. Write down what you found in this issue.
  • If it is an iCal feed, consider just adding it as a calendar source (api/app/services/ical.py) instead of writing a scraper.
  • Otherwise add api/scraper/monitors/academic/sasc_events.py and api/scraper/scripts/export_sasc_events.py, following export_soc.py (dry run, upsert, regenerate occurrences).
  • Move setup_sasc_org into a shared helper so all SASC exports use one org.
  • Category "SASC Workshops", event_type ACADEMIC, source_url set to the registration page.
  • Skip events already imported from TartanConnect (check after the TartanConnect import lands).
  • Add a fixture test.

Done when

  • SASC events for the rest of Fall 2026 show in Explore under the SASC org, and a rerun creates no duplicates.
**Goal** The Student Academic Success Center runs workshops and events many students would join if they saw them. Adding them grows the academic side of campus life beyond classes. (A Notion task "scrape SASC events" exists.) **Current state** - SASC is already an org: `setup_sasc_org` in `api/scraper/scripts/export_peer_tutoring.py` and `export_supplemental_instruction.py` creates "SASC" (type DEPARTMENT). Peer tutoring and SI are imported under it. - No monitor exists for SASC events. Their "Workshops & Events" page is https://www.cmu.edu/student-success/calendar.html. The HTML has no static feed or iframe in it, so the events are probably loaded by script. **Scope** - [ ] Find the real source behind the page (Google Calendar, LibCal, TartanConnect, an iCal feed or a JSON endpoint). Prefer a feed over HTML scraping. Write down what you found in this issue. - [ ] If it is an iCal feed, consider just adding it as a calendar source (`api/app/services/ical.py`) instead of writing a scraper. - [ ] Otherwise add `api/scraper/monitors/academic/sasc_events.py` and `api/scraper/scripts/export_sasc_events.py`, following `export_soc.py` (dry run, upsert, regenerate occurrences). - [ ] Move `setup_sasc_org` into a shared helper so all SASC exports use one org. - [ ] Category "SASC Workshops", `event_type` ACADEMIC, `source_url` set to the registration page. - [ ] Skip events already imported from TartanConnect (check after the TartanConnect import lands). - [ ] Add a fixture test. **Done when** - [ ] SASC events for the rest of Fall 2026 show in Explore under the SASC org, and a rerun creates no duplicates.
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#71
No description provided.