Files
walkies/docs/features/scheduling.md

62 lines
3.4 KiB
Markdown

# Feature: Scheduling & Publishing
**Source:** VSMS Functional Requirements v1.1, Section 3
---
## Shift Templates
Admins manage the recurring schedule through weekly shift templates. Each template defines the base structure for a shift that repeats each week.
**Template fields:**
- Name (e.g. `Morning Shift`)
- Day of week
- Start time and end time
- Minimum and maximum volunteer capacity (e.g. min 3, max 5)
- Role requirements per shift (e.g. 1 Behaviour Team, 3 Dog Shelter Volunteers, 1 Dog Log Monitor)
- Recurring volunteer assignments — volunteers assigned to a template automatically appear on every generated instance of that shift
### Template Requirements
| FR ID | Requirement | Notes |
|-------|-------------|-------|
| **FR-S01** | Admin can create, edit, and delete shift templates. | Deleting a template does not affect already-generated shift instances. |
| **FR-S02** | Admin manually triggers shift generation for a given period (e.g. a month). The system generates instances from all active templates for that period. Duplicate generation is prevented. | Auto-rolling generation is out of scope for MVP. |
| **FR-S03** | Editing a shift template applies only to shift instances that have not yet been published. Published instances are protected from template changes. | Published instances can still be edited manually — see FR-S07/FR-S08. |
---
## Publishing
Generated shift instances are in **draft (unpublished)** state until Admin publishes them. Publishing makes the schedule visible to volunteers and triggers notifications.
| FR ID | Requirement | Notes |
|-------|-------------|-------|
| **FR-S04** | Admin manually publishes a month's schedule. On publish, each assigned volunteer receives a single email listing all their shifts for that month. | See [notifications.md](notifications.md) for details. |
| **FR-S05** | Admin can unpublish a published month. All volunteers assigned to shifts in that month are notified that the schedule has been retracted. | Intended for accidental early-publish scenarios. |
| **FR-S06** | Admin can see unconfirmed volunteers (those who have not acknowledged the monthly schedule email) flagged on the schedule view. | |
---
## Editing Published Shifts
Admin can manually edit individual shift instances at any time, including after publishing. These edits do not affect the underlying template or other weeks.
| FR ID | Requirement | Notes |
|-------|-------------|-------|
| **FR-S07** | Admin can adjust volunteer assignments on any individual shift instance (add or remove a specific volunteer for that occurrence only). | |
| **FR-S08** | Admin can adjust the min/max volunteer headcount on any individual shift instance. | |
| **FR-S09** | When Admin edits a published shift (assignments or capacity), all volunteers assigned to that shift have their confirmation status reset and must re-acknowledge. | Volunteers are notified of the change — see FR-N09. |
| **FR-S10** | When Admin adds a volunteer to a shift mid-month (after publishing), that volunteer receives a notification about the newly added shift. | See FR-N10. |
---
## State Model
```
Template → [generate] → Draft Instance → [publish] → Published Instance
Admin can edit (FR-S07/S08)
Resets acknowledgement (FR-S09)
```