-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Overview
Scrape additional academic calendar data to enrich the schedule experience.
Data Sources
Term Dates
URL: https://registrar.wwu.edu/term-dates
Dates are consistent by month, varying only a few days year-to-year:
- Fall: ~Sept 23-25 to ~Dec 11-13
- Winter: ~Jan 5-7 to ~Mar 19-21
- Spring: ~Mar 30 - Apr 1 to ~Jun 11-13
- Summer: ~Jun 22-24 to ~Aug 20-22
Option: Hardcode month ranges instead of scraping (simpler, stable enough).
Finals Schedule
URL: https://registrar.wwu.edu/calendars/finals
Contains final exam day/time based on course meeting patterns. Would allow showing students when their finals are.
Registration Dates & Holidays
URL (Drupal AJAX, messy):
https://registrar.wwu.edu/views/ajax?_wrapper_format=drupal_ajax&field_quarter_target_id=275&view_name=important_dates_and_deadlines&view_display_id=block_3&view_args=&view_path=%2Fnode%2F1172&view_base_path=tuition-fees-calendar&view_dom_id=9795569803a26bb30cbb902b86d995761889c88aac03a959857a9b6f3d41a819&pager_element=0&_drupal_ajax=1&ajax_page_state%5Btheme%5D=ashlar&ajax_page_state%5Btheme_token%5D=&ajax_page_state%5Blibraries%5D=...
Response format: [{"command": "insert", "data": "content_to_parse_as_a_string", ...}, ...]
The data field contains HTML with registration info and holidays.
Registration Schedule
URL: https://registrar.wwu.edu/calendars/registration
Registration follows consistent 8-day phases. Phase 2 is open for everyone. Could infer windows based on credit count.
Features This Enables
With all data sources:
- Final exam day/time per course
- Course start/end dates per term
- Holidays (no class days)
- Registration windows (based on credits/status)
- .ics calendar export with all of the above
Stretch Ideas
- Email notifications when registration opens (requires significant infra)
- Ask user for credits/masters/post-bac status for personalized .ics
Implementation Notes
- Consider hardcoding term months for MVP rather than scraping term dates
- Finals schedule is straightforward to scrape
- Drupal AJAX endpoint is messy but parseable
- Registration windows could prompt user for credit count