Inspiration

Last term, I had a lot of trouble getting into the classes I wanted simply because there wasn't enough space in the class, and whenever slots did open, I would rarely be quick enough to get that spot. So, instead of manually checking Dartmouth's academic timetable sporadically, this script helps me by notifying me whenever there is an open spot in a class that I want, then automatically registering me for the class.

What it does

Script created to monitor classes, send a text message when a slot in a class opens up, and registers you automatically. Uses PhantomJS from the Selenium library to automate web processes and monitors changes using a cronjob.

Challenges I ran into

Initially, I wanted to figure out how to simply query our school's course database, but the school doesn't let you directly submit queries. You have to do it through the academic timetable. So to get around this, I used a webdriver, more specifically PhantomJS from the Selenium Library to manually scrape the information off the academic timetable.

Accomplishments that I'm proud of

This has allowed me and several of my closest friends to get the schedules of their dreams.

What I learned

  • gained experience with webdrivers and scraping information off websites.
  • learned how to operate and facilitate communication between multiple systems e.g. server to hold registration requests, receiving user input via text message, and the actual scraping.

What's next for course-registration-utility

In the future, I'll try to make it more user friendly. A lot of the setup of redis is a huge pain. I will try to automate this and maybe turn this into an app instead of command line and text message.

Share this project:

Updates