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.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e5394c6e53e1e899a1df1beb252ee68aca582c729bcb1c07be8c70edb23fc94 |
|
MD5 | ae0cd98c5a1cf0e0283fafca95a3f926 |
|
BLAKE2b-256 | 669bfdba4ec783933979a082479d290406d24eef6a3edba894fef18b0e98cd58 |