diff --git a/docs/adding-a-term.md b/docs/adding-a-term.md new file mode 100644 index 00000000..f590b4cd --- /dev/null +++ b/docs/adding-a-term.md @@ -0,0 +1,16 @@ +# Adding a term + +1. Scrape the enrollment appointments +2. Scrape the subject areas, courses, and sections + +## Scrape the enrollment appointments + +Every quarter, the UCLA registrar publishes the enrollment appointments for the next quarter. We download this page/file manually and scrape it in order to calculate when enrollment is. + +Check out the enrollment appointment [readme](/lib/scrapedata/enrollment_appointments/README.md) for more detail on how to download and scrape this file. + +## Scrape the subject areas, courses, and sections + +Go to the `lambdas/` directory and update the `currentTerm` payload to match the new term. Make sure that the `term` and `id` match the database! + +Once this update is made, run `make deploy` to deploy the lambdas on the new schedule. You may also want to run `fetch-subject-areas` and `fetch-courses` manually so that `fetch-sections` has all the data it needs on a run. diff --git a/lambdas/default-event.json b/lambdas/default-event.json index 2f015a9c..18b12861 100644 --- a/lambdas/default-event.json +++ b/lambdas/default-event.json @@ -1,7 +1,7 @@ { "term": { - "term": "23F", - "id": 75 + "term": "24W", + "id": 76 }, "shouldInsertEnrollmentData": true } diff --git a/lambdas/serverless.yml b/lambdas/serverless.yml index 758104de..e2150e9d 100644 --- a/lambdas/serverless.yml +++ b/lambdas/serverless.yml @@ -43,8 +43,8 @@ custom: # Payloads currentTerm: term: - term: '23F' - id: 75 + term: '24W' + id: 76 shouldInsertEnrollmentData: true summerTerm: term: @@ -61,9 +61,9 @@ functions: - schedule: rate: cron(15 23 1 * ? *) input: ${self:custom.currentTerm} - - schedule: - rate: cron(15 23 1 * ? *) - input: ${self:custom.summerTerm} + # - schedule: + # rate: cron(15 23 1 * ? *) + # input: ${self:custom.summerTerm} FetchCourses: name: fetch-courses @@ -74,9 +74,9 @@ functions: rate: cron(45 23 * * ? *) input: ${self:custom.currentTerm} # Every day at 11:50pm UTC - - schedule: - rate: cron(50 23 * * ? *) - input: ${self:custom.summerTerm} + # - schedule: + # rate: cron(50 23 * * ? *) + # input: ${self:custom.summerTerm} FetchSections: name: fetch-sections @@ -88,9 +88,9 @@ functions: rate: cron(25 * * * ? *) input: ${self:custom.currentTerm} # Every hour at XX:35 - - schedule: - rate: cron(35 * * * ? *) - input: ${self:custom.summerTerm} + # - schedule: + # rate: cron(35 * * * ? *) + # input: ${self:custom.summerTerm} FetchCourseDescriptions: name: fetch-course-descriptions diff --git a/lib/scrapedata/enrollment_appointments/Fall 2023-Winter 2024.html b/lib/scrapedata/enrollment_appointments/Fall 2023-Winter 2024.html new file mode 100644 index 00000000..ab5da5c2 --- /dev/null +++ b/lib/scrapedata/enrollment_appointments/Fall 2023-Winter 2024.html @@ -0,0 +1,293 @@ + + + + + + +Enrollment Appointments | UCLA Registrar’s Office + + + + + + + + +
+
+ Skip to Main Content +
+ +
+ UCLA Registrar's Office +
+ + +
+
+ +
+
+
+
+ +
+
+ + +
+ + + + + +
+ +

Based on units completed and priority status, appointments are assigned randomly within pass time periods. Exact enrollment times are available through MyUCLA.

Students can use the MyUCLA Class Planner to formulate several alternative study list plans in case first-choice classes are not available. Students should not choose classes with the same final examination code, or select classes that have conflicting meeting times or multiple same-day final examinations. If conflicts are unavoidable, students should consult the instructor of each course at the first class meeting to see if it is possible to work out an arrangement.

All new undergraduate students must contact New Student Academic Programs to start the enrollment process.

The study list becomes official at 11:59 p.m. on Friday of the second week of classes. Students are responsible for all classes and grading basis, as listed on MyUCLA, and cannot receive credit for classes not listed.

Current-term degree candidates who have declared candidacy but will not graduate must re-declare candidacy for a future term to receive enrollment appointments for a future term.

