Skip to content
All work
13Learning management system2026

LearnBridge

A full LMS with four distinct workspaces, realtime channels, Paystack billing, and externally verifiable certificates rendered to PDF and PNG.

4
Role workspaces
3
Realtime channel types
2
Certificate formats
1
Public verification endpoint
Role
Lead engineer
Year
2026
Type
Learning management system

01Overview

LearnBridge covers course discovery, lesson delivery, assignments, grading, mentorship, community learning, billing, admin operations and verifiable certificates.

It is not only an API. The repository carries the Fastify/TypeScript backend, a vanilla HTML/CSS/JS frontend, four role-based workspaces, public marketing pages, certificate rendering and operational admin screens.

Four audiences use it and none of them want the same thing: visitors browsing a catalogue, students learning, tutors teaching and getting paid, and admins keeping the platform honest.

02The problem

An LMS is really four applications sharing a database. Building four separate frontends duplicates auth, state and design; building one that branches on role produces an interface that serves nobody well.

The harder problem is the certificate. A certificate that only exists inside the platform that issued it is worthless as proof. It has to survive being posted to LinkedIn, embedded in a portfolio, and checked by an employer who will never create an account.

03Architecture

  1. 01

    Four workspaces on one API

    Public website (landing, catalogue, learning paths, certifications, corporate training, blog, verification, legal). Student workspace (dashboard, progress, lessons, notes, bookmarks, wishlist, grades, assignments, submissions, certificates, mentorship, communities, timeline, messages). Tutor studio (course builder, assignments, submission review, students, analytics, earnings, office hours, portfolio). Admin and superadmin console (users, courses, enrolments, reports, warnings, email logs, support, financials, system logs, compliance, settings).

  2. 02

    Backend

    Node.js and TypeScript on Fastify, PostgreSQL with Sequelize models, JWT auth with Argon2 password hashing, role guards, rate limiting and Helmet.

  3. 03

    Realtime

    WebSocket channels carrying notifications, chat and discussion threads, so community and mentorship features are live rather than polled.

  4. 04

    Certificate pipeline

    Course completion issues a certificate with a unique ID. HTML templates render through Puppeteer to PDF and PNG, a QR code encodes the verification URL, and a public endpoint validates the ID with no account required.

  5. 05

    Jobs and cache

    Redis with BullMQ, optional by design — the platform runs without them and uses them when present for email, rendering and heavy report work.

  6. 06

    Payments

    A Paystack-oriented billing flow, chosen because it is what actually works for the Nigerian market this is built for.

04Key decisions

Decision 01

Vanilla frontend, deliberately

No build step for the client. Given four workspaces of largely form-and-table UI, a framework would have added a toolchain and a hydration story without changing what shipped. The tradeoff is more discipline required in the CSS.

Decision 02

Public certificate verification

The verification endpoint takes a certificate ID and needs no authentication. It is the single feature that makes the credential mean anything outside the platform.

Decision 03

Argon2 over bcrypt

Memory-hard by default and the current recommendation. On a platform holding minors' accounts, password hashing is not the place to follow habit.

Decision 04

Optional Redis

A small institution should be able to run this on one box. Queues and cache improve it; nothing requires them.

05Stack

  • TypeScript
  • Fastify
  • PostgreSQL
  • Sequelize
  • WebSockets
  • Redis
  • BullMQ
  • Puppeteer
  • Argon2
  • Paystack
  • Docker