AY.

Learning Management System (LMS)

Full-featured LMS with video upload, transcoding pipeline via FFmpeg, VOD streaming, and live streaming groundwork. Built on .NET with RabbitMQ for async processing and Redis for caching.

.NETRabbitMQRedisFFmpegMicroservicesVideo

Overview

A full-featured Learning Management System built to handle end-to-end video course creation, student management, and content delivery at scale.

Architecture

The system is built as a microservices application with the following core services:

  • Content Service — handles course/module/lecture CRUD
  • Upload Service — accepts raw video via chunked upload and publishes events
  • Transcoding Service — consumes upload events, runs FFmpeg pipelines to produce HLS streams (multiple resolutions)
  • Streaming Service — serves signed HLS manifests and TS segments via CDN
  • Notification Service — sends email/webhook events on transcode completion

Key Technical Decisions

  • RabbitMQ for reliable async messaging between upload and transcode workers
  • Redis for caching course metadata, session tokens, and presigned URL TTLs
  • FFmpeg for video transcoding — configured for H.264 + AAC HLS output at 360p / 720p / 1080p
  • .NET 8 as the primary runtime for all services, using minimal APIs
  • EF Core with SQL Server for structured data

Features

  • Chunked video uploads with resumability
  • Multi-resolution HLS VOD streaming
  • Student progress tracking
  • Quiz and assignment submission
  • Role-based access (Admin / Instructor / Student)