Skip to content

[R6] Learner portfolio and audited teacher Project Viewer #64

Description

@spikeal8-maker

Parent

Epic №36. Normative candidate: PR №43.

Статус

blocked до accepted R5 Classroom/StudentSeat gate.

Пользовательский результат

educator opens roster
→ selects learner
→ sees learner portfolio grouped by module
→ opens Project Viewer
→ views exact immutable version and version history
→ optionally enters explicit assistance mode
→ restore creates a copy

Scope

  • operational roster detail;
  • learner portfolio across personal/classroom project scope authorised to the educator;
  • module tabs and project cards;
  • universal read-only Project Viewer;
  • exact immutable ProjectVersion selection;
  • version history and diff envelope;
  • audited teacher access;
  • explicit, bannered, time-limited assistance/edit mode;
  • restore-to-copy; existing immutable version never overwritten;
  • last activity and safe status summary without exposing unrelated personal data.

Authorization invariants

  • educator sees only learners in authorised classes;
  • co-teacher requires explicit grant;
  • default is read-only;
  • assistance mode is a separate audited grant/action;
  • learner ownership remains with learner Principal;
  • teacher visibility does not imply teacher ownership;
  • cross-tenant/class access denied at application and DB boundaries.

Acceptance

  1. Teacher opens authorised learner portfolio and exact project version.
  2. Another class/tenant is denied and audited.
  3. Version history is immutable.
  4. Restore creates a new owned copy and lineage; no overwrite.
  5. Assistance mode has visible banner, start/end audit and explicit expiry.
  6. StudentSeat/private project remains non-public.
  7. Automated authorization/E2E and owner screenshots PASS.

Non-goals

  • assignments/submission/review/grades — R9;
  • public profile/Explore — R8;
  • publication/remix — R7 except internal restore-to-copy;
  • admin/billing.

Owner stop

R7/R9 do not begin automatically after R6.

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions