A course scheduler for the software engineering program at UVic. Built for the SENG 499 Summer 2022 project.
Project description
SENG 499 - Company 2 - Algorithm 1
This repository contains a package (coursescheduler) that schedules the courses required for a software engineering degree at University of Victoria. The problem is implemented as a constraint satisfaction problem and an optimized backtracking search algorithm is used to find a valid schedule. This package was created for the Capstone SENG499 class: Company 2 Course Scheduler Project. Authored by the Company2-Algorithm1 sub-team.
Install from PyPi Using PIP
Install this package into your environment from PyPi using pip
.
$ pip install coursescheduler
The most recent available version of the package is uploaded to the PyPi index automatically as part of our CI/CD pipeline. To ensure that you are working with the most recent release, upgrade this module before integrating.
$ python3 -m pip install --upgrade coursescheduler
Install from Local Archives
Clone this repo into your repository. Inside the algorithm 1 module directory,
build and install the package as shown below. Note: you must replace 0.0.1
with the correct version.
$ python3 -m build
$ pip3 install coursescheduler-0.0.1.tar.gz
Usage
Once installed, the algorithm can be imported and called with generate_schedule
, as shown below. generate_schedule
expects two parameters and returns a single output, all of which are Python dictionaries.
The API specification
can be found here.
from coursescheduler import generate_schedule
schedule = generate_schedule(professors, schedule)
Dev
To make and test changes to the project, navigate into the root level directory
/path/to/algorithm1/
. After editing the project files, in order for the changes to take
effect you must reinstall the local package by the following cmd:
$ pip3 install .
To run the tests
$ cd tests
$ python -m pytest
Python Linter
To install Pylint on your device:
$ pip3 install black
To run the Black Python Linter:
$ black {python_script}.py
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
Built Distribution
Hashes for coursescheduler-0.0.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50d8142c4183e3794341cf986367829429829834f09231afe4d43265299b1fcb |
|
MD5 | 3d221fe2c6f04d408cc1c0471a3b7089 |
|
BLAKE2b-256 | ca8c1935bbbe4fa85405484afa070c66dcf8a0838c6b5fda2a291907b2d24c0d |