All projects

Technical Project

Uplink LMS

I built a multi-tenant learning platform that helps volunteer teams deliver the right training across campuses, rooms, and roles. Organizations author lessons and quizzes, track completion, and share selected training through QR codes. I designed the data isolation, permission model, authoring tools, and media delivery behind that workflow.

Timeline2026
My roleFull-stack development · Learning workflows & infrastructure
StatusApp deployed · Public website under construction

The problem

Training needs to reach the right people across campuses and teams while keeping each organization’s content private. Large videos must survive interrupted uploads, and a completed lesson needs to reflect server-verified progress.

How I approached it

I built the platform around tenant-scoped Prisma queries and four permission tiers, with authorization checked against the database on every server action and API route. A drag-and-drop lesson builder supports text, images, video, and quizzes; the server controls grading, lesson order, and completion.

Inside the build

  • Built a multi-tenant Next.js learning platform with a drag-and-drop lesson builder, resumable 500 MB chunked video uploads, server-graded quizzes, QR guest access, and tenant-scoped permissions.
  • Built resumable video uploads up to 500 MB using streamed 4 MB chunks, file-signature validation, offset recovery, and serialized per-organization quota checks.
  • Created a private media server with HTTP range requests and ETag revalidation so videos support seeking while retaining organization-level access controls.
  • Built versioned lessons and server-graded quizzes with serializable transactions and idempotent submissions; answer keys stay off the learner’s browser.
  • Added QR-code guest access with browser-local progress that is replayed through server-side authorization and grading checks after sign-in.
  • Hardened sign-in with rate limiting and timing-attack defenses, invalidated sessions when account permissions change, and covered core rules with 43 unit tests.

The result

Delivered a complete authoring-to-completion workflow with guest access, media delivery, and progress tracking. The production Docker deployment includes a non-root runtime, health checks, automatic migrations, and Traefik TLS routing.