Project · IT training & documentation

Primer

Learn the tools. Skip the ticket.

IT's training and self-help platform — courses with server-graded quizzes and verifiable certificates, a versioned documentation library, live sessions and assignment reports.

Open live demo Source: private repo
Role
Solo · Design & full-stack
Type
IT training & documentation
Stack
Next.js · Supabase
Status
● Live demo
Course catalogue

// Course catalogue · demo accounts available on request

The problem → the approach

The problem

Repeat tickets come from people who were never taught the tools. Training lives in slide decks, docs go stale, and nobody can prove who completed required security training.

The approach

Primer teaches once and measures it: courses with quizzes graded on the server, certificates that can't be forged, versioned docs with review dates, and a progress matrix per department.

What it does

Server-graded quizzes

The answer key lives in a trainer-only table; learners can't read it from the browser. 80% pass mark.

Verifiable certificates

Issued only when every lesson is complete and the quiz passed, each with a verification code.

Versioned documentation

How-tos, policies and FAQs with search, feedback, change notes, history and review-by dates.

Live sessions

Seat limits enforced in the database, .ics calendar invites and trainer attendance.

Assign & report

Assign courses to people or whole departments with due dates; progress matrix and CSV export.

Content as data

Markdown courses and docs with GitHub-flavored tables and checklists; edits never wipe learner progress.

Screens

// Documentation library with search and filters
// Assign & reports — progress matrix
// Training overview
// Sign-in

Who uses it

Learner
Courses, quizzes, certificates, docs, live sessions
Trainer
Author courses and docs, schedule sessions, assign & report
Admin
Everything above plus team & roles

Security, enforced in the database

Row-Level Security on every table — calling the API directly returns exactly what the screen shows, nothing more.
Writes go through role-checked SECURITY DEFINER functions that verify the caller before changing anything.
36 automated checks (scripts/e2e.mjs) cover roles, answer-key secrecy, grading, certificates, doc versioning, session capacity and anonymous lockout.
No secrets in the client or the repository — only the public Supabase URL and anon key, protected by RLS.
36
automated checks
6
built-in courses
80%
server-enforced pass mark

Tech stack

Next.js 15TypeScriptTailwind CSS v4Framer Motionreact-markdownremark-gfmSupabasePostgres RLSSECURITY DEFINER RPCs

What's next

SCORM / video lessonsDue-date remindersSuggest docs from helpdesk ticketsAnnual re-certificationMulti-language content