Covert requirements to feature specs
This commit is contained in:
61
docs/features/scheduling.md
Normal file
61
docs/features/scheduling.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# 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)
|
||||
```
|
||||
Reference in New Issue
Block a user