Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CTFL 4.0 Study Lab — Unofficial ISTQB® Foundation Exam Prep

CI/CD Deploy Node React TypeScript Vite Vitest Playwright License

Live demo →

Tired of reading CTFL notes and not knowing if anything is sticking? This app turns passive study into active practice — original quizzes, fast-recall flashcards, and real-world scenario drills, all in your browser with no account required.

Built for people preparing for the ISTQB Certified Tester Foundation Level (CTFL) v4.0 exam.

Important: This is an independent, unofficial project. ISTQB® and CTFL® names are used only to identify the certification being studied. Official syllabus, glossary, and sample exams remain the source of truth. See DISCLAIMER.md for full details.

Preview

App preview

What you get

  • Practice quiz — 120+ original multiple-choice questions covering all six syllabus areas, with instant rationale feedback after every answer
  • Exam simulator — 40 questions, 60-minute countdown timer, audio chimes at start/end, scored against the 26/40 passing threshold
  • Flashcards — shuffled active-recall cards to drill key terms and concepts
  • Scenario drills — short real-world prompts that train you to explain testing concepts the way you would in a job interview or on the exam
  • Chapter summaries — learning goals, key concepts, and study tactics for each of the six CTFL 4.0 syllabus areas
  • Progress tracking — browser-local, no sign-in, no server, no ads; your progress persists across sessions

How to use the app

Open the live demo and follow these steps:

  1. Pick a chapter — use the syllabus chapter panel on the left to focus on one area, or leave it on the first chapter to start from the beginning.
  2. Choose a mode — toggle between Practice (immediate feedback after each answer) and Exam (all answers revealed at the end with a pass/fail score).
  3. Answer questions — submit your answers and review the rationale for each one; understanding why matters more than memorising answers.
  4. Drill flashcards — scroll to the Flashcards section and hit Shuffle to get a fresh set; say the answer aloud before flipping.
  5. Try a scenario — the Scenario section gives you a real-world testing situation to explain; use it to practice speaking about concepts, not just recognising them.
  6. Track your progress — mark chapters as reviewed using the chapter panel; everything is saved automatically in your browser.

For a focused study plan from zero to exam-ready, see docs/fast-cert-prep.md.

Exam quick reference

Syllabus areas:

  1. Fundamentals of Testing
  2. Testing Throughout the Software Development Lifecycle
  3. Static Testing
  4. Test Analysis and Design
  5. Managing the Test Activities
  6. Test Tools

Always verify current details with your exam provider and the official ISTQB materials.

Tech stack

Area Library Version Role
UI React 19 Component model, concurrent rendering
Language TypeScript 6 (strict) End-to-end type safety
Bundler Vite 8 Dev server, production build, code splitting
Unit tests Vitest + Testing Library 4 / 16 Component and logic tests under jsdom
E2E tests Playwright 1.61 Real-browser quiz and progress coverage
Linting ESLint + typescript-eslint 10 / 8 Style and correctness checks
CI/CD GitHub Actions Lint → unit test → build → deploy to Pages
Fonts Fontsource variable fonts Inter (body) + Space Grotesk (headings), self-hosted

Getting started locally

Requirements: Node.js 26+, npm, Git.

git clone https://github.com/darekwojciechowski/istqb-foundation-4-study-lab.git
cd istqb-foundation-4-study-lab
npm install
npm run dev

Open the local URL printed by Vite (usually http://localhost:5173/).

macOS launcher (installs deps automatically, opens browser):

./scripts/run-macos.command

Windows launcher:

scripts\run-windows.cmd

For a full local setup guide and troubleshooting, see docs/running.md.

Architecture

The app is a pack-driven study shell — the React component tree has no knowledge of the subject being studied. All content and UI copy flows through a single KnowledgePack object defined in src/knowledge/types.ts.

CTFL 4.0 Study Lab architecture: a swappable Knowledge Pack feeds pure state logic and hooks, which drive the React UI and persist learner progress to browser localStorage, all covered by a Vitest and Playwright quality gate

Key design decisions:

  • Type-enforced pack contract: the KnowledgePack interface (src/knowledge/types.ts) uses DeepReadonly<T> and a NonEmptyReadonlyArray guard — a missing meta or empty syllabusChapters fails the build, not runtime. A complete "World Capitals & Geography" demo pack proves zero subject leakage (src/App.demoPack.test.tsx).
  • Pure logic, extracted hooks: quiz/progress/SRS rules are pure, React-free functions in src/lib/ driven by focused hooks (useQuizOrchestration, useProgressSync, useExamTimer) — the layering shown above, each unit-tested in isolation.
  • Content-integrity tests: beyond the unit/e2e runs above, dedicated tests guard answer distribution, per-chapter minimums, and English-only copy.

Switching to another certificate or topic

The shell is fully reusable. To adapt it to a different certification or subject:

  1. Author a new pack module (use src/knowledge/demoKnowledgePack.ts as a template).
  2. Point the app at it by editing src/knowledge/currentKnowledgePack.ts.
  3. The TypeScript compiler enforces the contract — missing required fields fail the build immediately.
  4. Optional sections auto-hide when their arrays are empty, so you only build what you need.

For the full walkthrough — authoring a pack, one-time repo-branding edits (package.json, Vite base path, index.html, favicon), and verification steps — see docs/swapping.md.

License

MIT — see LICENSE.

The bundled Inter and Space Grotesk fonts are licensed under the SIL Open Font License v1.1 — see THIRD_PARTY_NOTICES.md.

Disclaimer

Provided for educational purposes only, with no warranty and no guarantee of exam success. See DISCLAIMER.md.

About

Unofficial interactive study lab for the ISTQB CTFL v4.0 exam — quizzes, exam simulator, flashcards, and scenario drills, 100% in-browser.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages