Skip to main content

Volunteer workshift scheduler

Project description

Volunteer 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

pip install helpline-scheduler

Usage

  1. Select your language in config.py: EN/HU/CN

    Alternatively you can create your XX language extension by creating the corresponding data_XX.csv and language_XX.py files.

  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:

python 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

volunteer-scheduler-2019.5.9.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

volunteer_scheduler-2019.5.9-py3-none-any.whl (25.6 kB view details)

Uploaded Python 3

File details

Details for the file volunteer-scheduler-2019.5.9.tar.gz.

File metadata

  • Download URL: volunteer-scheduler-2019.5.9.tar.gz
  • Upload date:
  • Size: 13.0 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 volunteer-scheduler-2019.5.9.tar.gz
Algorithm Hash digest
SHA256 b579c0c654c90251f609fc04e90f4328ff205c462d4f1e9c986c2645a9f5e4ee
MD5 395cfa70f99fc27be8d33a8a5f0bb855
BLAKE2b-256 d380871b55105ed9ca4e71286628890f76b5b7a10e8c0e92efc5c801610f8321

See more details on using hashes here.

File details

Details for the file volunteer_scheduler-2019.5.9-py3-none-any.whl.

File metadata

  • Download URL: volunteer_scheduler-2019.5.9-py3-none-any.whl
  • Upload date:
  • Size: 25.6 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 volunteer_scheduler-2019.5.9-py3-none-any.whl
Algorithm Hash digest
SHA256 2621dd1337d9280b9dc6170b7768a0aa5191d165ae9cfb9e37df8ac3765adf8d
MD5 3df0624d263ab751143407b117533a4f
BLAKE2b-256 0ca5c90f69fe3d21fdd3507bec905cfcde2ce6b3f5b8aac1271b7f6ebd51ac03

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