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:
- Have minimum one volunteer for each day.
- Fill chat shifts.
- Have a second volunteer even on phone days.
- 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
-
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.
-
Export corresponding data/data_XX.csv file into a spreadsheet, fill in your data, then export back into this file.
-
Execute the program from its directory:
python3 schedule.py
Output
- Prints results into the terminal and saves it into schedule_YYYY_MM____YYYYMMDD_hhmm.txt.
- Saves results into schedule_YYYY_MM____YYYYMMDD_hhmm.csv which can be conveniently imported into a spreadsheet.
Project details
None None None NoneRelease history Release notifications | RSS feed
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 helpline-scheduler-2019.4.8.post5.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 187136fbc1c2078fa54781cb38d6f96adac9ac48a9c4e1b9d2f285ee4ff4c0cc |
|
MD5 | b3410fdd891ab3979f2024a205833ce9 |
|
BLAKE2b-256 | 6816805e12e6020a06be74fc70c68b8574d6ca8bc58ab040087d2d5fc422bc6e |
Hashes for helpline_scheduler-2019.4.8.post5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06563a012d2134382b4eb8efa9f336ac11152d5dd9444c86993679214187d34b |
|
MD5 | feda3a0f613a4cf03454ce6c7c47167e |
|
BLAKE2b-256 | 72aadc52c0538ff7e067d87076c72ceefac05a71bbb0bd2dbf32d25facbf4c0d |