Physics AI — Owner Review Pack
APK review for the offline Physics tutoring research instrument (Stages 1–20 implemented; physical-device sign-off pending).
Build 0.20.0-stage20 Schema v17 Debug APK Updated 2026-09-14
1. Where We Are
Current position: Stages 1–20 are implemented and emulator-tested. Final owner sign-off still needs physical 1 GB / 2 GB / 3 GB Android devices (emulators alone are not enough for Stage 20).
What this means: the full student and researcher research paths exist including sync, recovery, security audit, and protocol lock. This is a research debug build, not a production deployment.
| Area | Status |
|---|---|
| Stages 1–9 | Accepted: foundation, auth, content, tutor, coding, practice, assessments. |
| Stage 10 | Emulator verified: self-efficacy instruments and derived mean score. |
| Stages 11–13 | Emulator verified: calibration, fidelity, research export / data dictionary. |
| Stage 14 | Emulator verified: sync queue, encrypted export/import, live HTTPS backend. |
| Stage 15 | Emulator verified: student device backup/restore, master backup, device replacement. |
| Stage 16 | Emulator verified: Keystore passphrase, append-only audit log, protected exports. |
| Stage 17 | Emulator verified: research protocol lock/unlock with audit. |
| Stage 18 | Partial: memory metrics on screen; lesson video uses a stream player (no packaged mp4 yet). Full 1/2/3 GB measurement not done. |
| Stage 19 | Partial: 48dp targets, DayNight colours, TalkBack labels; owner TalkBack walkthrough still needed. |
| Stage 20 | Partial: automated smoke only — use checklist below on real phones. |
2. What Works Now
Student
- Login with User ID and password (offline).
- Home, Learn, Practice, Tutor, Coding, More tabs.
- Published lessons with Open lesson, assignments, and video section.
- Offline chip and sync banner (Offline / Pending / Synced / Conflict).
- More: encrypted device backup export and restore on new device.
Researcher
- Login, lockout protection, student account management.
- Content, tutor rules, coding settings, instruments workflow.
- Data tab: JSON/dictionary export, encrypted packages, sync health.
- Master backup/restore, device replacement authorization.
- Recovery export passphrase (Keystore), read-only audit log.
- Protocol lock on Data tab — blocks config changes until unlock.
- Memory metrics line on Data tab (Stage 18 observation).
3. What Is Still Open
- Physical-device acceptance on 1 GB, 2 GB, and 3 GB Android phones.
- Full TalkBack walkthrough (student + researcher).
- Packaged lesson video file (player is built; sample
motion_intro.mp4is not in the APK yet). - WhatsApp-style student restore from server on fresh install (deferred — file backup remains).
Detailed physical checklist: docs/PHYSICAL_DEVICE_ACCEPTANCE.md
4. APK Install Details
Download on phone (HTTPS): https://physics-research.getqualibyte.com/download/physicsai-debug.apk
Or open the backend homepage and tap Download Physics AI APK. Allow “Install unknown apps” for Chrome if asked.
APK file name: physicsai-debug.apk (same debug build as app-debug.apk)
Local path (after build):
physicsai/app/build/outputs/apk/debug/app-debug.apk
Package: ng.research.physicsai.debug
Install: copy APK to phone, open it, allow “Install unknown apps” if asked. Or:
adb install -r physicsai/app/build/outputs/apk/debug/app-debug.apk
Fresh install tip: adb shell pm clear ng.research.physicsai.debug before retesting auth flows.
Student login: PHY001 / 1234
Researcher login: research2026
4b. Sync backend (HTTPS — owner must see a padlock)
Use this URL in the phone or laptop browser (not the numeric 12345 host if that still looks “Not secure”):
Open: https://physics-research.getqualibyte.com/
- The address bar must show a padlock (secure HTTPS). Do not continue if the browser says Not secure / Your connection is not private.
- The page must say Status: ok.
- Tap /health — it must show
{"status":"ok"}.
Alias (same server/cert): https://12345.getqualibyte.com/ — prefer the physics-research URL.
The APK talks to this backend for researcher Data → sync health. Airplane-mode student learning still works without it.
View data in a browser:
https://physics-research.getqualibyte.com/data
— enter the researcher API key (from QualiByte secrets / local.properties, not research2026). You will see participants, devices, latest records, and JSON/SQLite download buttons.
5. Owner Test Checklist
0. Backend HTTPS (do this first)
- On the phone browser open https://physics-research.getqualibyte.com/ — padlock + Status: ok.
- Download the APK from that page (or direct APK link) and install it.
- Open /data, enter the researcher API key, confirm counts/tables load (may be empty until a phone has synced).
A. Setup and Offline
- Install the APK on a real Android phone.
- Open the app with mobile data and Wi-Fi off.
- Confirm the app opens without internet.
- Confirm offline chip is visible on student Home.
- Confirm buttons are easy to tap (48dp targets on MCQ options).
- Toggle phone Dark theme and Light theme — login fields stay readable (not white-on-white).
- Use More → Sign out. Confirm return to login without crash.
B. Researcher Core Flow
- Login with
research2026. - Dashboard counts load.
- Students tab: search, generate or verify account.
- Content tab: advance one lesson to PUBLISH.
- More tab: advance assessment, self-efficacy, tutor rule to PUBLISH.
- More tab: coding mode and assistance settings save.
- Sign out.
C. Student Core Flow
- Login with
PHY001/1234. - Learn: if no lessons, empty-state message (not a blank screen). After publish: lesson list + Open lesson.
- Lesson: objectives/notes/examples; assignment section; video section (missing file is OK — must not freeze).
- Practice: answer and submit.
- Tutor: deterministic hint appears.
- Assessment: take published test, submit; retake blocked.
- Self-efficacy: complete Likert form, mean score shown.
- More: sync banner text is Offline, Pending, Synced, or Conflict (readable in light and dark system theme).
D. Security and Roles
- Student cannot reach researcher screens.
- Wrong password rejected; disabled account blocked.
- After sign-out, back button does not return to logged-in pages.
E. Data, Sync, and Recovery (Stages 14–16)
- First confirm the backend padlock test in section 4b.
- Researcher Data tab: summary and sync health load (not an error / blank).
- Sync banner on Data tab shows Offline / Pending / Synced / Conflict.
- Export JSON or data dictionary (share sheet opens).
- Set recovery export passphrase (access code required).
- More tab: audit log shows recent entries (read-only).
- Student More: export encrypted device backup file.
F. Protocol Lock (Stage 17)
- Researcher Data tab: status shows “unlocked”.
- Tap “Lock research protocol” — enter
research2026. - Try advancing an instrument in More — should be blocked.
- Try changing coding settings — should be blocked or disabled.
- Tap “Unlock research protocol” — enter access code again.
- Confirm audit log contains lock and unlock entries.
G. Low Memory and Accessibility (Stages 18–19)
- Researcher Data tab: memory metrics line shows numbers (not blank).
- On a low-RAM phone: complete student path without ANR.
- Enable TalkBack: offline chip and MCQ options are announced.
- Increase system font size — check for clipped text.
- Record phone model, RAM, Android version, peak memory note.
H. Final Acceptance (Stage 20)
- Repeat student path online, then in airplane mode.
- Repeat researcher path including lock/unlock and export.
- Kill app mid-practice — reopen, data retained.
- Note any crashes, confusing screens, or blocking bugs.
6. UI Verdict
The UI is usable for full-stack research review through Stage 20. It is not yet a polished consumer school app.
It is intentionally simple: offline-first, low-memory, and research-focused.
Remaining polish: stronger branding, shorter researcher More page, full TalkBack pass, and physical 1/2/3 GB sign-off.
7. Feedback Template
Build tested: 0.20.0-stage20 (schema v17)
Backend URL tested: https://physics-research.getqualibyte.com/ — padlock Yes / No
Device model:
RAM (GB):
Android version:
Tester:
Date:
Pass or fail:
Blocking issues:
Protocol lock tested: Yes / No
TalkBack tested: Yes / No
UI comments:
Screenshots attached: Yes / No