Design a Mobile Online Course App: Coursera-Style Learning

“Design an online course app” is a content-and-progress mobile system design prompt — Coursera, Udemy, Khan Academy, Duolingo, Brilliant. The interview tests video infrastructure, cross-device progress sync, offline-first downloads, and the unique product engineering of a learning experience.

Clarify scope

  • Pre-recorded video, live cohorts, or both?
  • Quizzes, assignments, peer review?
  • Certificates and credentials?
  • Offline downloads with DRM?
  • Web parity required?

Course data model

{
  course: {
    id, title, instructor, duration,
    modules: [
      { id, title, lessons: [
        { id, type: "video|quiz|reading|assignment", durationSec }
      ]}
    ]
  },
  progress: {
    courseId, userId,
    lastLessonId,
    lessonProgress: Map<lessonId, { percent, completed, lastWatchedSec }>,
    quizScores: Map<quizId, score>
  }
}

Video playback

  • HLS for compatibility; fallback to MP4 for older devices
  • Adaptive bitrate (ABR) on cellular vs Wi-Fi
  • Captions in multiple languages (sidecar VTT)
  • Speed control (0.75x–2x) — heavy use in learning
  • Resume from last position; sync across devices
  • Picture-in-Picture for desktop / iPad multitasking

Offline downloads

  • Per-lesson downloads, not whole-course (better for storage)
  • Background download via OS background-transfer APIs
  • Encrypted at rest with FairPlay (iOS) / Widevine (Android) — required for licensed content
  • Storage management: show usage, allow per-lesson delete
  • Auto-delete completed lessons option

Progress sync

  • Optimistic local update; debounced upload (every 30 sec or at lesson boundary)
  • On app foreground: pull latest from server
  • Conflict: latest-write-wins per lesson is acceptable
  • Cross-device: start on phone, finish on tablet

Quizzes

  • Multi-choice, fill-in, code questions
  • Auto-graded; instant feedback
  • Score and explanation per question
  • Support for multiple attempts; track best score
  • For coding quizzes: in-app code editor (CodeMirror) or remote sandbox

Assignments and peer review

  • File upload (essay, video) for peer-reviewed work
  • Peer-grading queue
  • Rubric-based grading
  • Reviewer anonymization

Certificates

  • Issued on completion
  • Verifiable URL with course ID + user hash
  • LinkedIn integration to share
  • Optional paid track for verified credential

Notifications

  • Reminder to continue (“You have 5 min left in lesson 3”)
  • New cohort starts (live courses)
  • Assignment due in 24h
  • Peer review pending
  • Per-category opt-out

Discovery

  • Browse by topic, level, instructor
  • Personalized recommendations based on completed courses
  • Search with filters (free, length, language)
  • Editorial collections (“Top courses for new managers”)

Live cohort features

  • Schedule of upcoming live sessions
  • Calendar integration
  • Live video stream with chat
  • Recordings for missed sessions
  • Cohort discussion threads

Performance considerations

  • Video pre-fetch: download next lesson when current is 80% complete (Wi-Fi only)
  • Image lazy-loading for course catalog
  • Local search of downloaded courses for offline browsing
  • Memory: release decoded video buffers behind playback head

What separates senior from staff

Senior candidates draw the data model and video playback. Staff candidates discuss DRM-protected offline downloads, cross-device progress sync, and the assignment/peer-review loop. Principal candidates address the live cohort architecture, the recommendation pipeline, and the credential/cert verification system.

Frequently Asked Questions

How do I handle 1080p video on cellular?

ABR auto-selects lower bitrate; show “Wi-Fi only HD” toggle. Cellular default is 480p–720p depending on carrier and user setting.

What about LLM-powered Q&A on course content?

2025+ trend: integrated AI tutor that answers questions about lesson content. RAG over the course transcript and supplementary materials. Out of core scope but worth mentioning.

How does Duolingo / Brilliant differ from Coursera?

Bite-sized practice instead of long-form lectures. Streak mechanics, gamification, daily-habit framing. Same underlying architecture but different content shape and incentive design.

Scroll to Top