Identity & Access · 01

Login

Single-column auth surface matching the built Angular component: 28rem max-width card region, clay primary action, green link accents, 44px touch targets. Supabase Auth session handled by the client.

Spec §6 Identity · Epic 1 · matches auth.scss in repo
09:41RCL Hub · PWA
1
R
Welcome back
Sign in to your RCL Hub account
thandi.m@school.za
2
••••••••••
Forgot password?
3
Sign in
New to RCL Hub? Create an account
4
EnglishisiZuluSepedi
mobile · 360 × 740 · learner default
1
Brand block. Display serif for the greeting only; everything else stays in the sans. Quiet, credible, youth-appropriate.
2
Field states. Inputs follow the built component: 1px border, 10px radius, danger border + inline role="alert" error below on invalid, aria-invalid wired.
3
Primary action. Clay full-width button — the single warm accent on the screen. Disabled + aria-busy while submitting.
4
Language switch before auth. en / zu / nso selectable pre-login via ngx-translate; choice persists into the session.

Identity & Access · 02

Register — 6-step wizard

Mirrors the shipped component one-to-one: one underlying FormGroup, per-step validation, native progress element, focus moved to the step heading on navigation. Steps: About you → A few details → Your school → How we reach you → Guardian details → Create a password.

Spec §6 Identity · Epic 1 · matches register.component.html in repo
09:41RCL Hub · PWA
Create your account
1

Step 3 of 6

Your school
Gauteng
2
Johannesburg North
Select your school

Please choose your school to continue.

3
My school is not listed
4
Back
Next
step 3 — cascading province → district → school
09:41RCL Hub · PWA
Create your account

Step 5 of 6

Guardian details

Because you're under 18, a parent or guardian must give consent for you to use RCL Hub.

5
N. Mokoena
Parent
n.mokoena@gmail.com
072 ___ ____
My guardian consents to me creating this account and agrees to the privacy terms.
6
Back
Next
step 5 — guardian consent (POPIA / minors)
1
Wizard chrome. Native <progress> + "Step n of 6" with aria-live="polite". Step title takes focus on next/back so screen readers announce the new step.
2
Cascading selects. District appears only after province; school only after district — mirrors the conditional template blocks in the built form.
3
School not listed. Checkbox swaps the select for a free-text school name; cross-field validators (schoolRequired / schoolNameRequired) enforce one or the other.
4
Nav contract. Back never destroys data — one FormGroup persists across steps. Next runs per-step validation only (STEP_CONTROLS array).
5
Guardian step. Required for learner accounts; collects consent identity for POPIA-compliant processing of a minor's data.
6
Final step. Step 6 (password + confirm, passwordMismatch validator) ends in submit → success state with "Sign in" link.

Learner Home · 03

Learner dashboard

The personalised starting point: quote of the day, today's governance work, learning progress and points — every pillar of the platform surfaced once, nothing duplicated. Role-gated: learners see participation; RCL members additionally see their committee duties.

Spec §8 — Learner home · KPI: human-centred & participatory
09:41RCL Hub · PWA
Molweni · Thursday 12 June
Dumela, Thandi
🔔
1
"It always seems impossible until it is done."
NELSON MANDELA · QUOTE OF THE DAY
2
1,240
Points
3 / 8
Lessons mastered
3
Continue learning

Female Leadership

Level 2 · Application — awaiting your submission

Resume
4
Today

RCL general meeting

14:30 · School hall · RSVP confirmed

Meeting

Poster for civvies day

Task · due tomorrow

Due soon

Vote: water station proposal

Voting closes 17:00 today

Vote
mobile · learner role
1
Quote of the day. Pulled from the moderated quote gallery (engagement schema). Deep-green card is the one saturated block on the screen.
2
Gamification at a glance. Points balance + mastery count from PointsTransaction and UserLessonProgress. Tapping opens Badges & achievements.
3
Continue learning. Single resume card targeting the learner's furthest in-progress lesson level — the main drop-off recovery surface.
4
Today feed. Meetings, tasks and open votes merged into one chronological list. Each row deep-links into its module. Bottom tabs map to the five UI module groups.

Governance · 04

Proposal list

Card-based feed of proposals for the learner's governance unit, filterable by status. Matches the built GovernanceService ViewState pattern — loading, empty, error and content states all designed.

Spec §8 — Governance · Epic 2 · built: proposal-list component
09:41RCL Hub · PWA
Proposals
1
Open · 3ClosedMine
2
Closes today 17:00

Water station at sports field

Install a filtered water point near the netball courts.

