Skip to main content

Browse BCIT Flex course offerings.

Project description

ci

BCIT Flex

Webscrape BCIT available courses, quickly view course offerings and write the information to a text file

Please feel free to report any issues, bugs or suggestions. Pull requests are welcome.

The information is

  • Code
  • Name
  • Prerequisites
  • Credits
  • URL
  • Offerings
    • Instructor
    • Price
    • Duration
    • Meeting Times
    • Status
    • Rate My Professor URLs

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:

poetry run flask --app bcitflex load-db

To run the dev webserver:

poetry run flask --app bcitflex run

Supports

  • Displaying all course offerings for specific course
  • Saving all courses to a text file for a specific subject

TODO

  • Filter by prerequisites
  • Individual Course Offerings
  • Rate My Professors
  • Web app
  • GUI
  • Return RMP rating

Contributors

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bcitflex-3.2.0.tar.gz (25.3 kB view hashes)

Uploaded Source

Built Distribution

bcitflex-3.2.0-py3-none-any.whl (38.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page