Have a password?

Unlocks the client-named version of every project.

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.

Re-enacted: a student's reflection beside the mentor's review queue with an authenticated post

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)
Re-enacted: a student's photo evidence and three-part reflection, the submit gate, and the mentor authenticating it into an append-only trail

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
← All work