62 of 91 voted
Closes Mon 16 Jun

Recycling bins per classroom

Partner with EnviroClub to place sorting bins in every Grade 8–12 classroom.

28 voted
Draft · only visible to you

Library Saturday hours

Open the library 09:00–12:00 on Saturdays during exams.

Draft
3
mobile · learner + RCL member
1
Status filters. Open / Closed / Mine. Counts come from the same query, no extra round trips.
2
Proposal card. Deadline eyebrow, title, one-line summary, turnout meter. Turnout shown only while voting is open — results stay hidden until close to avoid bandwagon voting.
3
Role gating. The + create action renders only for roles with proposal rights; RLS enforces the same rule server-side.

Governance · 05

Proposal detail & vote

Full proposal with a single, prominent ballot. One vote per learner enforced by unique constraint; the cast state replaces the ballot entirely so the learner always knows their vote landed.

Epic 2 · built: proposal-detail component · unique (proposal_id, user_id)
09:41RCL Hub · PWA
Proposal
Proposed by RCL Sports Committee · 9 Jun

Water station at sports field

Install a filtered water point near the netball courts so learners don't miss practice walking to the tuck shop taps. Estimated cost R4,800 from the SGB maintenance line.

1
OpenCloses 17:00 todayQuorum 50%
2
Your vote
Support this proposal
Do not support
Abstain
Cast vote

You can vote once. Results show when voting closes.

3
mobile · ballot state (pre-vote)
1
Decision metadata. Status, deadline, quorum rule — the governance literacy is in the UI, not hidden in admin config.
2
Ballot. Three options, radio semantics, one clay action. After casting, this card becomes a confirmation ("You voted · 12 Jun 14:02") — vote choice is never re-displayed to keep ballots private on shared devices.
3
Traceability. Casting writes the vote plus an ActivityLog entry — feeds participation metrics in M&E without extra instrumentation.

Governance · 06

Submit proposal

Typed reactive form, deliberately short — title, category, motivation, optional budget. Drafts save locally so a learner on patchy data never loses a half-written proposal.

Epic 2 · built: submit-proposal component
09:41RCL Hub · PWA
New proposal
Library Saturday hours
Academic support
1
Why does this matter, and who benefits?

Keep it short — your RCL reads this aloud in the meeting.

R 0.00
2
Save draft
Submit for review
mobile · learner with proposal rights
1
Guided writing. Placeholder + hint coach a first-time proposer. Field-level validation matches the auth pattern (aria-invalid, inline alert).
2
Two exits. Save draft (private) vs submit (enters moderation/agenda flow). Submitted proposals award participation points via PointsRule once approved.

Governance · 07

Meetings & attendance

Upcoming meetings with RSVP, agenda preview and verified attendance — attendance is an M&E signal and a points event, so verification is explicit, not assumed.

Spec §13 — attendance verification · Epic 2
09:41RCL Hub · PWA
Meetings
📅
1
Today · 14:30 · School hall

RCL general meeting

Agenda: water station vote result · civvies day · term 3 plan

Going
Can't make it
Wed 18 Jun · 13:00 · Room 12

Sports committee

Committee members only · 2 agenda items

Committee
2
Past

RCL general meeting

29 May · Attendance verified by Ms Dlamini

✓ +20 pts

Exec planning

22 May · You were absent (apology recorded)

Apology
mobile · RCL member
1
RSVP. Going / can't make it writes an RSVP record. The teacher convener sees the count when preparing the venue.
2
Verified attendance. A teacher/coordinator confirms who was present after the meeting; only verified attendance pays points and counts in participation reporting — closing the gamification fraud loophole.

Governance · 08

Tasks

Lightweight task board scoped to the learner's memberships. Assignments come out of meetings and committees; completion is reviewable so task points stay credible.

Epic 2 · Task / TaskAssignment tables
09:41RCL Hub · PWA
My tasks
Open · 2Done · 7Committee
1
Due tomorrow

Poster for civvies day

From: RCL general meeting · assigned by S. Khumalo

Mark done
Add note
Due Fri 20 Jun

Collect recycling quotes

From: Sports committee · shared with L. Pule

2
Awaiting review

Term 2 suggestion box summary

Submitted Tue · waiting for Ms Dlamini to confirm

Pending
mobile · RCL member
1
Task provenance. Every task names its source meeting/committee and assigner — accountability is legible to a 14-year-old.
2
Done ≠ verified. "Mark done" moves the task to a review state; the convener confirms before points land. Same verification grammar as attendance and submissions.

Learning · 09 · NEW MODULE

