3.4 KiB
3.4 KiB
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 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)