# Design a Mobile Online Course App: Coursera-Style Learning

Source: https://www.techinterview.org/post/3233475357/mobile-system-design-online-course-app-coursera-style/
Updated: 2026-05-06 · techinterview.org

"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.
