All Projects → Staffjoy → Mobius Assignment

Staffjoy / Mobius Assignment

Staffjoy Suite (V1) Microservice - Shift Assignment Subject To Constraints

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Mobius Assignment

Shift Scheduling
Shift Scheduling for workforce
Stars: ✭ 22 (-4.35%)
Mutual labels:  scheduling, optimization
Optaplanner
AI constraint solver in Java to optimize the vehicle routing problem, employee rostering, task assignment, maintenance scheduling, conference scheduling and other planning problems.
Stars: ✭ 2,454 (+10569.57%)
Mutual labels:  scheduling, optimization
Training Material
A collection of code examples as well as presentations for training purposes
Stars: ✭ 85 (+269.57%)
Mutual labels:  math, optimization
autoscheduler
Staffjoy Suite (V1) Deprecated Microservice - Original autoscheduling algorithm, which combines shift creation and assignment. No longer compatible with open-source suite.
Stars: ✭ 68 (+195.65%)
Mutual labels:  math, scheduling
Nlopt.jl
Package to call the NLopt nonlinear-optimization library from the Julia language
Stars: ✭ 141 (+513.04%)
Mutual labels:  math, optimization
autodiff
A .NET library that provides fast, accurate and automatic differentiation (computes derivative / gradient) of mathematical functions.
Stars: ✭ 69 (+200%)
Mutual labels:  math, optimization
Pyswarms
A research toolkit for particle swarm optimization in Python
Stars: ✭ 742 (+3126.09%)
Mutual labels:  optimization
Cglm
📽 Highly Optimized Graphics Math (glm) for C
Stars: ✭ 887 (+3756.52%)
Mutual labels:  math
Long.js
A Long class for representing a 64-bit two's-complement integer value.
Stars: ✭ 719 (+3026.09%)
Mutual labels:  math
Eaopt
🍀 Evolutionary optimization library for Go (genetic algorithm, partical swarm optimization, differential evolution)
Stars: ✭ 718 (+3021.74%)
Mutual labels:  optimization
Theoremjs
A Math library for computation in JavaScript 📕
Stars: ✭ 917 (+3886.96%)
Mutual labels:  math
Coord Rs
[deprecated] A simple, ergonomic vector mathematics crate for Rust
Stars: ✭ 18 (-21.74%)
Mutual labels:  math
Liblaml
A stand-alone pure C++ library for linear algebra and machine learning
Stars: ✭ 7 (-69.57%)
Mutual labels:  optimization
Expr Eval
Mathematical expression evaluator in JavaScript
Stars: ✭ 752 (+3169.57%)
Mutual labels:  math
Binary.dart
Utilities for working with binary data and bit manipulation in Dart.
Stars: ✭ 16 (-30.43%)
Mutual labels:  math
Su2
SU2: An Open-Source Suite for Multiphysics Simulation and Design
Stars: ✭ 731 (+3078.26%)
Mutual labels:  optimization
Nuxt Optimized Images
🌅🚀 Automatically optimizes images used in Nuxt.js projects (JPEG, PNG, SVG, WebP and GIF).
Stars: ✭ 717 (+3017.39%)
Mutual labels:  optimization
D912pxy
DirectX9 to DirectX12 API proxy for Guild Wars 2
Stars: ✭ 833 (+3521.74%)
Mutual labels:  optimization
Rpn
Math functional language, inspired by Hewlett-Packard Reverse Polish Notation (RPL) language
Stars: ✭ 17 (-26.09%)
Mutual labels:  math
Suite
Staffjoy V1, aka "Suite" - a scheduling application for hundreds of workers
Stars: ✭ 814 (+3439.13%)
Mutual labels:  scheduling

Logo

Mobius - Service for assigning workers to shifts according to constraints

Moonlight contractors

Staffjoy is shutting down, so we are open-sourcing our code. Mobius is an applied mathematics microservice for assigning workers to shifts, subject to constraints like availability and worker availability. This tool relies on the Gurobi Python library, which is closed source.

This tool was used for Staffjoy V1 (Suite) customers, and Mobius (in conjunction with Chomp) replaced the previous Autoscheduler algorithm.

Credit

This repository was conceived and authored in its entirety by @philipithomas. This is a fork of the internal repository. For security purposes, the Git history has been squashed and client names have been scrubbed from tests.

Self-Hosting

If you are self-hosting Mobius, please make sure that you are using version >=0.24 of the staffoy client (in requirements.txt). Then, modify mobius/tasking.py to include your custom domain - when initializing Client(), pass in your custom URL base, e.g. Client(url_base="https://staffjoy.example.com/api/v2/, key=config.STAFFJOY_API_KEY, env=config.ENV),

Project Mobius

Microservice for assigning workers to shifts subect to constraints and happiness.

Running

Provision the machine with vagrant. When you first run the program or when you change requirements.txt, run make requirements to install and freeze the required libraries.

vagrant up
vagrant ssh
# (In VM)
cd /vagrant/
make dependencies

Formatting

This library uses the Google YAPF library to enforce PEP-8. Using it is easy - run make fmt to format your code inline correctly. Failure to do this will result in your build failing. You have been warned.

To disable YAPf around code that you do not want changed, wrap it like this:

# yapf: disable
FOO = {
    # ... some very large, complex data literal.
}

BAR = [
    # ... another large data literal.
]
# yapf: enable
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].