AsciiDoc version will be added to git later.

Overview

Parents use one account for all linked children. Students access via parent login on a family device. Staff upload files and target one parent, a group, or all parents.

User roles

ActorAccess
ParentAll linked children, fees, receipts, documents, notices, reports
StudentSame login; student view for one child's homework and downloads
TeacherUpload homework to class/subject via admin portal
Campus adminUpload any document; target any audience; analytics
BursarReceipts auto-published on payment approval

Document types

TypeDescriptionSource
RECEIPTPayment receipt PDFfee-service on approval
INVOICETerm fee invoicefee-service
REPORT_CARDTerm academic reportacademic-service
HOMEWORKAssignment fileTeacher upload
HOLIDAY_PACKHoliday revisionTeacher upload
CIRCULAROfficial letterAdmin upload

Audience targeting

Single parent, single student (all guardians), class, stream, campus, custom group, all parents (org or campus-wide).

Holiday access

Portal available year-round. Homework tagged with availableFrom / availableUntil. Teachers schedule holiday packs for last day of term.

Domain events

  • PaymentReceived → receipt in library
  • ReportCardPublished → report in library
  • DocumentPublished → SMS/email
  • HomeworkAssigned → optional alert

Parent dashboard

When the health module is enabled, each child profile shows a Health record card: status (not started / pending confirmation / confirmed), link to review & confirm, and upload doctor's note. See student health records.

Security

  • Parents see only documents targeted to them or their children's classes
  • Presigned URLs expire (~15 minutes)
  • Authentication required — no public URLs

Acceptance criteria

  • Parent downloads receipt from last 3 years in under 3 clicks
  • Teacher uploads homework → class parents see within 5 minutes
  • Student opens holiday pack during break without term block
  • Admin sends circular to all parents at 3 campuses in one action

Technical APIs: API reference · UI: parent dashboard sample