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)