Desktop-based shift planning and workload analysis system built in Python.
The project focuses on:
- Intelligent shift assignment
- Workload balancing
- Employee well-being analysis
- Personalized workload scoring
- Risk detection
- Transparent assignment explanations
- GUI-based schedule analysis
The system is inspired by real-world healthcare scheduling challenges in 24/7 departments.
- Assign employees to shifts based on:
- Skills
- Capacity
- Rest time rules
- Shift conflicts
- Personalized workload tolerance
- Workload score calculation
- Personalized workload scoring
- Employee risk analysis
- Heavy shift detection
- Capacity warnings
- Unassigned shift tracking
- Desktop GUI built with Tkinter
- CSV file selection
- Interactive tables
- Shift explanation viewer
- Report export to
.txt
The system explains WHY employees were assigned:
- Required skill match
- Preferred shift match
- Personalized workload score
- Eligibility reasoning
Add screenshot here later
- Python 3.12
- Tkinter
- Pytest
- CSV-based data import
python-shift-planner-desktop/
│
├── app/
│ ├── gui.py
│ ├── main.py
│ ├── scheduler.py
│ ├── models.py
│ ├── reporting.py
│ ├── csv_loader.py
│ ├── personalized_workload.py
│ ├── assignment_explanation.py
│ └── constants.py
│
├── data/
│ ├── employees.csv
│ ├── shifts.csv
│ └── employee_profiles.csv
│
├── tests/
│
├── requirements.txt
├── pytest.ini
└── README.md
Clone repository:
git clone https://github.com/kris7011/python-shift-planner-desktop.gitNavigate to project:
cd python-shift-planner-desktopInstall dependencies:
pip install -r requirements.txtRun GUI:
py -m app.guiRun tests:
pytestname,max_shifts,skills
Kris,4,CT;MR
Anna,4,CT
Peter,4,MRdate,shift_type,required_skill,required_staff,priority,workload_score
2026-05-05,Day,CT,2,2,1
2026-05-05,Evening,MR,1,2,2employee_id,name,night_tolerance,weekend_tolerance,late_tolerance,max_weekly_load,preferred_shift
1,Anna,0.4,0.6,0.8,35,DAY- Multi-staff shift assignment
- Risk scoring
- Personalized workload analysis
- Rest-time validation
- GUI reporting
- Report export
- Interactive explanations
- SQLite database
- Drag-and-drop scheduling
- Calendar view
- Fairness optimization
- AI-assisted scheduling
- What-if simulations
- PDF export
- Employee preference management
- Real-world agreement rules
Project includes automated unit tests using Pytest.
Current coverage includes:
- Employee rules
- Shift rules
- CSV loading
- Personalized workload scoring
- Scheduler behavior
This project was created as part of a larger initiative exploring:
- Workforce planning
- Employee well-being
- Scheduling optimization
- Healthcare operations
- Explainable scheduling systems
Active development.
The project is continuously evolving with new scheduling logic, GUI improvements, and workload analysis features.