# ShiftPlanner A single-file employee shift scheduling application for a small team (a hotel/spa-style operation: the UI references "Therme"). It runs entirely in the browser — no server, no build step, no install, no account. Version: **1.0.0** (see `VERSION`) Canonical source: `src/index.html` (2,789 lines, 136,212 bytes, md5 `37207b2227899603f90c42e59ff1875a`) ## What it does - **Staff register** — add, edit and delete workers, each with role and contracted hours per week. - **Shift templates** — define reusable shifts with name, start/end time, colour and required headcount, then apply a template to a day. - **Month calendar** — one month at a time, with per-day shift blocks, assigned workers, headcount limits (min/max) and free-text day notes. - **Absence tracking** — record vacation, sick days and days off per worker; availability checks respect them. - **Automatic plan generation** — a step-through generator that fills the month for selected workers, honouring: - fairness priority (equal number of shifts / equal total hours / equal weekend shifts), - maximum consecutive working days, - minimum rest hours between shifts, - maximum workers per shift. - **Conflict detection** — flags double-booking, rest-period violations and consecutive-day overruns, with a conflict badge, "Fix conflicts" and "Clear Day" actions. - **Exports** — CSV of the month's roster, and JSON backup of the whole plan. - **Import** — restore a previously exported JSON backup. - **Light/dark theme**. ## What the buyer gets ``` shiftplanner/ ├── VERSION 1.0.0 ├── README.md this file ├── CHANGELOG.md ├── LICENSE ├── src/ │ └── index.html the complete application (open this) ├── docs/ │ ├── CANONICAL.md measurement record: why this file is canonical │ └── USAGE.md non-technical, step-by-step instructions └── archive/ four earlier/variant copies, kept for reference ├── mindtech__shiftplanner.html ├── mindtech__downloads__shiftplanner.html ├── mindtech__shiftplanner_v1.3.html └── agando__shiftplanner_v1.3.html ``` One file is the whole product. There is nothing to compile and nothing to deploy beyond copying `src/index.html` somewhere and opening it. ## How to run it offline 1. Copy `src/index.html` to the machine that will use it — a laptop, a USB stick, a shared folder, anything. 2. Double-click it, or drag it into any modern browser (Chrome, Edge, Firefox, Safari). 3. That's it. The app is fully self-contained. Verified: the file contains **0** `