Winter Quarter 2024

+ +
PRIORITY PASS (enroll in up to 10 units)
First Appointment Time Last Appointment Time
All priority group students November 6 7:00 a.m. November 7 11:00 p.m.

Priority pass ends November 8, 2023, at 11:59 p.m.

FIRST PASS (enroll in up to 10 units)
Student Status First Appointment Time Last Appointment Time
160 or more degree units and declared candidacy to graduate in next two terms November 9 7:00 a.m. November 9 6:30 p.m.
160 or more units November 9 7:00 p.m. November 9 7:30 p.m.
Readmitted students November 9 8:30 p.m. November 9 8:30 p.m.
135–159.9 units November 9 9:00 p.m. November 10 3:00 p.m.
90–134.9 units November 11 7:00 p.m. November 13 12:30 p.m.
45–89.9 units November 13 1:00 p.m. November 14 10:00 a.m.
0–44.9 units November 14 10:30 a.m. November 14 11:00 p.m.

First pass ends November 15, 2023, at 11:59 p.m.

SECOND PASS (enroll in up to study list maximum units)
Student Status First Appointment Time Last Appointment Time
160 or more degree units and declared candidacy to graduate in next two terms November 16 7:00 a.m. November 16 6:30 p.m.
160 or more units November 16 7:00 p.m. November 16 7:30 p.m.
Readmitted students November 16 8:30 p.m. November 16 8:30 p.m.
135–159.9 units November 16 9:00 p.m. November 17 3:00 p.m.
90–134.9 units November 18 7:00 p.m. November 20 12:30 p.m.
45–89.9 units November 20 1:00 p.m. November 21 10:00 a.m.
0–44.9 units November 21 10:30 a.m. November 21 11:00 p.m.

Second pass ends January 19, 2024, at 11:59 p.m.

GRADUATE PASS
First Appointment Time Last Appointment Time
All graduate students November 9 7:00 a.m. November 13 11:00 p.m.

Graduate pass ends January 19, 2024, at 11:59 p.m.

+ +
+ +

Fall Quarter 2023

For all passes, appointments are not available Friday 4:00 p.m. through Saturday 6:00 p.m. Sunday appointments begin at 1:00 p.m.

+ +
PRIORITY PASS (enroll in up to 10 units)
First Appointment Time Last Appointment Time
All priority group students June 20 7:00 a.m. June 20 11:00 p.m.

Priority pass ends June 21, 2023, at 11:59 p.m.

FIRST PASS (enroll in up to 10 units)
Student Status First Appointment Time Last Appointment Time
160 or more degree units and declared candidacy to graduate in next two terms June 22 7:00 a.m. June 22 2:00 p.m.
160 or more units June 22 2:30 p.m. June 22 2:30 p.m.
Readmitted students June 22 3:00 p.m. June 22 3:00 p.m.
135–159.9 units June 22 3:30 p.m. June 24 8:00 p.m.
90–134.9 units June 24 8:30 p.m. June 26 4:00 p.m.
45–89.9 units June 26 4:30 p.m. June 27 6:30 p.m.
0–44.9 units June 27 7:00 p.m. June 27 11:00 p.m.

First pass ends June 28, 2023, at 11:59 p.m.

SECOND PASS (enroll in up to study list maximum units)
Student Status First Appointment Time Last Appointment Time
160 or more degree units and declared candidacy to graduate in next two terms June 29 7:00 a.m. June 29 2:00 p.m.
160 or more units June 29 2:30 p.m. June 29 2:30 p.m.
Readmitted students June 29 3:00 p.m. June 29 3:00 p.m.
135–159.9 units June 29 3:30 p.m. July 1 8:00 p.m.
90–134.9 units July 1 8:30 p.m. July 3 4:00 p.m.
45–89.9 units July 3 4:30 p.m. July 4 6:30 p.m.
0–44.9 units July 4 7:00 p.m. July 4 11:00 p.m.

Second pass ends October 13, 2023, at 11:59 p.m.

GRADUATE PASS
First Appointment Time Last Appointment Time
All graduate students June 22 7:00 a.m. June 26 11:00 p.m.

Graduate pass ends October 13, 2023, at 11:59 p.m.

