← All projects

Intermediate project

Quiz App

Build reusable questions, scoring, and review states — a simplified version of this platform's own quiz engine.

The problem

Building your own quiz engine is the best way to deeply understand state machines: idle, in-progress, and reviewed.

User stories

  • As a user, I want to answer multiple-choice questions one at a time, so I can focus on each question.
  • As a user, I want to see my final score and review my answers, so I can learn from mistakes.

Planning checklist

  • Define the question data shape
  • Decide the scoring rule and passing threshold
  • Plan the three states: in-progress, finished, review

Suggested data structure

const question = { question: "...", options: ["..."], answer: 0 };

UI requirements

  • One question at a time with selectable options
  • A progress indicator
  • A results screen with a review of each answer

Build milestones

Check off each milestone as you complete it — saved to this device.

…

0%

Testing checklist

  • Scoring is correct for an all-correct and an all-wrong run
  • The review screen accurately reflects what was answered

Completion criteria

…

0%

Progressive support

RequirementsPlanningStarterHintsReference Solution
Bonus features
  • Add a timer per question
  • Add categories/difficulty selection
  • Persist best score across sessions