Skip to content

gvallejo/ShiftScheduler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This code implements features 1 and 2.

Overview For the implementation of this scheduler I decided to focus on designing a flexible framework library rather than producing a novel algorithm to implement all the features mentioned in the instruction set. I see more business value on preparing the system to support obvious changes such as the addition of more and more rules (in this context rule = feature), than developing an algorithm that will satisfy only a handful of them. The automatic scheduling of workforce is a known problem that has no silver bullet solution.
This framework can be used as a basis by developers to implement a family of scheduling algorithms that can be changed at runtime. This gives developers the chance to work towards “specialization” of algorithms and invoke them based on customer’s requirements. As time evolves, researchers in this field will produce new approaches that could be easily implemented, encapsulated and added to the company’s arsenal of solutions.
Features

  • This framework offers a flexible mechanism to implement rules that will be used to validate a generated instance of a schedule. Validation is of great importance when dealing with scheduling problems since it is heavily used in sophisticated intelligent algorithms such as the ones based on Genetic Algorithms.

  • Classifies rules in Hard and Soft rules.

Assumptions:

  • The MIN_SHIFTS applies to all Employees. Even if he/she is not working the week that is under the scope of the rule.
  • The only restrictions observed are features 1 and 2. In this context, an employee can be scheduled to work all days of the week or none at all.

Notes: - The Web application was developed using the DevExpress 14.1.8 family of components for rapid prototyping.

About

coding test. Shift Scheduler API

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published