App combines a chapter-based learning flow, exam simulation, a searchable glossary, and progress tracking that updates as you practice.
- Learning mode by chapter
Study questions and see explanations. - Exam mode
40 questions, 60-minute timer, 65% pass threshold, question flagging, and quick navigation. - Results and review flow
See score, pass/fail status, and review each question with correct answers. - Bookmarks
Save questions for later and revisit them in a dedicated screen. - Glossary
Search ISTQB terms and definitions from local data. - Adaptive reading preferences
Adjust text and spacing density for question-heavy screens.
The app tracks progress in two layers:
- Global progress: mastered questions across the whole question base (used on Home).
- Chapter progress data: mastered questions grouped by chapter/category
"Mastered" means a question answered correctly at least once.
- Framework: Expo + React Native + Expo Router
- Language: TypeScript
- Local database:
expo-sqlite(questions and glossary)
app/- screens and navigation routeshooks/- screen logic and state hooksservices/- use cases and domain servicesrepositories/- data access and persistence adaptersinfra/- database and storage infrastructuredata/- bundled question and glossary source filesui/- shared UI components
- Bun
>=1.1 - Expo Go app on your phone (Android/iOS)
- Internet connection on both computer and phone
bun installbun run startThen:
- open Expo Go on your phone,
- scan the QR code from terminal,
- launch the app.
Use Tunnel Mode when your phone and computer are on different networks, office Wi-Fi blocks local LAN discovery, or the QR connection fails.
Before using tunnel mode, ensure ngrok is installed and configured with your authtoken:
ngrok config add-authtoken <YOUR_TOKEN>Official documentation: ngrok.com/docs
Run the following command in your terminal:
bun expo start --tunnel- Initial Setup: The first launch may take longer than usual.
- Troubleshooting: If the tunnel connection fails, restart the process and try again.
-
No QR code / Expo Go cannot connect
- stop server (
Ctrl+C) and restart, - switch to tunnel mode (
bunx expo start --tunnel), - confirm both devices have internet access.
- stop server (
-
Dependency issues after copying/moving project
- remove
node_modules, - run
bun installagain.
- remove
- On first app launch, local SQLite is initialized and seeded from:
data/questions.normalized.jsondata/glosariusz.json
- Exam session and user progress are persisted locally, so progress survives app restarts.
- The app is currently localized for Polish content/UI.
