Certificates & credentials.
A certificate is the most forgeable document a school produces — a sheet of paper with a seal and a signature. YESS makes it the opposite: designed once in a visual studio, issued by the thousand from a single rule, numbered per category, and stamped with a QR code that anyone on earth can scan to confirm it is real and not revoked. Design once, issue at scale, verify forever.
- 15design elements
- 21certificate types
- 4data tables
- ≈14 minto read
Prologue
The most forgeable document, made tamper-evident#
Every school issues certificates — honour rolls, diplomas, long-service awards, training completions. Almost every school issues them the same way: a Word template, a printer, a signature, and a hope that nobody ever needs to check whether the one in front of them is genuine.
YESS rebuilds the whole pipeline around a single idea: the certificate is a record in a database first, and a sheet of paper second. You design the look once in a canvas studio. You define the rules that decide who earns one. The platform issues them — automatically when a report card is published, or in bulk when you press a button — with a unique, per-category number. And every certificate carries a QR code that resolves to a public verdict page: verified, revoked, or not found. No login. No phone call to the school.
Design once. Issue at scale. Verify forever.
Chapter one
The certificates hub#
Everything starts at /dashboard/certificates. Two KPI rails sit at the top: the first counts issued certificates by category — academic, behavior, attendance, training, service, general — and the second totals all certificates, students, staff, and the share that were auto-issued. Beneath them are three tabs.
Issued lists every certificate the school has granted, filterable by category and by recipient (all / student / staff). Each card shows the title, an auto-issued or verified badge, the recipient, the certificate number, the issue date, a download/print link, and — when the certificate is not revoked — a public-verify link. Rules holds the auto-issue policies. Templates holds the canvas designs, each a doorway into the studio.
Across the top of the hub sits the bulk-issue toolbar (shown to staff with the certificates.manage permission): Honor Roll, Perfect Attendance, Service Years, and a link to the diplomas backfill. One press of any of these issues a batch of certificates from live academic, attendance, or HR data — the subject of chapter four.
Chapter two
Designing in the studio#
From the Templates tab, New template captures a name, a category, a recipient type (student or staff), an optional certificate type, and a letterhead, then drops you into the canvas studio at /dashboard/certificates/studio/[id]. The studio is three panes — a toolbox, the canvas, and a properties panel — with undo/redo (50 steps deep), zoom, snap-to-grid, and a page you can set to A4 landscape, A4 portrait, or US Letter.
You build the certificate from fifteen element types, grouped in the toolbox: the star elements (recipient name, award title, award body, signature line); the decorative ones (seal, ribbon, border frame, divider, watermark); identity (school crest, free text, image); and verification (QR verify, date block, certificate number). Each element has geometry in millimetres, typography, and type-specific options — a seal's motif (star, wreath, ribbon-banner, shield), a border frame's style (classic, double-rule, kente, ornate, minimal), and so on.
The text on a certificate is written with tokens — {{recipient_name}}, {{award_title}}, {{school_name}}, {{issued_date}}, {{certificate_number}}, the principal and director names, the academic year, and more. In the studio they resolve to sample values so you can see the layout; at print time they resolve to the real recipient's data. Six starter skeletons — Classic Gold, Modern Minimal, Kente Heritage, Royal Plum, Service Anniversary, and Training Completion — give you a designed starting point in one click.
Chapter three
Rules that issue themselves#
The Rules tab is where a certificate stops being something a registrar remembers to print and becomes something the platform issues on its own. A rule carries a name, a category, a recipient type, a certificate type, a designed template, a condition (stored as JSON — for example {"min_average": 80} or {"max_absences": 0}), and a trigger.
The trigger is the moment the rule fires: on_term_close, on_year_close, on_attendance_threshold, on_training_complete, on_anniversary, or manual. When a report card is published, YESS walks the active academic rules: any student whose average clears the rule's threshold is issued the rule's certificate automatically, through a database trigger. When a training enrolment is marked complete, the training rule fires. When a student's status flips to graduated, a diploma is issued. The registrar presses nothing.
Chapter four
Issuing by the thousand#
Some certificates are issued in a deliberate batch rather than by an automatic trigger, and the hub's toolbar handles those.
Honor Roll scans the published report cards for a term and issues a certificate to every student whose average clears the threshold (80% by default). Perfect Attendance scans the attendance records within the term's dates and issues to every student at or under the absence limit. Service Years reads staff hire dates and issues anniversary certificates at the milestone years — five, ten, fifteen and up — promoting the longest tenures to a long-service award. Every batch is idempotent and writes each certificate with auto_issued set and a record of the event that triggered it.
Diplomas have their own screen at /dashboard/certificates/issue-diplomas. It shows two numbers — graduates still without a diploma, and diplomas already issued — and a year picker. Issue diplomas backfills a diploma for every graduated student in that year who does not already have one. The same diploma is issued automatically the instant a student's status becomes graduated; this screen is the catch-up for a cohort graduated before the school came onto YESS.
Chapter five
The number on the certificate#
Every certificate carries a number that is unique within the school and allocated atomically per category and year. The format is a category prefix, the year, and a running sequence — ACA-2026-00001 for academic, BHV for behaviour, ATT for attendance, TRN for training, SVC for service, and a general prefix for the rest. That number is the certificate's identity: it is printed on the sheet, encoded in the QR code, and is the key the public verification page looks up.
Under the number sits the record itself. A certificate knows its title, its certificate type (one of twenty-one — from honor_roll and graduation to perfect_attendance, service_anniversary and training_completion), its category, its recipient (a student or a staff member — never both), the design it was rendered from, whether it was auto-issued, and whether it has been revoked and why.
Chapter six
Printing and delivery#
From any certificate in the Issued list, the download link opens the print surface at /certificates/print/[id] — the certificate rendered at its true physical size, with the real recipient's name and the real, scannable QR code, ready for the browser's Save as PDF or a direct print. The same shared renderer that drew the studio canvas draws this sheet, so the printed page matches the design pixel for pixel.
Distribution reaches beyond the office. When a certificate is issued, a notification fans out to the recipient — a student and their parents, or a staff member — and the certificate appears in their portal. A student sees their own awards at /portal/certificates, where they can download or re-verify any of them.
Chapter seven
The public verdict#
This is the chapter that makes the credential worth the paper. Scanning the QR code — or visiting /verify/[number] with the certificate number — opens a public verdict page that needs no account. It runs against a security-defined function granted to anonymous visitors, so a future employer, a university admissions officer, or a parent can check a certificate from anywhere.
The verdict is deliberately spare. A genuine certificate returns a green Verified · Authentic card with the recipient's name and type, the award category and type, the issuing school, the issue date, and the number. A revoked certificate returns a red Revoked card with the reason. An unknown number returns Certificate not found. Nothing else is exposed — no contact details, no grades, no private school data ever cross the public boundary.
Chapter eight
What makes credentials elite#
Five things that make this elite
- 1
Anonymous, tamper-evident verify
Every certificate carries a QR that resolves to a public verdict page — verified, revoked, or not found — backed by a security-defined function granted to anon. No school can fake a YESS verification, and no checker needs an account.
- 2
Issue by rule, not by hand
Publishing a report card auto-issues the honour rolls. Marking a training complete issues the completion certificate. Graduating a student issues the diploma. The registrar configures the rule once and the certificates write themselves — idempotently.
- 3
What you design is what prints
A single renderer drives the studio canvas, the screen preview and the printed sheet, with tokens that resolve to sample data in design and real data at print. No surprise reflow between the editor and the page in someone's hand.
- 4
Per-category atomic numbering
Numbers are allocated atomically per category and year — ACA-2026-00001 — so two simultaneous batches can never collide on a number, and the prefix tells you the award class at a glance.
- 5
One pipeline, both audiences
Students and staff run through the same studio, the same rules engine and the same verify page — honour rolls and diplomas alongside long-service and training completions — instead of two disconnected systems.
Planned features
What comes next#
The studio, the rules engine, bulk issue and public verification all ship today. The items below are scaffolded or partial, and are flagged honestly so you can plan around them.
Five honest gaps
- 1
Issue a single certificate by hand
The hub issues in bulk and by rule, but there is no dialog to grant one ad-hoc certificate to one person from the certificates page. The create path exists in the data layer; the planned upgrade surfaces it as a 'New certificate' action.
- 2
Stored-PDF cache
Certificates render on demand every time rather than being saved as files. The schema reserves a pdf_url, but no pipeline populates it yet. The planned feature renders once on issue and caches the PDF for instant re-download.
- 3
Expiry on the verdict
The record carries an expiry date and the studio can place a date block, but no screen sets an expiry and the verify page does not yet surface one. The planned upgrade lets training and membership certificates expire and shows it on the public verdict.
- 4
Behaviour-excellence button
A behaviour-excellence bulk run exists in the engine but has no toolbar button on the hub yet, so it can only fire through a rule. The planned upgrade adds it alongside Honor Roll and Perfect Attendance.
- 5
Diploma numbering on the sequence
The diploma flow falls back to a deterministic DIP-year-id number rather than drawing from the per-category sequence. The planned fix routes diplomas through the same atomic numbering as every other certificate.
Adjacent modules
Where credentials connect#
Certificates are the downstream celebration of what other modules record — grades, attendance, service, and graduation.
Adjacent modules
- 09Report cards & transcriptsPublishing a report card auto-issues honour rolls; graduation issues the diploma. Averages read straight from the published card.
- 10Attendance enginePerfect-attendance certificates scan the term's attendance records against the rule's absence limit.
- 18HR & recruitmentService-anniversary and training-completion certificates read staff hire dates and training enrolments.
- 39ID cards & identityA sibling studio sharing the same canvas architecture and the same /verify public surface for school-issued artefacts.
Tutorial
Do it step by step#
Take an honour roll from a blank canvas to a parent's phone in six steps — design, rule, issue, print, and verify.
- 1
Design the certificate
On the Templates tab of /dashboard/certificates, press New template, then design it in the studio: drop the recipient name, award title, a seal, a signature line and a QR-verify element onto an A4 canvas, writing the body with tokens like{{recipient_name}}.Start from a skeleton — Classic Gold or Kente Heritage — and adjust, rather than from a blank page.
- 2
Write the auto-issue rule
On the Rules tab, create a rule: category academic, recipient student, trigger on_term_close, condition{"min_average": 80}, and your new template. Mark it active. - 3
Publish the report cards
Publish the term's report cards as usual. The active rule fires automatically — every student over 80% is issued the honour-roll certificate, with a number, and a notification to their parents.Auto-issue is idempotent, so re-publishing a corrected report card never double-issues.
- 4
Run any remaining batches
For the awards that are not rule-driven, use the hub toolbar: Perfect Attendance, Service Years, or the diploma backfill at /dashboard/certificates/issue-diplomas. - 5
Print or download
From the Issued tab, open any certificate's download link to the print surface at /certificates/print/[id] — rendered at physical size with the real QR — and save it as a PDF or print it for prize day. - 6
Verify it works
Scan the printed QR, or open /verify/[number] with the certificate number. You should see the green Verified · Authentic card — no login required. That same page is what any employer or university will see.
Designed once, issued by rule, numbered atomically, and verifiable by anyone with a phone — the school's credentials are now worth the paper.