Learning hub

Entry point to Epic 3. Each lesson/theme card carries the three-level mastery rail — Knowledge → Application → Paying Forward → Badge — so the progression model is visible before a learner even opens a lesson. This rail is the signature element of the module and repeats on every learning screen.

Spec §7.2–7.3, §8 — Learning hub · Epic 3
09:41RCL Hub · PWA
Learning
🔎
1

Your mastery journey

3 of 8 themes mastered · 2 badges this term

3/8
2
In progress

Female Leadership

Level 2
L1
Knowledge
L2
Application
L3
Paying
forward
🏅
Badge
In progress

Governance Ethics

Level 1
L1
Knowledge
L2
Application
L3
Paying
forward
🏅
Badge
3
Mastered · 14 May

Public Speaking

🏅 Badge earned
L1
Knowledge
L2
Application
L3
Paying
forward
🏅
Badge

Conflict Resolution

Not started · 12 sections · ±40 min reading

Start
mobile · learner · UserLessonProgress states
1
Mastery summary. Headline ratio from uvwLessonMastery. "Mastered" means Level 3 approved — never just quiz completion.
2
The mastery rail. Four stops — L1 quiz, L2 application, L3 paying forward, badge. Solid = done, clay ring = current, dashed gold = badge pending. The same component renders in lesson detail, results, and the reviewer queue, so learners, teachers and officials all read progress in one visual language.
3
States covered. In progress, mastered, and not started in one list — sorted current-first to fight drop-off.

Learning · 10 · NEW MODULE

Lesson detail

Theme content split into short sections (cognitive accessibility), with the mastery rail pinned up top and the three assessment levels listed with their evidence type, review type and points weighting — exactly the spec's traceability table, rendered for a learner.

Spec §7.3 table — evidence / review / weighting per level
09:41RCL Hub · PWA
Female Leadership
🔊
1
L1
Knowledge
L2
Application
L3
Paying
forward
🏅
Badge
2
Sections · 4 of 6 read

1 · Women who led before us

Read · 5 min · audio available

5 · Leading in your school

6 min · audio available

Next
3
Assessments

Level 1 · Quiz

10 questions from the pool · auto-marked · low points

Passed 8/10

Level 2 · Application

Written or PDF reflection · reviewed by a teacher · medium points

Submit

Level 3 · Paying forward

Evidence of a real initiative · verified · highest points + badge

Locked
mobile · L1 passed, L2 unlocked
1
Rail + text-to-speech. The 🔊 control reads the active section aloud — accessibility requirement, also serves low-literacy contexts. Captions/transcripts apply to any embedded media.
2
Short sections. 5–6 minute chunks, progress tracked per section, content cached for offline reading after first load (low-data principle).
3
Sequential unlock. Levels unlock strictly in order; each card states evidence type, review type and points weighting in plain words so the rules are never a surprise.

Learning · 11 · NEW MODULE

Level 1 — Knowledge quiz

Randomised questions drawn from the QuestionBank pool; the exact served set is persisted to UserAssessmentQuestion before the learner answers — traceability is written first, scored second.

Spec §7.3 L1 · randomised pool · auto-scored · served questions stored
09:41RCL Hub · PWA
Quiz · Governance Ethics
1

Question 4 of 10

An RCL member is offered tuck-shop vouchers to vote a certain way on a proposal. What should they do?

2
Accept — it doesn't change the result
Decline and declare it to the RCL convener
Accept but vote how they planned to
Resign from the RCL immediately
3
Next question

Your answers save as you go — safe to lose signal.

mobile · full-screen assessment mode (no tab bar)
1
Familiar chrome. Same progress + count pattern as the registration wizard — one wizard grammar across the product.
2
Randomised pool. Each attempt serves a different subset/order; the served set is stored per learner per attempt for review and dispute handling.
3
Resilient by default. Per-question persistence: a dropped connection on question 7 resumes at question 7. Pass mark configurable per lesson; passing pays low-weight points and unlocks Level 2.

Learning · 12 · NEW MODULE

Level 2 — Application submission

Written or PDF reflection requiring human review. The file itself goes to cloud storage; the database stores the SubmissionAsset path and metadata only. Status is always visible after submission.

Spec §7.3 L2 · human review · SubmissionAsset · originality check optional
09:41RCL Hub · PWA
Level 2 · Application
Female Leadership · medium points

Write about a woman leader in your community and one practice of hers you can use in your RCL role. 300–500 words, or upload a PDF.

