Inspiration

Course enrolment at McMaster is a pain. There are plenty of unavailable courses to the vast majority of students as there are students with priority. This meant enrolment for these courses would open at random times and be first come first serve. MacEnroll is an application that helps you get into your desired courses with ease. Want courses that have reserved seats with an unknown time of general enrolment? Scheduled time enrolment? MacEnroll has it all!

What it does

Once a user has correctly signed up with MacEnroll and has added their desired class(es) on Mosaic, MacEnroll will automatically try to enroll into your course(s) every 2 minutes, almost guaranteeing you a spot in that course. Your course enrolment process can be scheduled if you know the time of your appointment. Throughout this process, MacEnroll will send you updates via SMS and emails when signed up and enrolled in a course.

How I built it

The most important part of this app (course enrolment script) was written in python using Selenium. The backend REST API was created with flask-restful, written in python, and used threading to create separate instances of my Selenium script. No database was used for this project as storing school passwords and usernames seem inappropriate and also did not serve a purpose. Twillio was used for sending SMS's, using this library I was able to send updates to users periodically throughout their enrolment process. Users were also able to list down their friends' phone numbers and receive a notification when the embargo had opened. The frontend was done entirely using React.

Challenges I ran into

Frontend is always a challenge to me, so I found myself consistently search silly things (such as how to center content within a div, yes I searched this like 5 times haha) which took up a lot of time. Trying to make everything look good without someone giving me designs also forced me to play with different ideas and color schemes. Another thing I struggled with was trying to understand threading, as I have never used it to this extent.

Accomplishments that I am proud of

I'm proud of the website I completed by myself. This is my first 'lone' hackathon, which forced me to take on all roles, creating designs, implementing these designs, and working on a backend to make everything functional. Overall I'm extremely happy with what I made and I can't wait to make it better!

What I learned

Don't underestimate the difficultly of Design/Frontend. There were points where I just prayed things would magically look prettier.

What's next for MacEnroll

Refine, refine, refine, and refine some more. Currently, while MacEnroll is functional, there are a lot of bugs and edge cases that need to be accounted for and fixed before implementing this online and allowing students to use it.

Share this project:

Updates