# 3. Podcast Player

User Type: **Student**
Source: *Mi Digital Academy - Education CRM Features Document*

---

## 3. Podcast Player

### 3.1 Audio Playback
**What it does:** Plays the Student's audio lessons (podcasts) with playback controls suited to audio. The player supports play/pause, seek, playback speed, and volume. Playback position is saved for resume, and completion is tracked per episode. Audio can play in the background on the mobile app.

**Sub-features:**
- Play/pause control for audio
- Seek bar with current time and total duration
- Playback speed selection (0.5x, 1x, 1.5x, 2x)
- Volume control and mute
- Playback position saved for resume
- Episode completion tracking
- Background playback on the mobile app
- Audio transcript view where available
- Playback event logging (start, pause, complete)
- Audit logging of the audio playback

**Student User Journey:**
1. Student opens an audio lesson and the podcast player loads.
2. Student presses play; the audio streams and the seek bar advances.
3. Student changes the speed to 1.5x and adjusts the volume.
4. Student pauses and locks their phone; on the mobile app the audio continues in the background.
5. Student returns and resumes at the saved position.
6. Student opens the transcript (where available) to follow along.
7. Student listens to the end; the episode is marked complete.
8. Student opens Profile → "Activity" and confirms the playback events are recorded.

**Rules & Edge Cases:**
- The playback position is saved per episode; resume returns to the saved position.
- Background playback is available on the mobile app; on the web, playback pauses when the tab is hidden.
- A transcript is shown only where provided for the episode.
- An episode is marked complete when listened to the end (or past a completion threshold).
- Playback events (start, pause, complete) are logged with the episode and the timestamp.
- The audio playback is audit-logged with the account, the episode, and the timestamp.

### 3.2 Podcast Download for Offline
**What it does:** Lets the Student download audio lessons for offline listening. Downloaded episodes are stored on the device, playable without a connection, and managed (view, delete) from the offline library. Downloads are subject to the Student's subscription and storage limits.

**Sub-features:**
- Download an episode for offline listening
- Download progress indicator
- Offline library listing downloaded episodes
- Play a downloaded episode without a connection
- Delete a downloaded episode to free space
- Storage usage indicator
- Download gated by subscription
- Download event logging (started, completed, deleted)
- Audit logging of the podcast download

**Student User Journey:**
1. Student opens an audio lesson and taps "Download".
2. A download progress indicator appears; when done, the episode is added to the offline library.
3. Student goes offline (airplane mode) and opens the offline library.
4. Student plays the downloaded episode; it plays without a connection.
5. Student checks the storage usage indicator.
6. Student deletes the episode to free space; it is removed from the offline library.
7. Student opens Profile → "Activity" and confirms the download events are recorded.

**Rules & Edge Cases:**
- Downloads require an active subscription; without it, the download button is disabled with a prompt.
- A download completes before the episode can be played offline.
- Deleting a downloaded episode removes it from the device but not from the course.
- Storage usage is shown; the Student is warned when approaching the device limit.
- Download events (started, completed, deleted) are logged with the episode and the timestamp.
- The podcast download is audit-logged with the account, the episode, and the timestamp.

### 3.3 Audio Progress Tracking
**What it does:** Tracks the Student's progress through audio lessons and the overall course. Completion of an episode updates the lesson and course progress, feeds "Continue learning", and contributes to the progress and analytics modules. The Student can see which episodes are done, in progress, or not started.

**Sub-features:**
- Per-episode status: not started, in progress, complete
- Course progress contribution from completed episodes
- "Continue learning" shows the next incomplete episode
- Progress visible on the course page and dashboard
- Completion feeds the analytics and progress modules
- Re-listen to a completed episode without losing completion status
- Progress sync across web and mobile
- Progress event logging
- Audit logging of the audio progress tracking

**Student User Journey:**
1. Student opens a course's audio section and sees episode statuses (2 complete, 1 in progress, 4 not started).
2. The course progress reflects the completed episodes.
3. Student finishes the "in progress" episode; its status changes to "Complete" and the course progress updates.
4. The dashboard's "Continue learning" points to the next incomplete episode.
5. Student re-listens to a completed episode; its status stays "Complete".
6. Student switches devices; the progress is consistent.
7. Student opens Profile → "Activity" and confirms the progress events are recorded.

**Rules & Edge Cases:**
- An episode's status is one of: not started, in progress, complete.
- Course progress includes completed audio episodes alongside videos.
- Re-listening a completed episode does not revert its status.
- Progress is synchronized across web and mobile.
- Completion feeds the analytics and progress modules.
- Progress events are logged with the episode, the status change, and the timestamp.
- The audio progress tracking is audit-logged with the account, the episode, and the timestamp.