1
Start typing your reflection…
— or —
2
Upload a PDFMax 5 MB · stays on your profile
Voice note, photo or other formats? Ask your teacher about alternative submissions.
3
Submit for review

Reviewed by your teacher · you'll get a notification

mobile · submission form
1
Write or upload. In-app text is the low-data default; PDF covers homework done elsewhere. Draft autosaves locally.
2
Alternative submissions. Disability-inclusion hook: voice note / photo / link routes can be enabled per learner as a reasonable accommodation (spec §9), surfaced here rather than buried in settings.
3
Review contract. Submission creates a pending UserAssessmentReview; learner sees Pending → Approved / Needs changes with reviewer feedback. Approval pays medium points and unlocks Level 3.

Learning · 13 · NEW MODULE

Level 3 — Paying forward

The leadership step: evidence of a real school or community initiative — audio, video, photos or links — verified by an authorised reviewer. This is what earns mastery and the badge, so the screen treats it with weight.

Spec §7.3 L3 · verified evidence · highest points · gateway to badge
09:41RCL Hub · PWA
Level 3 · Paying forward
What counts as evidence?

Show the lesson in action: an initiative you ran or helped run at school or in your community. A mentor circle, a talk, a clean-up, a campaign.

1
Started a Grade 8 girls' debate circle, 6 sessions this term…
2
Attach evidence
📷 Photos
2 added
🎙 Voice note
Record
▶ Video link
YouTube URL
🔗 Other link
Approved sites
3
Ms Dlamini — Teacher liaison
Submit for verification

Verified evidence earns the highest points and your mastery badge.

mobile · evidence composer
1
Description first. The narrative is mandatory; media supports it. Keeps the bar reachable for learners without smartphone storage to spare.
2
Evidence types. Photos and voice notes upload to cloud storage (path stored in SubmissionAsset); video stays a moderated YouTube link per spec §10 — no native video hosting in Phase 1.
3
Named verifier. Learner nominates the authorised reviewer (teacher / coordinator / TO / official). Verification record stores who approved, when, and the outcome — the full traceability chain of spec §7.3.

Learning · 14 · NEW MODULE

Results & mastery

The payoff screen. Level 3 approved → lesson marked mastered → badge awarded → points and activity logs updated — the spec's progression sentence, rendered as a moment worth screenshotting (and showcasing at the 2026 Summit).

Spec §7.3 — badge = verified leadership mastery · KPI: Summit showcase
09:41RCL Hub · PWA
1
🏅
Lesson mastered
Female Leadership · verified 12 June 2026
L1
Knowledge
L2
Application
L3
Paying
forward
🏅
Badge
2

Points earned

Quiz +30 · Application +80 · Paying forward +150

+260

Verified by

Ms Dlamini · Teacher liaison · "Outstanding initiative, Thandi."

3
Share as story
Next theme
mobile · mastery awarded state
1
Badge moment. Gold treatment is reserved exclusively for mastery — it appears nowhere else, so it stays meaningful.
2
Itemised points. Low / medium / high weighting shown per level — the incentive design teaches itself. Reviewer identity and comment close the trust loop.
3
Storytelling bridge. "Share as story" drafts a LearnerStory from this mastery (enters moderation) — feeding the media-relations KPI directly from the proudest moment in the journey.

Learning · 15 · NEW MODULE

Reviewer queue — teacher / coordinator

The human-review side of Levels 2 and 3. Desktop-first surface for teachers, coordinators and TOs: pending submissions, evidence preview, approve / request changes with a mandatory comment. Every decision writes a UserAssessmentReview record.

Spec §7.3 traceability · §13 "were activities verified?"
rclhub.org.za/review
📥 Review queue 7
✓ Reviewed
👥 My learners
📊 Class progress
1
Pending review · 7
Level 2 · 4Level 3 · 3
LearnerLessonLevelTypeWaiting
TMThandi M. · Gr 10
Female LeadershipL3Photos + voice note1 dayOpen
SPSipho P. · Gr 11
Governance EthicsL2PDF · 420 words2 daysOpen
LNLerato N. · Gr 9
Public SpeakingL3YouTube link3 days ⚠Open
2
Reviewing · Thandi M. · Female Leadership · Level 3

"Started a Grade 8 girls' debate circle, 6 sessions this term…" · 📷 2 photos · 🎙 1:40 voice note

