Giter Club home page Giter Club logo

shift_scheduler's Introduction

# Shift Scheduler  

A static employee schedule generator. Given employee schedules and desired coverage, find a desireable schedule that maximizes coverage and minimizes bad schedule decisions. Support is limited to needs of specific organization, but suggestions and pull requests for improvement are welcome!  

### Motivation  

Scheduling part-time workers effectively is a time-consuming and head-ache inducing task in some work environments.

### Goal  

Provide satisfactory employee schedule such that all shifts are filled.  
Even better if each employee gets nearly their desired # number of hours.  

## Process

*Input* is a series of JSON objects describing employee availabilities  

Covert given schedules into indexed objects representing timeslots that one is available to fulfill an equivalent shift-to-cover time slot.  
Leverage graph theory solution to Job Matching, i.e. maximum cardinality, imperfect 1:1 matching of a bipartite graph, to make scheduling choices.  
Interpret matcher's choices into a human-readable table (perhaps in CSV format)  

*Output* is CSV file named by default "new_schedule.csv"  

## Specific Usage  

python3 matcher.py [OPTIONS] -f /full/path/to/employee_availability.json

### Options

*Unsupported*
TODO: Add command interpreter library for easy argument parsing
TODO: Consider separating enough to easily attach web API or similar
TODO: Connect to calendar service and invite employees to their shifts

shift_scheduler's People

Contributors

gpkyte avatar

Stargazers

Brian avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.