Files
walkies/docs/features/user-accounts.md

58 lines
2.8 KiB
Markdown

# 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)*