AI-powered interview preparation for React Native. Paste a job description, pick a target role, and get a structured prep plan with technical questions, HR questions, DSA topics, resume tips, and project suggestions.
Built with Expo SDK 56, TypeScript, NativeWind, React Navigation, and the Gemini API.
| Home | Result | History |
|---|---|---|
![]() |
![]() |
![]() |
- Generate interview prep plans from a job description
- Role-based targeting (e.g. Frontend, Backend, Full Stack)
- Structured results: technical, HR, DSA, resume, and project sections
- Expandable result cards with session summary
- Local session history (AsyncStorage)
- Response caching and request deduplication to reduce API usage
- Mock mode for development without API calls
- Dark, glassmorphism UI with premium animations
- Node.js (LTS recommended)
- Expo CLI (via
npx expo) - iOS Simulator, Android emulator, or Expo Go
- A Google AI Studio API key (for live AI generation)
npm installCopy the example env file and add your Gemini API key:
cp .env.example .envEdit .env:
EXPO_PUBLIC_GEMINI_API_KEY=your_gemini_api_key_hereOptional:
EXPO_PUBLIC_GEMINI_MODEL=gemini-2.0-flash
EXPO_PUBLIC_USE_MOCK_AI=trueImportant: Never commit
.envor share API keys. OnlyEXPO_PUBLIC_*variables are available in the client bundle.
npx expo startThen press i for iOS, a for Android, or w for web.
Clear the Metro cache if env changes do not apply:
npx expo start --clear| Command | Description |
|---|---|
npm start |
Start Expo dev server |
npm run ios |
Start and open iOS |
npm run android |
Start and open Android |
npm run web |
Start and open web |
npm run lint |
Run ESLint |
App.tsx # App entry (navigation + theme)
src/
screens/ # Home, History, Result
navigation/ # React Navigation stack
components/
ui/ # Design system (buttons, cards, inputs)
result/ # Result screen components
history/ # History list items
hooks/ # useInterviewPrep, useSessionHistory
services/ # Gemini API, cache, sessions, mock data
constants/ # Theme, roles, result sections
config/ # Environment config
types/ # TypeScript types
utils/ # Parsing, formatting, helpers
- Home — User pastes a job description and selects a target role.
- Generate —
interviewServicechecks mock mode, cache, then calls Gemini (with quota fallback to mock data when needed). - Result — Parsed JSON is shown in expandable sections and saved to history.
- History — Past sessions are stored locally and can be reopened or deleted.
- Mock AI: Set
EXPO_PUBLIC_USE_MOCK_AI=truein.envto skip Gemini calls during UI work. - Quota limits: Free-tier Gemini keys may hit rate limits; the app can fall back to mock data and show a notice on the result screen.
- Expo docs: This project targets Expo SDK 56.
- React Native + Expo 56
- TypeScript
- React Navigation (native stack)
- NativeWind v4 + Tailwind CSS
- React Native Reanimated
- AsyncStorage
- Google Gemini API (REST)
Private project. All rights reserved unless otherwise specified.


