Client project

MediVerse

E-Learning Platform

Medical students stream encrypted course videos on web, Android and iOS. I built the backend and video pipeline, then rebuilt it on NestJS and PostgreSQL.

Role
Backend & DevOps
Status
In production
MediVerse screenshot
  • 5,000+registered users
  • 33,000+monthly unique visitors
  • About 7 TBvideo streamed per month

Medical students needed course videos that play smoothly on any device but can’t simply be downloaded and shared, plus timely reminders, across a website and two mobile apps.

MediVerse is one of the leading online learning platforms for Bengali-speaking medical students in Bangladesh and India, focused on learning and engagement: courses, e-books, encrypted video, study planning and push notifications. The website and the Android and iOS apps all connect to one NestJS backend.

  • Built the original backend on Node.js and MongoDB, handling courses, e-books, user workflows and content delivery.
  • When it hit scaling limits, rebuilt the backend in NestJS with a new relational PostgreSQL schema, the same stack as The Clinician.
  • Wrote a Node.js migration tool that moved the production data from MongoDB to PostgreSQL, keeping data integrity and downtime to a minimum.
  • Implemented a video processing pipeline using Redis + BullMQ queues with FFmpeg for transcoding and HLS encryption.
  • Built a scheduled push notification system using FCM, powered by Redis-backed job queues on the NestJS backend.
  • Developed the API layer serving the Next.js website and the Android and iOS apps, published on Google Play and the App Store.
  • Built a study planner: a student sets a deadline and the courses to finish, the backend turns that into a schedule of regular study hours, and the student tracks progress against it.
  • Added an admin view of the most active students by hours watched.
  • Managed all DevOps: a VPS set up with Docker and Nginx and hardened with my open-source Linux setup script, deployed through GitHub Actions CI/CD for the frontend and backend, plus a development environment that deploys automatically from pull requests to main.
  • Set up Cloudflare R2 storage for secure video hosting and delivery.
  • Worked on the website’s frontend design, and planned and carried out its migration from an older Next.js version to the App Router once it was stable.
  • End-to-end video pipeline: upload → queue → FFmpeg transcode → HLS encrypt → R2 storage → secure playback.
  • Single NestJS backend powering web, Android, and iOS clients.
  • Redis + BullMQ powering both video processing and scheduled push notification delivery.
  • Study plans generated from a deadline and target courses, with progress tracking.
  • Two live migrations: the backend from MongoDB to PostgreSQL, and the frontend to the Next.js App Router.
  • Moving a live platform from a document database to a relational one: designing the new PostgreSQL schema, then migrating production data without breaking integrity or taking students offline for long.
  • Planning and carrying out the full migration of the Next.js frontend to the App Router soon after its stable release.
  • Building a reliable video processing queue that could handle variable upload sizes without blocking other operations.
  • Ensuring encrypted HLS streams remained playable across different devices, browsers, and mobile apps.
  • Designing a backend API flexible enough to serve both web and mobile clients from a shared codebase.
  • Delivered a production platform handling real student enrollments and video consumption.
  • Built a reusable media processing pipeline and notification system.

Want something similar built? Get in touch →