← Back to portfolio
LearnVerge – Course Selling Platform media 1

1 / 3

Project

LearnVerge – Course Selling Platform

in production

What it does

Provides an end-to-end online learning experience: instructors create courses with video lessons (uploaded via chunked Cloudinary uploads), and students can browse course catalogs, subscribe to courses, stream HLS video, view PDF notes, and track lesson completion.

Problem

Aspiring educators lack an affordable, self-hostable platform to sell and deliver video courses, while students need a seamless way to discover, purchase, and consume course content with progress tracking.

Approach

Three-service architecture — a Node.js/Express REST API handles auth, course CRUD, and enrollment; a Rust-based async worker (Tokio + Lapin) consumes RabbitMQ jobs for heavy-lifting tasks like video transcoding via FFmpeg and Cloudinary uploads; and a React SPA served via Nginx provides the student/instructor UI. MongoDB stores course and user data, Redis handles caching/sessions, and Docker Compose orchestrates all services with health checks, resource limits, and security hardening.

Highlights

  • Polyglot backend: Node.js API + high-performance Rust worker for CPU-bound video processing
  • Chunked video uploads to Cloudinary with progress tracking and resumable uploads
  • RabbitMQ message queue decouples API from heavy media processing tasks
  • Dual auth: JWT cookie-based auth + Google OAuth sign-in
  • Role-based access for students and instructors with separate dashboards
  • HLS video streaming with FFmpeg-generated adaptive playlists
  • Course completion tracking at the per-lesson level
  • Production-ready Docker Compose with read-only containers, resource caps, PID limits, and no-new-privileges
  • Radix UI + Shadcn/ui component system with Tailwind CSS v4 for a polished, accessible frontend
  • Input validation with Zod on both client and server
  • Vercel-ready frontend config with SPA fallback routing