Phase 1 — Mobile Acceptance Checklist
Task: E4 — Real-device mobile testing
Scope: Single-page sign-off for QA lead to gate Phase 1 launch (Apr 14, 2026)
Companion docs: phase1-mobile-device-test-plan.md, phase1-mobile-device-matrix.md
This checklist is the final go/no-go for mobile. Every box must be checked (or explicitly waived with a Phase 2 ticket number) before QA lead signs off.
0. Pre-testing gates
- EAS account logged in (
npx eas-cli whoamisucceeds) — BLOCKS EVERYTHING - All 4 preview APKs built and downloaded to shared location
- APK
application-labelverified as "KeyNova …" (not "HMP …") viaaapt dump badging - All 4 physical devices provisioned per device matrix section 1.5
- QA backend reachable from test devices (
curl http://43.204.247.178/api/healthreturns 200) - Test credentials verified (admin / manager / frontdesk / hk)
- Shared artifact folder created:
hmp-docs/docs/testing/phase1-mobile-artifacts/<date>/
1. Per-app smoke (must pass on all 4 devices)
1.1 KeyNova Housekeeping
| Device | Installs | Login | Task accept | Photo upload | Offline sync | Real-time | Logout |
|---|---|---|---|---|---|---|---|
| Galaxy A23 (A13) | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |
| Pixel 6 (A14) | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |
| S23 Ultra (A14) | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |
| Tab A8 (A11) | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |
1.2 KeyNova Manager
| Device | Installs | Login | Dashboard KPIs | Operations tab | Approve | Reports | Logout |
|---|---|---|---|---|---|---|---|
| Galaxy A23 (A13) | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |
| Pixel 6 (A14) | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |
| S23 Ultra (A14) | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |
| Tab A8 (A11) | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |
1.3 KeyNova F&B
| Device | Installs | Login | Tables plan | Order + modifier | Send KOT | Real-time KOT | Close table |
|---|---|---|---|---|---|---|---|
| Galaxy A23 (A13) | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |
| Pixel 6 (A14) | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |
| S23 Ultra (A14) | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |
| Tab A8 (A11) | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |
1.4 KeyNova Guest
| Device | Installs | Login | My Stay | Pre Check-In | Room Service | Request | Logout |
|---|---|---|---|---|---|---|---|
| Galaxy A23 (A13) | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |
| Pixel 6 (A14) | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |
| S23 Ultra (A14) | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |
| Tab A8 (A11) | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |
2. Cross-app scenarios (sample on 1 phone + 1 tablet)
| Scenario | HK | Manager | F&B | Guest |
|---|---|---|---|---|
| Battery ≤ 15% drain/hour (F&B ≤ 20%) | [ ] | [ ] | [ ] | [ ] |
| WiFi → cellular handoff mid-action, no duplicate | [ ] | [ ] | [ ] | [ ] |
| Cold start branded splash visible | [ ] | [ ] | [ ] | [ ] |
| Warm start resumes previous screen | [ ] | [ ] | [ ] | [ ] |
| Readable in low-light (back-of-house) | [ ] | [ ] | [ ] | [ ] |
| No crash on rotation (portrait locked) | [ ] | [ ] | [ ] | [ ] |
| TalkBack navigation works on login + primary CTA | [ ] | [ ] | [ ] | [ ] |
| Android large text (largest) — no critical truncation | [ ] | [ ] | [ ] | [ ] |
| One-handed thumb reach (HK / Guest only) | [ ] | — | — | [ ] |
3. Branding verification
| Check | HK | Manager | F&B | Guest |
|---|---|---|---|---|
| Launcher icon is KeyNova K-leaf placeholder | [ ] | [ ] | [ ] | [ ] |
| Launcher name starts with "KeyNova " | [ ] | [ ] | [ ] | [ ] |
Splash background is navy #0A1628 | [ ] | [ ] | [ ] | [ ] |
| Header bar navy with gold accents | [ ] | [ ] | [ ] | [ ] |
| Primary CTAs gold on navy | [ ] | [ ] | [ ] | [ ] |
| Zero "HMP" text anywhere in UI | [ ] | [ ] | [ ] | [ ] |
Deep link scheme keynova-*:// | [ ] | [ ] | [ ] | [ ] |
4. Known placeholder items — waive for Phase 1 (must all be acknowledged)
| Item | Acknowledged | Phase 2 ticket |
|---|---|---|
| Logo SVG is RN-rendered placeholder (design pending) | [ ] | ____________ |
| Satoshi font not loaded (system font fallback) | [ ] | ____________ |
| Splash PNG is old Expo art (navy background masks) | [ ] | ____________ |
| Launcher icon is placeholder | [ ] | ____________ |
| Notification icon is placeholder (Manager only) | [ ] | ____________ |
| iOS builds not configured | [ ] | ____________ |
| Guest app has no push notifications | [ ] | ____________ |
| Guest app is English-only | [ ] | ____________ |
| F&B payment collection is view-only (no Razorpay SDK yet) | [ ] | ____________ |
| Pre Check-In has no ID photo upload | [ ] | ____________ |
5. Blockers found (list here — must be empty to launch)
<one row per blocker>
Severity | Device | App | Check ID | Description | Owner | Status
6. Degraded items shipped (document in release notes)
<one row per degraded item>
Device | App | Description | Impact | Phase 2 ticket
7. Final sign-off
- All Section 1 smoke checkboxes ticked (or explicitly waived with P1 ticket)
- All Section 2 cross-app scenarios passed
- All Section 3 branding checks passed
- All Section 4 placeholder items acknowledged with Phase 2 ticket numbers
- Section 5 blockers list is empty
- Section 6 degraded items are in the Phase 1 release notes
QA lead sign-off:
Name: __________________________
Date: __________________________
Time: __________________________
GO / NO-GO: __________________________
Comments: __________________________________________
__________________________________________
__________________________________________
Mobile team lead sign-off (acknowledges placeholder items + Phase 2 backlog):
Name: __________________________
Date: __________________________
Signature: _____________________
Release manager sign-off (authorizes production APK distribution):
Name: __________________________
Date: __________________________
Signature: _____________________
8. Appendix — Quick reference
8.1 Android version / device quick-reference
| Slot | Device | Android | Primary for |
|---|---|---|---|
| 1 | Galaxy A23 | 13 | Budget phone coverage |
| 2 | Pixel 6 | 14 | Stock Android baseline |
| 3 | S23 Ultra | 14 | Phablet / manager |
| 4 | Tab A8 | 11 | Older Android / tablet |
8.2 Test credentials quick-reference
| Role | Password | |
|---|---|---|
| Admin | admin@hmphotel.com | <REDACTED> |
| Manager | manager@hmphotel.com | <REDACTED> |
| Front desk | frontdesk@hmphotel.com | <REDACTED> |
| Housekeeping | hk@hmphotel.com | <REDACTED> |
8.3 Backend URLs
| Env | URL |
|---|---|
| QA (Apr 7-10) | http://43.204.247.178/api |
| Prod (Apr 11+) | https://api.keynova.in/api (TBD — update eas.json + rebuild) |
8.4 APK install quick command
adb install -r keynova-<app>-preview-YYYYMMDD-HHMM.apk
8.5 Emergency rollback
If a P0 blocker emerges mid-launch-day:
- QA lead notifies
#keynova-phase1-launchSlack channel - Mobile on-call rolls APK back via
hmp-infrastructure/releases/phase1-mobile/previous/ - Property staff re-install previous APK per sideload instructions
- Incident recorded in
hmp-infrastructure/incidents/phase1-mobile-<date>.md