Web app that automates nurse and employee scheduling using constrained optimization
- Stars9
- Forks3
- Open Issues9
AGPL-3.0
- TypeScript
- Python
- Shell

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