Outstanding initiative, Thandi.
Approve — award masteryRequest changes3
desktop · teacher / coordinator / TO role
1
Queue hygiene. Sorted oldest-first, ageing flagged at 3 days — review latency is itself an M&E drop-off cause, so it's visible.
2
Inline evidence. Text, file previews and links open without leaving the queue. L3 approvals require the reviewer to hold an authorised role for that learner's governance unit (RBAC + RLS).
3
Decision = record. Approve/changes + comment writes reviewer id, timestamp and outcome; approval triggers points, badge, ActivityLog and the learner notification in one transaction.

Engagement · 16 · NEW MODULE

Badges & achievements

The learner's recognition shelf: mastery badges (earned only via Level 3), participation milestones, and the points ledger. Locked badges stay visible — aspiration is the point.

Epic 4 · Badge / UserBadge / PointsTransaction
09:41RCL Hub · PWA
My achievements
1,240
Points
#4
In your school
1
Mastery badges
🗣
Public Speaking
14 May
🤝
Teamwork
28 Apr
Female Leadership
At Level 2
2
Recent points

Meeting attendance verified

RCL general · 29 May

+20

Level 2 approved

Governance Ethics

+80
mobile · learner
1
Badge grid. Earned badges in gold; locked ones greyed with the current blocking level named — turning the shelf into a to-do list.
2
Points ledger. Every transaction names its verified source event. Nothing here is self-reported, so the leaderboard stays defensible to teachers and officials.

Engagement · 17 · NEW MODULE

Leaderboard

School, district, provincial and national tiers riding the GovernanceUnit hierarchy. Designed to motivate without humiliating: top performers celebrated, everyone else sees their own position privately framed.

Epic 4 · uvwLeaderboard · KPI: Summit national rankings
09:41RCL Hub · PWA
Leaderboard
1
My schoolDistrictProvinceNational
1SK

S. Khumalo · Gr 12

4 masteries · 96% attendance

2,310
2LP

L. Pule · Gr 11

3 masteries

1,895
3BN

B. Nkosi · Gr 10

3 masteries

1,610
2
4TM

You

370 points to #3 — one Level 3 away

1,240
mobile · school tier
1
Hierarchy tabs. Same component, four scopes — school → national resolves through ParentGovernanceUnitID, no separate queries per tier to design.
2
"You" row. Pinned with a concrete next step ("one Level 3 away") instead of raw rank shame. Below top 10, only the learner's own neighbourhood of ranks is shown.

Engagement · 18 · NEW MODULE

Quote gallery

Curated, moderated quote cards — the Ubuntu storytelling layer. Cards are designed share-ready for communications use (Summit, social), which is the media-relations KPI in product form.

KPI: media relations & branding · quote gallery · featured content
09:41RCL Hub · PWA
Quotes
1
"Umuntu ngumuntu ngabantu — I am because we are."
UBUNTU PROVERB · FEATURED THIS WEEK
"Leading my RCL taught me that listening is half the job."
LERATO N. · GR 9 · EASTERN CAPE
2
"Education is the most powerful weapon which you can use to change the world."
NELSON MANDELA
⇪ Share card
Suggest a quote
mobile · gallery feed
1
Two voices. Featured quotes (deep green card) and learner quotes (light card, attributed by first name + province only — minor-safe attribution).
2
Suggest → moderate. Learner suggestions enter the moderation queue (screen 25); nothing publishes unreviewed. Share renders the card as an image for WhatsApp-class sharing.

Engagement · 19 · NEW MODULE

Learner stories & blog

Approved learner stories, achievements and video links in a low-bandwidth feed. Stories can be born straight from a mastery moment (screen 14) and curated nationally for the Summit.

LearnerStory · moderated media links · KPI: storytelling & visibility
09:41RCL Hub · PWA
Stories
1
★ Featured · Limpopo

The debate circle that found 12 new voices

How Thandi's Grade 8 girls' debate circle grew from a Level 3 project into a weekly fixture…

Female Leadership3 min read
2
▶ Video · YouTube

Cleaning the Jukskei: RCL eco week

Captions available · transcript attached

Gauteng · 6 Jun

From suggestion box to water station

A proposal, a vote, and three weeks of follow-through at Phomolong Secondary.

mobile · story feed
1
Story card. Text-first, image optional and lazy-loaded — readable on 2G. The lesson tag links the story back to the learning theme that produced it.
2
Video = link, not file. Moderated YouTube embeds with captions/transcripts required before approval (hearing accessibility, spec §9). The ✎ composer submits to moderation, never publishes directly.

Accessibility · 20 · NEW MODULE

Accessibility & language settings

Epic 6 as a first-class surface, not a footnote: language, text-to-speech, captions, text size, simplified navigation and data saver. Every control here changes behaviour platform-wide and persists to the profile.

