Back to all 15 projects
Project 13 / 15Deployed

shabetz-na

Personnel shift scheduling driven entirely by configuration: divisions, shifts, skills and rest rules are all defined by the administrator, not built in.

Core stack
  • Python
  • FastAPI
  • SQLAlchemy
  • React
  • TypeScript

Screens

Screen 1 of 6
01Schedule dashboard with coverage totals, the division on duty each day and the shift table
Chapter 01

Overview

Scheduling tools usually hard-code the organisation they were written for — its division names, its three shifts, its ranks. shabetz-na has none of that: a first-run wizard defines divisions, shift windows, skills and proficiency levels, and any of it can change afterwards. Given a roster and a set of jobs it generates a schedule over any date range that respects division rotation, minimum rest between shifts, per-job head count and skill requirements, and each person's availability and approved time off. Because an administrator who can configure anything can configure something impossible, a feasibility preflight checks the setup first and names the specific shortfall instead of producing a schedule full of unexplained gaps. It ships two ways from one codebase: a Windows desktop app on SQLite, and a hosted multi-project website on PostgreSQL or MySQL.

Chapter 02

Highlights

  • No built-in divisions, shift counts, shift times or skill ladder — everything comes from configuration
  • Feasibility preflight counts the distinct people each duty day needs, not just the busiest moment, and reports the shortfall per division
  • Scheduling engine and domain model import nothing from SQLAlchemy or FastAPI, so it is tested without a database
  • Per-project roles (admin, collaborator, staff); every query is scoped to the project and a non-member gets a 404
  • Exports to CSV, HTML and PDF; rosters import from Excel, CSV or a pasted spreadsheet with a row-by-row preview
  • English and Hebrew (right-to-left) UI; ships as a Windows installer or a hosted website