GetTheDamClass

Download from the Chrome Web Store!

Never worry again about having to constantly check whether your classes are vacant during registration!

Extension Github

Backend Github

Demo Video

Inspiration

Class registration can be one of the most stressful times during a term, especially if you register very late. We sought to foster student success in our community at OSU by making registration a less stressful process. Our Chrome extension ensures that students will instantly be notified (within a minute) when their classes either become vacant, or full. With this extension, we hope students can spend less time stressing over class registration, and more time having fun and studying.

What it does

GetTheDamClass is an easy-to-use Chrome extension that offers students a notification button for classes in the classes.oregonstate.edu course scheduler. Students can view which courses they are getting notifications for, and easily end notifications for a class. When course vacancy status changes, students will instantly get an email notifying them!

How we built it

The Chrome extension was built using React.js in TypeScript, with Node.js and Webpack used for bundling the Chrome extension.

We host a private VPS which utilizes Docker for secure containerized deployment of our Flask app to offer API endpoints that our extension uses to retrieve information and subscribe to notifications. We also utilize Bcrypt hashing and salting to ensure user pins are securely stored in our MySQL database, which also stores all users and the courses they are registered to get notifications for.

We send notification emails to students over the SMTP protocol, allowing for mass emails.

To retrieve course occupancy information, we reverse-engineered the class registration API using BeautifulSoup to scrape for the enrollment numbers. Given the class that students have signed up to be notified for, we run a cron job every one minute to obtain the enrollment numbers for those classes.

Challenges we ran into

One of the biggest challenges was maintaining the state of enrollment and keeping track of that information in a database. As well, while building Chrome extensions may on the surface look very simple, there are a lot of intricacies that slowed development down at times (besides just Typescript being Typescript).

Accomplishments that we're proud of

We are proud of building a full-stack application in 48 hours that is extremely impactful towards student success. Our backend and frontend is extremely robust, and maintaining communication between the Backend team and Frontend team was definitely challenging, but we are proud of our ability to work parallelly.

What we learned

We learned how to properly secure user information in a SQL database with hashing and salting. We also learned how to utilize React to build a Chrome extension, as in the past with our previous Focii project, we used all vanilla JS.

What's next for GetTheDamClass

  • Integrating RateMyProfessor reviews and scores
  • Adding some more usability features like deleting user accounts.

Built With

+ 4 more
Share this project:

Updates