Skip to main content

Workshift scheduler for a helpline

Project description

Workshift scheduler for a helpline

Code written in Python finds the best possible schedule for volunteers while incorporating constrains and special requirements using CP-SAT Solver (Constraint Programming - boolean SATisfiability problem Solver).

Java version is in development.

The problem

Arranging volunteers for a helpline service for the period of one month.

There are three types of work that could be done on the same day:

  • Phone shift: Every day.
  • Chat shift: Mondays and Wednesdays.
  • Observer shift: Any day.

Constraints:

Properties of each volunteer:

  • Available days.
  • Function: doing phone, chat, both or observation for training purposes.
  • Maximum amount of weekend shifts.
  • Whether their shifts have to be on separate weeks.
  • Whether they welcome observers.
  • Whether they want to work alone.
  • Whether they cannot yet work alone.
  • List of people they do not want to work with.

Each volunteer has to have 4 days between their shifts.

Priorities:

  1. Have minimum one volunteer for each day.
  2. Fill chat shifts.
  3. Have a second volunteer even on phone days.
  4. Employ observers on days when there is only phone shift.

Objective:

Maximize filled shifts.


Installation

Requires 64-bit Python 3.7

pip3 install helpline-scheduler

Usage

  1. Select your language in config.py: EN/HU/CN
  2. Export corresponding data/data_XX.csv file into a spreadsheet, fill in your data, then export back into this file.
  3. Execute the program from its directory:

python3 schedule.py

Output

  1. Prints results into the terminal and saves it into schedule_YYYY_MM____YYYYMMDD_hhmm.txt.
  2. Saves results into schedule_YYYY_MM____YYYYMMDD_hhmm.csv which can be conveniently imported into a spreadsheet.

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

helpline-scheduler-2019.4.7.post13.tar.gz (11.8 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file helpline-scheduler-2019.4.7.post13.tar.gz.

File metadata

  • Download URL: helpline-scheduler-2019.4.7.post13.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2

File hashes

Hashes for helpline-scheduler-2019.4.7.post13.tar.gz
Algorithm Hash digest
SHA256 ad0ba7ba34b8e6ec1a3b2eb9a656e138c6c71535d1a0ff03f6034d6c6fec98a7
MD5 7b2120f921495c039ca5f3d4b8e9556e
BLAKE2b-256 5f5105474808513b4f03fb5efd5ccf7e6fa09b80ceaa8c17e7c8f548f6dbfc5d

See more details on using hashes here.

File details

Details for the file helpline_scheduler-2019.4.7.post13-py3-none-any.whl.

File metadata

  • Download URL: helpline_scheduler-2019.4.7.post13-py3-none-any.whl
  • Upload date:
  • Size: 24.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2

File hashes

Hashes for helpline_scheduler-2019.4.7.post13-py3-none-any.whl
Algorithm Hash digest
SHA256 6fc695224b176f066d3ea07feb5f31366940f961a48816adbbd7dcf6a7608feb
MD5 ebb36fab0b5f66e1eb5f4e8b0b5a5315
BLAKE2b-256 940a3b93ad710e4ccdf63778b862140533daa9ed3a6b775396659eda5a1bfa7b

See more details on using hashes here.

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