Notice Board & Alerts
Every announcement in Scholiphi flows through a single Alerts pipeline. Teachers pick a typed form (urgent, holiday, PTM, exam, school event, result declaration, homework notice, general notice), aim it at the whole school, specific classes, or specific sections, and publish. The same record then surfaces in the right place for each audience: the student Notice Board, the parent Notice Board, push notifications, and — depending on type — dashboard cards for upcoming events.
At a glance
| Who can do this | Teachers / class teachers create & publish alerts · Students see filtered notices on their notice board · Parents see all alert types in their feed |
| Where it lives | Teacher app /dashboard/alerts (list) · /dashboard/alerts/{type} (create) · /dashboard/alerts/{type}/:id/edit (edit draft) · /dashboard/alerts/:id/sent (read-only sent view) · Student app /dashboard/notice-board · Parent app /notice-board |
| Triggers notifications? | Yes — push + in-app to every targeted student and their parents on publish |
| Related features | Notifications · Homework · PTM · Exams |
Alert types
The 8 typed forms behind the + Create button on the alerts page:
| Type code | Label | Use case | Distinct fields |
|---|---|---|---|
NOTICE | General Notice | Catch-all info | title, description, attachments, priority |
URGENT | Urgent Alert | Anything that needs immediate attention (closure, safety, surprise schedule change) | priority defaults HIGH, surfaces with red treatment |
HOLIDAY | Holiday Announcement | School off / break | start date, end date |
EVENT | School Event | Sports day, fair, cultural | event date, venue, agenda |
PTM / MEETING | PTM Meeting | Parent-teacher meet | meeting date, slots / link — feeds the PTM flow |
EXAM | Exam Announcement | Schedule a test for a class | exam date, subject — drives Exams listing |
HOMEWORK | Homework Notice | Heads-up about a homework drop | linked homework metadata — see Homework |
RESULT | Result Declaration | Marks released for an exam | exam reference, declaration date |
Each alert also carries: priority (LOW / MEDIUM / HIGH), status (DRAFT / PUBLISHED / SENT), scheduledAt, docAttachmentsUrls[], and target audience.
How it flows
Status lifecycle
Draft is teacher-only. Students/parents only ever see Published (scheduled future) or Sent alerts.
Step-by-step
1. Teacher opens the alerts hub
- Route: Teacher app →
/dashboard/alerts - Top bar: search icon, filters (date range), and + Create button.
- Stats strip: Active alerts, Upcoming events, Sent this week.
- Tab filter:
All,Exam,PTM,Event,Holiday,Urgent,Notice,Homework,Result. - Cards show type, title, target classes, scheduled time, status, attachments badge.
2. Create a new alert
- Tap + Create → bottom sheet with 8 typed action cards.
- Pick a card → navigates to the type's form (
/dashboard/alerts/general-notice,/dashboard/alerts/urgent-alert,/dashboard/alerts/holiday-announcement,/dashboard/alerts/school-event,/dashboard/alerts/ptm,/dashboard/alerts/exam-announcement,/dashboard/alerts/homework-notice,/dashboard/alerts/result-declaration). - Form fields are typed-specific (see table above) but every form has: title, description (rich text), attachments (PDF / images), priority.
3. Save as draft or publish
- Save Draft persists the alert with
status=DRAFT. It only shows up on the teacher's alerts list. - Publish opens the Audience & Schedule sheet:
- Target classes (e.g.
["Class 5", "Class 6"]) — translates to all sections of those classes. - Target sections (e.g.
["5-A", "6-B"]) — narrower; specific sections only. - Empty target → defaults to whole school.
- Send at — now or schedule for later.
- Target classes (e.g.
- Confirm → status flips to
PUBLISHED; backend fans out push + in-app notifications.
4. Editing & deletion
- Tapping a
DRAFTcard on the list re-opens the typed form prefilled (/dashboard/alerts/{type}/:id/edit). - Tapping a
SENTcard opens a read-only detail page (/dashboard/alerts/:id/sent) with delivery info. - Drafts can be deleted via the card menu.
5. Student visibility
- Route: Student app →
/dashboard/notice-board - Surfaces only
NOTICE,URGENT,HOMEWORKtypes (the rest live elsewhere — exams in/dashboard/exams, results in/dashboard/school/results, holidays/events in dashboard widgets). - Cards group by date, sorted newest-first. Tap → detail drawer with full description, attachments, teacher review/notes.
- Pull-to-refresh; deep-link
?id=or?alertId=opens drawer directly (used by push-tap).
6. Parent visibility
- Route: Parent app →
/notice-board - Shows all 8 alert types (parents are the catch-all audience).
- Filter chips: All · Exam · Homework · Notice · Event · Holiday · Urgent.
- Cards include type icon, badge, relative time, and any attachments.
- Multi-child parents: notice list is contextual to the child currently selected on the parent dashboard.
7. Cross-feature surfacing
Some alert types double as inputs for other features:
EXAM→ also appears in student/parent Exams listing.PTM→ drives the PTM RSVP / scheduling flow.HOLIDAY/EVENT→ render on the dashboard calendar widget on all 3 apps.RESULT→ links to the Results page once marks are populated.HOMEWORK(notice) is a lightweight announcement; it does not create a homework record by itself — the teacher must still create the homework in Homework for submission tracking.
Edge cases & things to test
- Whole-school target: leaving target classes/sections empty must reach every section in the school (not zero recipients).
- Section-specific targeting: target
5-Aonly — students in5-Bmust NOT see the notice. - Multi-section targeting: target both
5-Aand6-B— the alert should appear once for each student in either section, not twice. - Scheduled-future alert: set
scheduledAtto tomorrow 9 AM — students must NOT see it before 9 AM tomorrow; teacher card should show countdown / scheduled state. - Edit a draft after attachments uploaded: re-opening must restore attachment list; saving without re-upload must not lose them.
- Deleting a draft with attachments: confirm attachments are not orphaned in S3 (or are tolerated as orphan).
- Type-specific surfacing:
EXAMpublished — does it appear in both the parent notice board AND the parent exams page? - Priority
URGENT: card must render with red highlight on student notice board AND drive a higher-priority push. - Push tap deep-link: tap a
NOTICEpush on student app — must land on/dashboard/notice-board?alertId=…with drawer pre-opened. - Section reassignment: a student moves from
5-A→5-Bafter an alert was sent to5-A— should the alert remain visible in their feed? (Document expected behavior.) - Class teacher vs subject teacher: which teacher roles can publish each type? (e.g. only class teachers should publish
RESULT.) - Multi-child parent: parent has children in
5-Aand8-C— feed should de-dupe alerts that target both classes / whole school, not show twice.
Related
- Notifications — every publish fans out push + in-app
- Homework —
HOMEWORKalert is the announcement layer; the homework record is separate - PTM —
PTMalerts kick off the meeting RSVP flow - Exams —
EXAMandRESULTalerts feed the exams pages