SpotCheck is a web app that allows Wesleyan students to receive text/email alerts when a seat opens in a class they want during schedule adjustment. The app is built on Python Flask, hosted on Google App Engine, using Google Datastore for storage, BeautifulSoup for webscraping, and Twilio for texts.
Every year during schedule selection, Wesleyan has a process called "adjustment," which is a week where students can drop and add classes in real time, the only time you can just get into a class if there is space. However, nobody ever really added any classes during adjustment because the only way to see if there were spots open in a class was to constantly refresh all the pages for all the courses you wanted to get into, which is a major pain in the butt. I was so frustrated with the lack of usability in this system that I decided to build SpotCheck, a free website that will alert you when a seat opens in a class you want during adjustment!
SpotCheck was first born in July of 2020. At that point, I was interning remotely for a company called HC1, doing 40 hours of software engineering a week. For some reason, I decided that the perfect thing to do to cap my 40-hour workweek was to spend another 48 hours working, as I took part if MLH's HackItShipIt hackathon. This was the first solo hackathon I had ever done, and I had literally zero knowledge of web development at that point, but boy was I determined to learn! I spent the weekend teaching myself Flask, HTML/CSS, Google App Engine, and Google Datastore, and managed to get a fully working version of SpotCheck up over the course of a single weekend!
SpotCheck works by scraping the publicly available Wesleyan course listings page and storing the number of available seats for each class in Google Datastore. Whenever there are suddenly seats in a class that previously was full, SpotCheck sends out an email or text to all users subscribed to that class. The program maintains a hashmap of courses that have already been scraped to avoid scraping a course that is listed in multiple departments, and it automatically updates to only scrape courses for the appropriate semester. It also has its own Python Selenium bot testing script that can be used to stress-test the website as needed.
I continued to play with SpotCheck over the next few months, so that when the next adjustment period rolled around I was prepared. I launched SpotCheck to the Wesleyan community to a hugely positive response, with hundreds of students using the platform. Since it's creation, SpotCheck has sent out over 3,000 texts and emails to over 800 users! As this was the first website I ever built, I was incredibly proud of SpotCheck, and I'm glad that I can help the Wesleyan community by getting people into the classes they want!