Covert requirements to feature specs
This commit is contained in:
57
docs/features/user-accounts.md
Normal file
57
docs/features/user-accounts.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# Feature: User Accounts & Profiles
|
||||
|
||||
**Source:** VSMS Functional Requirements v1.1, Section 2
|
||||
|
||||
---
|
||||
|
||||
## Roles
|
||||
|
||||
There are two account types: **Admin** and **Volunteer**. Multiple Admin accounts are supported. Admins are not assigned to volunteer shifts.
|
||||
|
||||
**Trainee** is not a separate account type — it is a permission flag on a Volunteer account that blocks open shift claiming. All other Volunteer behaviour is identical.
|
||||
|
||||
### Operational Roles
|
||||
|
||||
Assigned by Admin. A volunteer may hold multiple simultaneously. Displayed on schedule and calendar views.
|
||||
|
||||
- Behaviour Team
|
||||
- Dog Log Monitor
|
||||
- Dog Shelter Volunteer
|
||||
- Trainee *(mirrors the Trainee permission flag)*
|
||||
- Floater *(covers open shifts; can also hold a recurring assigned shift)*
|
||||
|
||||
---
|
||||
|
||||
## Profile Data
|
||||
|
||||
| Field | Required | Notes |
|
||||
|-------|----------|-------|
|
||||
| Full name | Yes | Editable by volunteer |
|
||||
| Email address | Yes | Used for login and notifications |
|
||||
| Phone number | No | Stored for reference; not used for notifications in MVP |
|
||||
| Operational role(s) | — | Set/edited by Admin only |
|
||||
| Notification preference | — | Email only in MVP; email + SMS future |
|
||||
| Internal Admin notes | — | Admin-only; not visible to volunteer |
|
||||
| Last login date | — | Visible to Admin |
|
||||
| Completed shift count | — | System-tracked; used to inform Trainee promotion |
|
||||
|
||||
Volunteers can edit: **name** and **phone number** only.
|
||||
|
||||
---
|
||||
|
||||
## Requirements
|
||||
|
||||
| FR ID | Requirement | Notes |
|
||||
|-------|-------------|-------|
|
||||
| **FR-U01** | Admin creates all accounts. No self-registration. Admin sets name, email, operational role(s), and Trainee flag at creation. | |
|
||||
| **FR-U02** | On account creation, the system sends an invite email with an activation link. | Admin can resend if not yet activated. |
|
||||
| **FR-U03** | Login uses invite-based flow. Google Auth (OAuth) preferred if feasible; email/password with invite activation is the fallback. | No self-signup regardless of method. **TBD: implementation team to decide.** |
|
||||
| **FR-U04** | Admin can deactivate a volunteer at any time. Volunteer is locked out immediately. Past shift records are preserved; name displays as `Name (inactive)` on past shifts. Deactivated accounts are hidden from active schedule and user list views. | |
|
||||
| **FR-U05** | Admin can promote a Trainee to full Volunteer (remove Trainee flag) at any time. Completed shift count is displayed on their profile to inform the decision. Conventional threshold is 2 shifts, but promotion is always a manual Admin action. Removing the flag immediately grants open shift claiming. | |
|
||||
| **FR-U06** | Admin can add, edit, and delete internal notes on any user profile. Notes are not visible to the volunteer. | |
|
||||
|
||||
---
|
||||
|
||||
## Open Decisions
|
||||
|
||||
- **Authentication:** Google Auth vs. email/password — implementation team to advise and recommend. *(TBD)*
|
||||
Reference in New Issue
Block a user