Spec §9 · Epic 6 · en / zu / nso via ngx-translate
09:41RCL Hub · PWA
Accessibility
1
Language
EnglishisiZuluSepedi
2

Read aloud

Text-to-speech on lessons and stories

On

Captions & transcripts

Always show on video and audio

On

Larger text

Scales the whole app, reflows — no zooming

Off
3

Simplified mode

Fewer items per screen, plainer wording, bigger targets

Off

Data saver

No images on feeds, download lessons on Wi-Fi only

On
mobile · settings · persists to profile
1
Language. Switches runtime via ngx-translate — no reload, no per-locale builds. Same three options offered pre-login on screen 01.
2
Sensory supports. TTS and captions defaults; baseline WCAG 2.1 AA (contrast, focus, labels) is enforced in the codebase regardless of these toggles.
3
Cognitive + data. Simplified mode reduces density and vocabulary; data saver implements the low-bandwidth principle as a user choice, not just an engineering one.

Analytics & Reporting · 21

School analytics

The teacher/principal view of one school: participation, mastery, governance throughput and drop-off — each chart answering one of the M&E questions in spec §13.

Epic 5 · uvwParticipationSummary · reporting schema
rclhub.org.za/analytics/school
🏫 My school
👥 Learners
📘 Learning
🗳 Governance
⇩ Exports
Phomolong Secondary · Term 2
1
312
Active learners
71%
Weekly participation
94
Lessons mastered
86%
Voting turnout
2
Mastery funnel — where learners drop off
StartedL1 passedL2 submittedL2 approvedL3 verified

Bottleneck: Level 2 review latency

Median 4.2 days from submission to review · 11 items older than a week

Action
desktop · teacher / principal role
1
Four vitals. Activity, participation, learning and governance — one number each. Everything else is a drill-down, not a wall of charts.
2
Drop-off funnel. The five-stage mastery funnel makes "where are learners dropping off?" answerable at a glance — the clay bar marks the worst conversion, paired with a named, actionable bottleneck below.

Analytics & Reporting · 22

Provincial dashboard

District-level comparison within a province for DBE provincial officials — adoption, engagement and mastery rolled up through the GovernanceUnit hierarchy.

Epic 5 · GovernanceUnit recursion · DBE official role
rclhub.org.za/analytics/province/gp
🗺 Gauteng
🏫 Districts
📘 Learning
⇩ Exports
Gauteng · 15 districts · 2,067 schools onboarded
1
68%
Schools active
41,208
Active learners
6,114
Masteries this term
2
DistrictSchools activeParticipationMasteriesTrend
Johannesburg North184 / 20176%1,043
Tshwane South149 / 17871%887
Sedibeng East61 / 12244%203
desktop · provincial DBE official
1
Adoption first. Provincial officials care about coverage before depth — schools active leads the row.
2
District table. Sortable, with trend chips; a flagged district (red) drills into its school list to find non-adopting schools by EMIS code.

Analytics & Reporting · 23

National dashboard & M&E exports

The Summit screen: national reach, provincial rankings, showcase-ready achievement highlights, and the export library UNICEF/DBE M&E teams pull their evidence from.

KPI: National Learner Leadership Summit 2026 · M&E exports
rclhub.org.za/analytics/national
🇿🇦 National
🗺 Provinces
★ Showcase
⇩ M&E exports
1
14,612
Schools onboarded
214k
Active learners
38,902
Lessons mastered
9,150
Initiatives verified
Provincial participation ranking
GPWCKZNECLPMPFSNWNC
2

M&E export library

Participation summary · Lesson mastery · Verified initiatives · Attendance · CSV / XLSX, term or custom range

Export
desktop · national / UNICEF stakeholder
1
Verified initiatives as a headline national number — Level 3 evidence is the platform's most defensible impact stat, so it sits beside reach.
2
Exports, not screenshots. Named datasets from the reporting views, scoped to the requester's role; every export is itself logged (auditability principle).

Administration · 24

Users & permissions

Admin management of accounts, roles and memberships across the governance hierarchy. UI is API/RLS-mediated — admins never touch the database directly (spec §11).

Spec §11 RBAC · UserAccount / Membership / Position
rclhub.org.za/admin/users
👥 Users
🛡 Roles
🏫 Schools
🧹 Moderation
⚙ Configuration
Search name, email or EMIS code…
Invite user
1
UserTypeGovernance unitPositionStatus
TMThandi Mokoena
LearnerPhomolong Sec.RCL SecretaryActiveEdit
PDMs P. Dlamini
TeacherPhomolong Sec.Teacher liaisonActiveEdit
KMK. Mahlangu
OfficialJHB North districtDistrict coordinatorInvitedResend
2
Membership history — Thandi Mokoena