+ +
+ + + +
+ + + + +
+
+ + +
+ +
+ + +
+
+ + + + + diff --git a/lib/scrapedata/enrollment_appointments/Fall 2023.html b/lib/scrapedata/enrollment_appointments/Fall 2023.html deleted file mode 100644 index 0d38594f..00000000 --- a/lib/scrapedata/enrollment_appointments/Fall 2023.html +++ /dev/null @@ -1,284 +0,0 @@ - - - - - - -Enrollment Appointments | UCLA Registrar’s Office - - - - - - - - -
-
- Skip to Main Content -
-
-
-

For information about COVID-19 policies and restrictions on campus, please visit the UCLA COVID-19 resources website.

-
-
- -
- UCLA Registrar's Office -
- - -
-
- -
-
-
-
- -
-
- - -
- - - - - -
- -

Based on units completed and priority status, appointments are assigned randomly within pass time periods. Exact enrollment times are available through MyUCLA.

Students can use the MyUCLA Class Planner to formulate several alternative study list plans in case first-choice classes are not available. Students should not choose classes with the same final examination code, or select classes that have conflicting meeting times or multiple same-day final examinations. If conflicts are unavoidable, students should consult the instructor of each course at the first class meeting to see if it is possible to work out an arrangement.

All new undergraduate students must contact New Student Academic Programs to start the enrollment process.

The study list becomes official at 11:59 p.m. on Friday of the second week of classes. Students are responsible for all classes and grading basis, as listed on MyUCLA, and cannot receive credit for classes not listed.

Current-term degree candidates who have declared candidacy but will not graduate must re-declare candidacy for a future term to receive enrollment appointments for a future term.

Fall Quarter 2023

For all passes, appointments are not available Friday 4:00 p.m. through Saturday 6:00 p.m. Sunday appointments begin at 1:00 p.m.

- -
PRIORITY PASS (enroll in up to 10 units)
First Appointment Time Last Appointment Time
All priority group students June 20 7:00 a.m. June 20 11:00 p.m.

Priority pass ends June 21, 2023, at 11:59 p.m.

FIRST PASS (enroll in up to 10 units)
Student Status First Appointment Time Last Appointment Time
160 or more degree units and declared candidacy to graduate in next two terms June 22 7:00 a.m. June 22 2:00 p.m.
160 or more units June 22 2:30 p.m. June 22 2:30 p.m.
Readmitted students June 22 3:00 p.m. June 22 3:00 p.m.
135–159.9 units June 22 3:30 p.m. June 24 8:00 p.m.
90–134.9 units June 24 8:30 p.m. June 26 4:00 p.m.
45–89.9 units June 26 4:30 p.m. June 27 6:30 p.m.
0–44.9 units June 27 7:00 p.m. June 27 11:00 p.m.

First pass ends June 28, 2023, at 11:59 p.m.

SECOND PASS (enroll in up to study list maximum units)
Student Status First Appointment Time Last Appointment Time
160 or more degree units and declared candidacy to graduate in next two terms June 29 7:00 a.m. June 29 2:00 p.m.
160 or more units June 29 2:30 p.m. June 29 2:30 p.m.
Readmitted students June 29 3:00 p.m. June 29 3:00 p.m.
135–159.9 units June 29 3:30 p.m. July 1 8:00 p.m.
90–134.9 units July 1 8:30 p.m. July 3 4:00 p.m.
45–89.9 units July 3 4:30 p.m. July 4 6:30 p.m.
0–44.9 units July 4 7:00 p.m. July 4 11:00 p.m.

Second pass ends October 13, 2023, at 11:59 p.m.

GRADUATE PASS
First Appointment Time Last Appointment Time
All graduate students June 22 7:00 a.m. June 26 11:00 p.m.

Graduate pass ends October 13, 2023, at 11:59 p.m.

- -
- - - -
- - - - -
-
- - -
- -
- - -
-
- - - - - diff --git a/lib/tasks/scrape.rake b/lib/tasks/scrape.rake index 57e198de..ea216f6a 100644 --- a/lib/tasks/scrape.rake +++ b/lib/tasks/scrape.rake @@ -20,7 +20,7 @@ enrollment_appointments_map = T.let( "2020" => "lib/scrapedata/enrollment_appointments/Fall 2020-Spring 2021.html", "2021" => "lib/scrapedata/enrollment_appointments/Fall 2021-Spring 2022.html", "2022" => "lib/scrapedata/enrollment_appointments/Fall 2022-Spring 2023.html", - "2023" => "lib/scrapedata/enrollment_appointments/Fall 2023.html", + "2023" => "lib/scrapedata/enrollment_appointments/Fall 2023-Winter 2024.html", }, T::Hash[String, String], )