Skip to main content

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

coursescheduler-0.1.0.tar.gz (30.5 kB view hashes)

Uploaded Source

Built Distribution

coursescheduler-0.1.0-py3-none-any.whl (33.1 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