One of the most frustrating experiences of being a student at Boston College is the randomized selection times for the start of course registration. This means that a junior CS major could have a worse selection time than a sophomore CS major (personal experience) and have to delay taking core CS courses needed for higher-level course prerequisites and graduation. This can lead to schedules with large time gaps (taking early AM courses or night courses) or stacking four CS courses for two consecutive semesters in senior year (again, personal experience). However, this selection time process affects not only major courses but also courses everyone needs for graduation, such as Literature Core. Luckily, students do drop these courses, which helps those who were dealt an unlucky hand, but unfortunately, there is no way to know when a student drops a course.
This is why I developed EagleEyes, an application that sends emails when courses on a user's watchlist have an open seat available. This application was developed in 2023 using Django, Beautiful Soup, Cron, and Auth0. It was originally used by my CS friends and me to “snipe” into CS courses that we needed or wanted to take, such as Data Visualization. However, after my friend showed this to his friends, I added support for requested majors (NURS, MFIN, ECON, and ENGL), and they used this application to get into courses they wanted as well.
This is the default page when users are not logged in. Users can view, search, and filter courses in requested majors; however, users must be logged in to waitlist courses.
Users must be logged in to waitlist
This is the login page, and users need to either sign up or login via Gmail.
The search page is the default page when users are signed in. Similar to the view page, they can view, search, and filter courses in requested majors; however, they can now waitlist courses. Logged in users can also view courses they have watchlisted and change settings.
Sorted by department ECON
Every page on EagleEyes is responsive.
Search page responsiveness
The watchlist page is where users can search, filter, and remove watchlisted courses. When a watchlisted course becomes available, users will receive an email the minute it is open. Until the course is no longer watchlisted or the seat is taken, users will be notified via email every minute.
Removed ECON1101 from watchlist. And yes, that is the exact description and time written for CSCI1080
Watchlist filtered by course code: CSCI2243
Example email when a seat is available
The settings page allows users to change the seat threshold. For example, if you only want to join a course if your friend can join, you can set the seat threshold to two. When two or more seats are open, the user will get an email the minute the course is available and will be notified via email every minute until one or zero seats are left.
The default page for admins is the admin search page. Admins can now sort by the most watchlisted courses and can view the number and emails of users who have waitlisted a specific course. They also have the ability to download a snapshot (csv file) of the stats of courses that are/have been waitlisted.
Professor name is shown due to BC email login. In 2023, 1000 level courses were public info, hence this example
The final page is the admin report page. Admins can view statistics (most active user, most watched course, most watched department, and the number of watchlisted entries in the most watched department) and the logs of users’ actions based on the year of interest. They can also download a report of the activity insights and activity logs as a txt file based on the filtered year.