CompletedFull-stack, solo

ESdemy

An island's people, taught online by the best trainers it could find.

ESdemy
Status
Completed
Video qualities
3
Redis cluster
3 + 3
FFmpeg workers
2

What needed solving.

Lecturers needed to sell paid courses made of video, documents and quizzes, and students needed to watch them without being able to download them. Video conversion is heavy, payments must never be lost halfway, and students wanted to ask questions about the material at any hour.

How I built it.

  1. 01Go microservices in Clean Architecture talking over gRPC, behind NGINX with per-route rate limits and selective caching.
  2. 02Uploaded MP4s are converted into low, mid and high HLS chunks by two FFmpeg workers queued through Temporal, then served from SeaweedFS through a Varnish cache.
  3. 03Every video chunk, document and quiz request is checked against the buyer, so only people who paid can load the course.
  4. 04A Python AI service embeds each course document into a vector database, so the tutor answers from the material instead of guessing.
  5. 05PostgreSQL with a master and a replica behind Pg-Pool, BM25 search through pg_textsearch, and a Redis cluster for hot data.

Stack

GogRPCPythonPostgreSQLRedisTemporalNGINXDocker