🐙 https://github.com/edsperanto/Class_Registrator
🌐 https://host.edwardgao.com/Class_Registrator
Note that this web app was designed to be used on a desktop client
This project was created for HackSU 2017. The theme of the hackathon was improving the quality of campus living. The original goal of Class Registrator was to automate the tedious part of class registration with a more user-friendly interface that lets people focus on selecting classes. However, since I needed to use real data, I spent most of the time scraping the course details to save them in a JSON file, and figuring out how to simulate logging in to SUOnline in the backend so that the app could scrap for a student's actual name, Student ID, and registration time.
Note that in the hosted demo link at the top, login was disabled so people not from Seattle University can check out the app. Just click "submit" in the login page.
CasperJS
At the time of the Hackathon, the login page actually sent user credentials to SUOnline to verify the validity of the user credentials, so that it could scrap SUOnline for the student's name, student ID, and registration time.
After logging in successfully, the app would show a summary of the logged-in user's information.
In the course selection page, the user could quickly scroll through the full list of available courses for the quarter on the left, and even perform partial searches of the course number or title. This search is done in one search box that updates as the user types, which is a much better user experience than the course searching functionality on SUOnline, which required multiple drop downs and text inputs, etc.
The student could click on courses they might take by clicking on the tile for the course on the left pane, and the course detail would pop up on the right pane, forming a candidate list.
Finally, the time of each course is visualized in a weekly calendary view so that a student can check for overlaps and adjust their selections accordingly. Unfortunately, I did not have time to finish this part, so it is broken.