GithubHelp home page GithubHelp logo

tutorexilius / shiftrostergenerator Goto Github PK

View Code? Open in Web Editor NEW
1.0 3.0 1.0 152 KB

Shift Roster Generator - generate your shift plan. C++ Live Stream Project from Tutor Exilius ( https://www.twitch.tv/tutorexilius )

Home Page: http://www.exilius.de

License: GNU General Public License v3.0

C++ 97.23% C 2.77%
shift-scheduling scheduler shift generator dienstplan dienstplangenerator csv schedule dienstplaner block-verteiler

shiftrostergenerator's Introduction

Shift Roster Generator v1.1.2


This application has its own Wiki-Page: https://github.com/TutorExilius/ShiftRosterGenerator/wiki

There you will find a documentation with screenshots.


This App generates a shift plan with a fair distribution algorithm, where every slot will be filled by a SINLGE candidate. App does not support a distribution per slot for more then one candidate! The result (output) will always contain for every data field one candidate only!

The goal is to gerenate a final shift plan, where every slot is assigned to only one of the candidates who asked for that slot. The distribution algorithm tries to keep a balance between all candidates.

Download -> Compile -> Execute

Use:

In Terminal: EXECUTABLE "inputFile_yourShiftPlanWithCandidates.csv" "outputFile_FinalDistributedShiftPlan.csv"

  • Application will generate a shift plan based on input file.

  • Second argument is optional. If its not provided, result will be printed in standard output stream (which can be also redirected in a file by using pipes)

The Input CSV File (Table Sheet):

YOU WILL FIND AN EXAMPLE INPUT FILE 'example_shiftplan.csv' in data-dir. That file can be used as template csv input file.

Every Column must seperated by a (;) semicolon!

Example:

; Monday ; Thursday ; Wednesday

10h; Susan, Paul ; Tom ; Martin

11h; Tim, Hermione ; Lisa ; Bart

12h; Tom, Ben ; Bart,Lisa ; Harry

Sheet-Structure

Your sheet need a fix defined structure:

  • the first line of your sheet must contain the column-titles

  • the first column of each tow must contain the row-title

  • there aren't allowed data outside the range of your sheet. The column- and row-titles are spanning the table-range. Data are allowed in that spanned range only. Data outside of that range will lead to incorrect results! So make shure, that every data has a column- and a row-title.

All Tabulators, Single-Quotes, Double-Quotes, Newlines and SEPERATOR-Characters will be removed in all Data-Columns (Candidate-Values)!


PS: sorry for my english :) I hope, you will understand this documentation.

shiftrostergenerator's People

Contributors

tutorexilius avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

danloran

shiftrostergenerator's Issues

Priorisation/Weighting of a candidate

All candidates are equal and the algorithm will distribute slots evenly to all candidates.

If you prefer a candidate, a weighting/priorisation of that will be helpful.

More slots on the same day for a candidate

It can be, that a candidate will be placed to different slots on the same day. That could be a problem in special cases. The candidate needs to be available till his next slot on tha same day.

To avoid distributions on same day in different, non contiguous slots, it is required to adjust the distributor.

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.