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 .env for 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:list to 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:3000 or tunnel URL (e.g. ngrok).
    • Leave empty for offline/mock-only behavior.
  • 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."
  • 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

ItemWhere / How
API URLEXPO_PUBLIC_API_URL in EAS Secrets or .env
API status in appInterview tab header: "AI Assisted" vs "Local Fallback"; banner if unavailable
RevenueCatEAS Secrets; test purchase on dev/TestFlight build
Full testing docdocs/TESTING.md
Production rulesdocs/08-PRODUCTION-READINESS.md