Skip to content

jonbiemond/BCIT-Flex

Repository files navigation

ci

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:

  1. Create a database using the cli command. Pass --help for more information.
flask --app bcitflex create-db
  1. Build schema using alembic:
flask --app bcitflex upgrade-db
  1. 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 Offerings
  • Rate My Professors
  • Web app
  • GUI
  • Return RMP rating
  • Indication of data freshness
  • Program information
  • User relevant course view
  • User course wishlist
  • User course schedule planner

Contributors