Pre Launch Checklist
Pre-Launch Checklist
Use this checklist before connecting the Interview API and before each release to verify environment, API, payments, features, and builds.
1. Environment Setup
- Required env vars (set in EAS Secrets or
.envfor dev):EXPO_PUBLIC_API_URL– Interview API base URL (see API Connection below).EXPO_PUBLIC_REVENUECAT_IOS_API_KEY– RevenueCat iOS key.EXPO_PUBLIC_REVENUECAT_ANDROID_API_KEY– RevenueCat Android key.
- EAS secrets: All production keys are in EAS Secrets (not committed). Run
eas secret:listto confirm. - Verify env in build: In a dev build, confirm env vars are present (e.g. API URL is set if you expect AI Interview to work).
2. API Connection
- Set
EXPO_PUBLIC_API_URL:- Production: e.g.
https://api.civixapp.us(no trailing slash). - Local:
http://localhost:3000or tunnel URL (e.g. ngrok). - Leave empty for offline/mock-only behavior.
- Production: e.g.
- Verify API is reachable:
- App startup runs
isAPIAvailable()and stores result; Interview tab shows "AI Assisted" when available, "Local Fallback" when not. - If API is down or URL missing, a non-blocking banner shows: "AI Interview unavailable. Try Mock Interview instead."
- App startup runs
- Test checklist (with API connected):
- Start AI Interview → welcome message and first officer message appear.
- Send a message → officer response within a few seconds.
- Complete interview (or run through phases) → results screen and stats saved.
See docs/API-CONNECTION-GUIDE.md for setup and troubleshooting.
3. Payment Setup
- RevenueCat: API keys set for iOS and Android (see Environment above).
- Product IDs: Verify product IDs in RevenueCat match the app (e.g. premium unlock).
- Test purchase flow: On a dev build / TestFlight, run through purchase and restore; confirm premium unlocks and paywall behavior.
4. Feature Verification
- Quiz: Start quiz → answer questions → see results; learning vs exam mode; difficulty; results saved.
- Practice: Start practice → answer with feedback; timer; results saved.
- Mock Interview: Disclaimer → mode/difficulty → full flow (oath, N-400, reading, writing, civics) → results.
- AI Interview (when API available): Start → chat → phase transitions → complete → results. When API unavailable, fallback to Mock Interview or clear error + "Try Mock Interview."
- Settings & profile: Language switch, profile name/photo, theme (light/dark/system), clear data / hard reset.
- Offline: Offline indicator appears when offline; quiz and practice work offline; Mock Interview works offline; AI Interview shows unavailable or fallback.
5. Build Verification
- Development build: Run a dev build; all native features (RevenueCat, API URL) work as expected.
- TestFlight / Internal Testing: Install and run full smoke test (onboarding, quiz, practice, paywall, interview).
- Production build: Preflight passes (
npm run preflight); no TypeScript/lint errors; tests pass (see docs/TESTING.md).
6. Quick Reference
| Item | Where / How |
|---|---|
| API URL | EXPO_PUBLIC_API_URL in EAS Secrets or .env |
| API status in app | Interview tab header: "AI Assisted" vs "Local Fallback"; banner if unavailable |
| RevenueCat | EAS Secrets; test purchase on dev/TestFlight build |
| Full testing doc | docs/TESTING.md |
| Production rules | docs/08-PRODUCTION-READINESS.md |