ClassroomIO · Prototype + PRD handoff

Mobile App

A learner-first iOS and Android app for the people companies actually train — frontline staff, field technicians, and distributed employees who often have no work laptop and unreliable connectivity. It opens on what needs your attention, works offline, and finally gives ClassroomIO a push channel for deadlines and renewals. A small tutor mode handles grading and attendance on the go; authoring and org administration stay on the web.

Built on the real packages/ui tokens, rendered in a 390 × 844 device frame. Every page has a theme toggle and cross-links so you can click through each journey end to end. The engineering PRD lives at prd/mobile-app/README.md.

1 · Entry — sign in & organization
Auth · 3 states
Sign in, org picker, biometric

Password, Google, and enterprise SSO through Better Auth's Expo client; custom server URL for self-hosted; Face ID re-entry and an offline launch path.

Tab 1 · 3 states
Home — attention surface

Compliance alerts, continue-learning, due-soon, assignments, announcements, feedback — one /account/home-digest call. Plus caught-up and offline states.

Retention · 3 states
Notifications

Permission pre-prompt, the notification center with deep links, and per-category preferences with quiet hours.

2 · Learner — the consumption path
Tab 2 · 3 states
Learn

My learning with progress rings and download markers, the org catalog with enroll-in-place, and cohorts with goal progress.

Detail · 3 states
Course outline

Complete / current / locked / downloaded on every row, a deadline banner for compliance courses, the download sheet, and the completed state.

Player · 3 states
Lesson

HLS video with a playback token, transcript and AI-tutor sheets, the fair-use cap state, and offline playback with a queued completion.

Assessment · 3 states
Exercises

Autosaving single-choice, camera capture with upload progress, drag/hotspot/video types, and the graded result with a per-question breakdown.

Tab 3 · 2 states
Compliance

The differentiator as a tab: overdue with grace dates and consequences, expiring certifications, waivers, and the all-clear renewal timeline.

Proof · 2 states
Certificate wallet

Issued certificates sorted by what needs attention, plus the rendered certificate with share, save, and a verification ID/QR.

3 · Learner — engagement & platform
Tab 4 · 3 states
Community & newsfeed

Mentions and followed threads, a Q&A thread with the tutor answer promoted, and the offline read-only state with compose disabled.

Offline · 2 states
Downloads & sync queue

Storage breakdown, resumable downloads, Wi-Fi-only defaults, and every queued write with its sync state and retry count.

Tab 5 · 2 states
Profile & settings

Learner record, org switcher sheet, app settings and biometric lock — plus frontline mode, QR launch, and the accessibility commitments.

4 · Tutor companion — role-aware, same binary
Teach · 2 states
Grading queue

Submissions across all courses, oldest first, and a review screen with answer, video, rubric, score, and recorded audio feedback.

Teach · 2 states
Attendance

One-tap Present / Late / Absent on the roster, plus a rotating QR check-in code so learners mark themselves.

Teach · 2 states
Course snapshot & moderation

Completion, overdue learners, and where people get stuck; post an announcement; handle unanswered and reported posts.

Explicitly not in the app. Course, lesson, and exercise authoring; the media manager and AI course builder; org settings, team management, billing, SSO configuration, custom domains, and API keys; live-class video hosting; SCORM playback; and any purchase flow at all — no checkout, no plan upgrade, no AI token packs, on any storefront.

Hard dependency. Push notifications ride on prd/notification-system. Mobile contributes a device-token registry and an Expo Push transport in the existing apps/jobs worker — never a second notification pipeline.

Offline scope. v1 caches content and queues two monotonic writes (lesson completion, playback position). Exercises, submissions, and grading stay online so no assessment record can be corrupted by a replay — the same line Canvas and Blackboard draw.