Intervention / Contact Note — Spec
Purpose: define the data model, permissions, UI flows, and acceptance criteria for the Intervention / Contact Note feature (documentation-only spec).
Overview
Coordinators, advisors, and authorised staff can log short intervention notes linked to students, teachers, modules, or classes. Notes serve as a durable record of contact and actions taken.
Data model (docs)
id(string)author_id(string) — staff user who created the noteauthor_role(string) — e.g., Coordinator, Advisorlinked_student_id(string, nullable)linked_teacher_id(string, nullable)module_id(string, nullable)class_id(string, nullable)note_text(text)tags(array of strings)visibility(enum:private,staff,public)created_at(timestamp)updated_at(timestamp)
Permissions (docs)
- Who can create: Coordinators, Advisors, assigned Staff
- Who can view: Coordinators and the student's assigned advisors; teachers may see notes linked to their classes unless marked
private. - Who can edit/delete: author and site admins. Deletion must be auditable; prefer soft-delete.
UI flows (docs)
- Create note: coordinator opens student or module, clicks Add intervention note, fills
note_text, selects links (student/teacher/module), sets visibility, saves. - List & filter: coordinator sees a paged list of notes with filters (student, teacher, module, tag, date range).
- View: open a note to see full text, author, and audit trail.
Audit & Retention (docs)
- All notes must be immutably logged in an audit table: who changed what and when.
- Retention: follow school's GDPR policy; document retention period (e.g., 7 years) and deletion workflow.
Acceptance criteria
- Coordinator can create a note linked to a student and module and see it in the student's timeline.
- Notes appear in coordinator lists and are searchable by tag and text.
- Visibility rules enforced:
privatenotes are not visible to teachers. - Audit trail records create/edit/delete events.
Example payloads (docs-only)
Create note payload (example):
{
"author_id": "staff_123",
"linked_student_id": "student_456",
"module_id": "module_789",
"note_text": "Contacted student about missing assignments; arranged advisor meeting.",
"tags": ["attendance","follow-up"],
"visibility": "staff"
}
Last updated: 2026-07-06