2026 · RCL Secretary, Phomolong Sec.  ·  2025 · Class rep, Gr 9B — role history preserved for progression tracking, never overwritten.

desktop · school / district admin
1
Scoped admin. A school admin sees their school; district sees their schools — same screen, RLS narrows the data. Bulk invite by CSV for onboarding waves of schools.
2
Membership as history. Positions are time-bound Membership rows, not a mutable role field — leadership progression becomes reportable (a Summit storyline).

Administration · 25

Content moderation & configuration

Every public-facing artifact — stories, quotes, video links — passes through this queue before learners or the public see it. Configuration covers points rules, badge definitions and quiz pass marks.

Spec §8 Administration · moderated submissions · PointsRule
rclhub.org.za/admin/moderation
👥 Users
🛡 Roles
🏫 Schools
🧹 Moderation 5
⚙ Configuration
1
Awaiting moderation · 5
Stories · 2Quotes · 2Video links · 1
ItemTypeSubmitted bySchool
The debate circle that found 12 new voicesStoryThandi M.Phomolong Sec.Review
"Listening is half the job."QuoteLerato N.Mthatha HighReview
youtube.com/watch?v=… · eco weekVideo linkSipho P.Phomolong Sec.Review
2
Configuration snapshot

Points — L1: 30 · L2: 80 · L3: 150 · verified attendance: 20  |  Quiz pass mark: 70%  |  Badges: 8 defined  |  Changes versioned + logged.

desktop · national content admin
1
Safeguarding gate. Minor-generated content never auto-publishes. Reviewers check identity exposure (full names, faces, locations) before approving; rejections return with a reason, never silently.
2
Rules as config. Points weightings, pass marks and badge definitions are admin-editable data (PointsRule), not code — and every change is logged to EntityChangeLog so historical points stay explainable.

Notifications · 26

Alerts & notifications

The in-app inbox behind the bell on every screen: reminders, activity alerts and engagement nudges grouped by recency, with per-category preferences. Phase 1 is in-app only — the same notification records are the feed a future push channel will consume, so nothing here gets rebuilt for native (spec §1.2 future-ready).

Spec §6 — Notifications: in-app reminders, activity alerts, future push, engagement nudges
09:41RCL Hub · PWA
Notifications
1
All · 6GovernanceLearningRecognition
Today
2
Recognition

Level 3 verified — badge earned 🏅

Ms Dlamini approved your Female Leadership evidence · tap to see your result

Governance

Voting closes in 2 hours

Water station at sports field · you haven't voted yet

Governance

Task due tomorrow

Poster for civvies day · from RCL general meeting

3
Earlier this week
Learning

Your Level 2 was reviewed

Governance Ethics · approved · +80 points

Nudge

Pick up where you left off?

Conflict Resolution has been waiting 5 days — section 1 is a 5-min read

Meetings

RSVP reminder

RCL general meeting today 14:30 · you said you're going

mobile · in-app inbox · unread state
09:41RCL Hub · PWA
Notification settings
4
Notify me about

Voting deadlines

Open proposals closing within 24 hours

On

Tasks & meetings

Due dates, RSVPs and agenda changes

On

Review outcomes

Level 2 and 3 decisions on your submissions

On

Points & badges

Recognition and leaderboard movement

On
5

Nudges

Gentle reminders for unfinished lessons

Off

Notifications appear in the app only. Push notifications to your phone are planned for a future release.

mobile · per-category preferences
1
Category filters. Governance, Learning and Recognition mirror the notification source modules — same vocabulary as the tab bar, nothing new to learn.
2
Actionable rows. Every notification deep-links to its subject (result screen, ballot, task). Unread = clay dot; opening the target marks it read. Badge count on the bell is capped at 9+.
3
Nudges are polite. Engagement nudges (drop-off recovery, spec §6) are rate-limited to one per week per lesson and individually dismissible — motivation, not nagging a teenager.
4
Preferences per category persist to a NotificationPreference record; review outcomes default on because they gate progression. The settings double as the consent surface when push arrives later.
5
Phase honesty. The footnote states plainly that Phase 1 is in-app only — keeps the stakeholder demo from over-promising push.

Approvals · 27

Approvals dashboard — teacher / convener

