Experience-to-Verified Portfolio
Education services · UK & GCC · 16+ students
Turned an education company's paper reflection method into a mentor-verified growth record a student owns and can share.

Context
Schools record grades; they do not record growth. The company's reflection method produced exactly that evidence, but only in the room and only on paper. Digitising it the obvious way — a feed of photos — would have thrown away the part that mattered, and a platform for teenagers has to answer safeguarding before it answers anything else.
- Worksheets did not compound: a year of reflection could not be seen as a pattern
- Nothing a student did outside school counted anywhere an admissions officer could trust
- A photo feed without reflection is social media; with reflection but no verification it is a diary
- Safeguarding rules enforced in an interface are one bug away from not being enforced
Outcome
54row-level security policies
- A student's experiences became a verified record rather than a memory
- Mentors review from a queue instead of chasing worksheets
- PLACEHOLDER — add a measured figure here (e.g. students onboarded in the first pilot, posts authenticated per term)
What we built
The reflection gate. A student uploads evidence of an experience — the photo is re-encoded in the browser so location and device data are stripped before it leaves the device — and cannot submit until three questions are answered: what did you do, what did you learn, what changed. A fourth step offers four deeper prompts. Growth is recorded as before-and-now text, never as a score.
The verification loop. A mentor sees a review queue and can authenticate a post or send it back; every action appends to a trail that is never edited. Only authenticated posts count towards a profile, tagged across nine growth territories.
Portfolios and the public page. A student curates named portfolios and shares them by revocable token link. The public page goes through a single security-definer function and is set to noindex, so a shared link shows exactly what was chosen and nothing else.
Safeguarding in the database. Four roles — student, mentor, school admin, safeguarding lead — with 54 row-level security policies deciding who can read what. A 'get help' sheet bypasses the mentor entirely; reports route to the safeguarding lead; each upload carries its own photo-consent answer; a student can export their data or delete their account from one page.
A written principles document — ten commandments, five red lines, an eight-question safety test — that the build is audited against, plus a design system with a contrast checker in the test suite.
What stuck
- Reflection is a gate, not a field: nothing enters the record without it
- Verification is a mentor's act, recorded once and never rewritten
- The rules that protect a teenager live in row-level security, where the interface cannot reach them
Snapshot
- Client profile
- Education company working with schools in the UK and the Gulf
- Engagement
- Catalyst — platform, then a product rebuild after the 16+ pivot
- Timeline
- Several academic terms; rebuild in seven phases, August 2026
- Scale
- 10 tables, 54 RLS policies, 14 database functions, 9 growth territories, 4 roles
- Scope
- Evidence capture, reflection gate, mentor review, shareable portfolios, safeguarding, data export