Jan 2023

Cal Poly Class Search

Jalius Welch

Inspiration

The EE department at my school had a special policy of not allowing a waitlist for classes with labs. During registration time, I was spending a lot of time checking the course registration page for classes. Therefore, I decided to make an automated tool that would check the course registration page and send notifications to my phone if new openings appeared.

Public class search endpoint.

Program Design

While I was only really looking for EE classes for a quarter, I wanted the program to work for students in other departments and for future years. Therefore, I designed the program to be configurable between catalog years and departments, by a user configuration file. The program was also designed to run 24/7 on a dedicated server, so it was implemented as a CLI Python program.

Configuration tool for the class search program.

I decided to have the program run on Google Cloud Compute Engine servers, because they offered 24/7 use of a low-power server as part of the service’s free tier.

Google Cloud VM dashboard, used to run the class search tool 24hrs daily

Using a standard Linux distribution with systemd, I created a startup and monitoring service that would keep the class search tool running and handle auto-restarting.

Class search tool up and running on the VM.

Final Product

Class search tool phone notifications with Pushover.net

The final program was able to help me find classes for 3 quarters in a row. First I could configure the classes I wanted, then I would receive phone notifications whenever seats opened up. The program should continue to work as long as the course registration page is not significantly changed.


Menu