All case studies
Nova Dynamic Media·Full-Stack Engineer

An E-Learning Layer for Live Events

Verified video progress, quizzes, and certificates at 1000+ users

LambdaDynamoDBS3CloudFrontExcelJSPDF-libNode.js 22
1,000+ users
per report, generated without timing out
Server-side
quizzes graded and verified on the backend
Verifiable
PDF/PNG certificates carry a unique validation ID
Real progress
completion tracked to a watch bar, not a click
Excel / CSV
bulk admin reports via S3 and CloudFront

The problem

Events needed to double as accredited courses. A viewer's progress through each session had to be tracked against a real completion bar, they had to pass a quiz, and only then earn a certificate that could be verified later. Admins then needed reports across thousands of users, and the naive version of that — fetch everything, format in memory — times out well before a thousand rows.

Options on the table

Third-party LMS
A separate silo that does not know about the live event, its auth, or its streaming analytics.
Build on the serverless stack
Reuse the platform's auth, storage and video analytics; the course and the event are one system.
Compute completion in the browser
Unreliable and gameable. A certificate has to be earned on evidence the server trusts.

Architecture at a glance

Watch + quiz
viewer API
DynamoDB
progress + scores
Certificate
PDF/PNG + validation id
Admin report
Excel/CSV → S3/CDN

The decision

A serverless e-learning API, split into viewer and admin services, that tracks real watch progress against a completion threshold, scores quizzes server-side, issues PDF and PNG certificates with unique validation IDs, and generates bulk admin reports built to handle over a thousand users at a time.

How it works

  1. 1The viewer API records watch progress per session and instance (watch time, furthest play position, completion percentage) and marks a course complete only at the threshold — measured against real playback, not a button click.
  2. 2Quizzes are submitted and scored on the backend; attempts, best score and pass/fail are tracked, and multiple-choice questions are auto-graded.
  3. 3On completion plus a passing score, a certificate is issued as PDF and PNG with a unique validation ID so it can be checked later, and an email notification goes out.
  4. 4The admin API generates course-progression, certificate and quiz reports across every user, fetching in parallel and formatting to Excel and CSV.
  5. 5Reports are stored in S3 and distributed through CloudFront; parallel fetches and tight DynamoDB queries keep a 1000+ user report inside the Lambda budget.

What I took away

Completion has to be earned and verified on the server, or a certificate means nothing. Track real watch progress, grade on the backend, and give every certificate a validation ID so it can be checked long after the event.
Want the deeper architecture behind this? Let's talk.
Get in touch