
BCIT Flex
www.bcitflex.tech
A website for easily viewing BCIT course offerings.
Features a course filter to aid in course selection.
Please feel free to report any issues, bugs or suggestions. Pull requests are welcome.
Installation
pip install bcitflex
Prerequisites
- A PostgreSQL instance is required for the database.
- Dependency
psycopg2
requires libpq-dev
to be installed for Ubuntu/Debian systems.
sudo apt install libpq-dev python3-dev
For more details see the pycopg2 documentation and StackOverflow.
DB Setup
PostgreSQL is used as the DBMS.
To create and initialize the database:
- Create a database using the cli command. Pass
--help
for more information.
flask --app bcitflex create-db
- Build schema using alembic:
flask --app bcitflex upgrade-db
- Populate the subject table with the list of subjects to scrape courses for:
flask --app bcitflex load-subjects
By default, subjects COMP, MATH, COMM AND BLAW are loaded. To load all subjects pass the --all-subjects
flag.
Usage
To run the webscraper and populate the database with the latest course offerings:
flask --app bcitflex load-db
To run the dev webserver:
flask --app bcitflex run
Roadmap
- Filter by prerequisites
Individual Course OfferingsRate My ProfessorsWeb appGUI- Return RMP rating
- Indication of data freshness
- Program information
- User relevant course view
- User course wishlist
- User course schedule planner
Contributors