Nurse Scheduling System

Web app that automates nurse and employee scheduling using constrained optimization

Open Source Alternative to
Repository activity
  • Stars9
  • Forks3
  • Open Issues9
License

AGPL-3.0

Languages
  • TypeScript
  • Python
  • Shell
Get it:GitHub
Nurse Scheduling System screenshot

About Nurse Scheduling System

Nurse Scheduling System solves the nurse scheduling problem, where constraints vary widely between hospitals and wards and manual scheduling in spreadsheets can take many hours. It aims to model real-world scenarios in one flexible framework rather than an over-simplified constraint set.

It frames scheduling as constrained optimization and ships a Python core with a CLI for running solver jobs that read YAML inputs and write CSV or XLSX. The default solver is OR-Tools CP-SAT, with experimental PuLP CBC and GPU-accelerated cuOpt options, and solver progress can be recorded as JSON Lines. The Next.js frontend has Vitest unit tests and Playwright browser integration tests.

This is an early work-in-progress project with a steep learning curve and limited documentation, though it has been used in multi-ward scenarios of up to about 100 nurses. The maintainer runs a hosted frontend, and the solver backend can be self-hosted with Docker, including an optional GPU image.

Key features

  • Constrained optimization across flexible, real-world rules
  • CLI solver runs with CSV and XLSX output
  • OR-Tools CP-SAT, PuLP CBC, and cuOpt GPU solvers
  • Solver progress recording as JSON Lines
  • Vitest and Playwright test coverage on the frontend

Details

On GitHub since
2023
License
AGPL-3.0
Core
Python, FastAPI
Frontend
Next.js, TypeScript
Solvers
OR-Tools, PuLP, cuOpt
Self-hosted
Docker, optional GPU image