All screens Learner · Platform

Downloads, storage & sync queue

Content is cached in SQLite plus the file system from one GET /course/:courseId/offline-manifest call. Writes go the other way: completion and playback position queue locally with an idempotency key and replay through POST /course/:courseId/sync. Completion is monotonic, so a retry can never corrupt a record — which is exactly why offline exercises are deferred to v2.

Storage on this device 284 MB of 3.7 GB free
Forklift 84 MB Fire Safety 112 MB GDPR 88 MB

Downloading

Hazardous Materials Handling
Lesson 5 of 8·48 MB of 96 MB
50%

On this device

3
Forklift Safety Recertification
12 lessons·84 MB·Synced 2h ago
Warehouse Fire Safety
8 lessons·112 MB·Synced 2h ago
Data Protection & GDPR Essentials
Completed·88 MB

Settings

Download over Wi-Fi only
Protects your mobile data
Auto-download required training
When new compliance courses are assigned
Video quality offlineStandard (480p)
Downloads & storagePer-course breakdown, resumable progress, and Wi-Fi-only by default. Nothing is silently evicted — the learner chose to download it.
Lesson 4 completed
Forklift Safety·Queued 18:31
Synced
Lesson 5 completed
Forklift Safety·Queued 18:40
Synced
Playback position 7:02
Lesson 5·Queued 18:47
Syncing
Lesson 6 completed
Retrying in 8s · attempt 2 of 5

What syncs offline

Lesson completionQueued offline
Playback positionQueued offline
Exercise answersOnline only
Community postsOnline only
Completion only ever moves forward, so replaying a queued change twice is harmless. Grading and submissions stay online to keep assessment records unambiguous.
Sync queueEvery queued intent is visible with its state and retry count — the learner can see their work is safe rather than hoping.