HuskyFetch is a web app that allows you to easily audit UW courses. It scrapes the UW course catalog and caches the data in a database. You can then search the database for courses that meet your criteria, especially ones which start soon or have open seats.
Try it out at https://huskyfetch.leibmann.org!
Some important features:
- Small classes are ignored, as you're much more likely to be called out for auditing
- Most start times are correct, but there are still some issues with parsing
- Originally, many more events would be supported, such as club events and busy places near UW (from the google maps API)
This project is created with:
- Flask: 2.2.2
- Waitress: 1.4.4
- LXML: 4.9.3
- A LOT of XPaths
- AP Scheduler: 3.9.0
Self-hosting the site is easy
First, ensure you have poetry installed
sudo python3 -m pip install poetry
Now, clone the repo and install the dependencies \
git clone https://github.com/Pop101/HuskyFetch
cd HuskyFetch
poetry install
Finally, run the webserver
poetry run python3 webserver.py
Last step: pray UW doesn't IP ban you for scraping their site
If UW IT is reading this, thanks for not banning me yet!
Just connect to the webserver!
http://localhost:7575
Scraping occurs automatically every hour, an interval you can change at the top of webserver.py:
DATABASE_PATH = "database.pk"
UPDATE_INTERVAL = 3600