The single landing surface for every pending decision a staff role owes the platform: proposal approvals, attendance verification, task confirmations — with the learning review queue (screen 15) and content moderation (screen 25) as specialised queues launched from here. Every learner-side "submit for review" in this deck terminates on this screen; review latency is the platform's biggest drop-off risk, so it all lives in one place with one badge count.

Spec §13 "were activities verified?" · §3 verified behaviour → points · closes screens 06/07/08 loops
rclhub.org.za/approvals
✓ Approvals 14
🗳 Proposals · 2
👥 Attendance · 1
📋 Tasks · 4
📘 Learning reviews · 7
🧹 Moderation
1
14
Pending total
2
Older than 3 days
1.8d
Median turnaround
31
Decided this term
2
Proposals awaiting approval · before they open for voting
TM
Library Saturday hours

Thandi M. · Academic support · submitted today

Approve & open voteChanges
BN
Tuck shop healthy menu trial

B. Nkosi · Wellbeing · 2 days · ⚠ needs budget detail

Approve & open voteChanges
3
Attendance to verify · RCL general meeting · today 14:30
✓ Thandi M.✓ S. Khumalo✓ L. PuleB. Nkosi — absentLerato N. — apology
Confirm register · pays +20 each28 RSVP'd · 24 marked present
4
Task completions to confirm
Term 2 suggestion box summary

Thandi M. · marked done Tue · note + photo attached

ConfirmReopen
desktop · teacher liaison / convener · counts scoped by role + governance unit
1
Latency vitals. The dashboard measures itself: pending, ageing, median turnaround. Same ageing logic as the learning queue — anything older than 3 days flags, because slow review is where learner engagement dies.
2
Proposal gate. Approve publishes the proposal and opens voting; Changes returns it to the learner's drafts with a required comment. This is the missing step between screen 06's "Submit for review" and screen 04's open list.
3
Register-style verification. RSVP list pre-fills the register; convener toggles present/absent/apology and confirms once — one action writes 28 attendance records, the points transactions and the ActivityLog entries. This is the verification screen 07 referenced.
4
One grammar everywhere. Confirm/Reopen on tasks, Approve/Changes on proposals, Approve/Request changes on learning — every decision is two buttons plus a comment, and every decision writes who, when, outcome. Learning reviews and moderation open their specialised queues (screens 15 and 25) from the left nav, sharing this badge count.

Content authoring · 28

Content studio — lessons, question banks, badges

Where the national content team builds what learners consume: lesson themes and sections, the question pools behind Level 1 quizzes, assessment instructions and points per level, badge definitions and featured quotes. Everything authored here is draft-first — nothing reaches 20,000 schools without an explicit publish.

Feeds Lesson / LessonSection / QuestionBank / AssessmentLevel / Badge · spec §7.2, §8 system configuration
rclhub.org.za/admin/content/lessons/female-leadership
📘 Lessons · 8
❓ Question banks
🏅 Badge definitions
❝ Featured quotes
🌐 Translations
1
Female Leadership
Draft v3Published v2 livePublish v3
6
Sections
24
Questions in pool
10
Served per quiz
70%
Pass mark
2
Question bank · 24 of minimum 30 for this pool size ⚠
#QuestionCorrectStatus
Q12An RCL member is offered vouchers to vote a certain way…BLiveEdit
Q23Which is an example of servant leadership at school?CDraftEdit
Q24Who chairs an RCL meeting when the chairperson is absent?ADraftEdit
+ Add question⇧ Import CSV / XLSX3Template: question · option A–D · correct · language
4
Assessment levels & badge

L1 Quiz — 10 of 24 served · 30 pts  |  L2 Application — prompt editable · 80 pts  |  L3 Paying forward — evidence guidance editable · 150 pts  |  Badge: ♀ "Female Leadership" · awarded on L3 approval

en ✓zu ✓nso — 2 sections missing
desktop · national content admin (AYM)
1
Draft / publish versioning. Edits accumulate in a draft version while the published one stays live — learners mid-attempt are never pulled out from under. Publishing snapshots the version; past quiz attempts keep pointing at the question version they were served (protects the §7.3 traceability chain).
2
Pool health. The bank warns when the pool is too small relative to the served count (rule of thumb: pool ≥ 3× served), because a thin pool defeats randomisation — learners just share answers.
3
Bulk import. CSV/XLSX upload with a fixed template for question, four options, correct answer and language — realistic for a content team migrating existing AYM workbook material. Import lands as Draft, validated row-by-row with a rejects report.
4
Language completeness gate. Per-language status chips; publishing is blocked while a required language is incomplete, so a Sepedi learner never hits an English-only quiz mid-progression. Translations tab manages the per-language content side-by-side.