This page is currently just a list!
{ content to follow soon }
{ content to follow soon }
AeroBot (Auto-Enrollment Bot) is an automated webcrawler that enrolls you in your class instantly upon a seat opening up.
Problem Statement
MSU class scheduling is notoriously difficult. Most of the classes you want are quickly filled and even the waitlist can pile up. The conventional solution is to wait for an enrollment notification and meticulously log into the often bogged down servers, which can take minutes upon high workload just to successfully verify.
The Solution
AeroBot allows the user to enter classes that they wish to enroll in PRE-EMPTIVELY by course code. Even before class scheduling is available, Aerobot is able to navigate the pre-defined layout of the site almost instantly and be ready the second it does open.
Summary
The bot will monitor course enrollment and openings non-stop over a set interval and routinely check. Upon a seat opening up, the bot will automatically enroll the user (in less than 30 seconds most times), as opposed to the 10+ minutes it takes you to boot up your computer, navigate, log in, select a course, and repeatedly confirm.
The Web Crawler is extremely efficient, needing only the pages HTML to run. Whereas humans must process each page visually, the AeroBot needs only a simple text file, scans it in seconds, moves from page to page confirming along the way, saving several minutes in the process of searching.
Sample Email
Here is a sample email that the bot would periodically search for. As soon as it was received, the program would continue to phase 2: enrollment.
Sample Runs
(Note: These are more recent runs, when the original classes are not available, so the bot completes up until it searches for the specific class)
Demo: No Email Found
Demo: Successful Run
Results & Conclusion
The biggest issue that led to failed runs was timing. The code itself often ran faster than the servers could receive, process and return, so an artificial delay was crucial to the application running smoothly.
The most difficult aspect of development was preparing a versatile and flexible framework that could handle unexpected login verifications, server errors, and other bumps along the way.
The greatest strength was an iterative development cycle- I first built the application to login through google, passing checks along the way, then I made it able to log into MSU's servers and enroll at various states of the system (enrollment not available, class not available, class available) and the different checks it had to handle along the way.
Feature
As of January 8th, 2020, AeroBot is fully ready for server-side deployment for multiple users use.
The Bot can both enroll by notification, swap between classes, and pre-emptively wait for enrollment to open up
Configurable Parameters (Course Code, Date, Session/Semester) can be easily swapped out via a parameters file
A WebCrawler python library was made to be used by multiple web crawler bots, it allows easy navigating, checking elements, entering passwords/details, and submitting forms all will a SINGLE function call each.
Users can also configure the WebCrawler to automatically log in when prompted, without prior knowledge of the prompt appearing, with a simple function call. Current protocols include all MSU validation protocols (3 in total), googles various security checks. Many common sites between the two are predefined as enums.
Times to wait for pages to load and delay between inputs can be easily configured and randomized to hide the automation.
Source: https://github.com/fromanan/audiomaster
Sourehttps://github.com/fromanan/PyXL