An interactive web application for IB Physics Higher Level exam preparation, featuring adaptive difficulty, spaced repetition, and comprehensive topic coverage.
- 25 Levels covering all IB Physics HL syllabus topics
- Adaptive difficulty - questions adjust based on your performance
- Spaced repetition - optimized review scheduling
- Progress tracking - detailed statistics and history
- Offline support - works without internet connection (PWA)
- Mobile-friendly - responsive design for all devices
- Measurements & Uncertainties
- Kinematics (1D and 2D motion)
- Forces & Newton's Laws
- Energy & Power
- Momentum & Impulse
- Circular Motion
- Gravitation
- Thermal Physics
- Ideal Gas Laws
- Wave Properties
- Wave Phenomena (Doppler, Interference, Diffraction)
- Electric Fields & Coulomb's Law
- DC Circuits
- Magnetic Fields
- Electromagnetic Induction
- Atomic Physics
- Nuclear Physics & Radioactivity
- Quantum Physics
- Special Relativity
- Open
index.htmlin a modern web browser - Enter your name when prompted
- Start with the calibration questions to set your level
- Practice and track your progress!
- HTML5 - Semantic markup
- Tailwind CSS - Utility-first styling (via CDN)
- Vanilla JavaScript - No framework dependencies
- MathJax 4 - LaTeX equation rendering
- Chart.js - Statistics visualization
- IndexedDB - Local data persistence
- Service Worker - Offline support (PWA)
physics_helper/
├── index.html # Landing page
├── physics-helper.html # Main application
├── manifest.json # PWA manifest
├── css/
│ └── styles.css # Custom styles
├── js/
│ ├── constants.js # App configuration
│ ├── state.js # Application state
│ ├── storage-manager.js # IndexedDB & localStorage
│ ├── topic-definitions.js # Level-topic mapping
│ ├── generator.js # Question dispatcher
│ ├── calibration.js # Initial level calibration
│ ├── drill.js # Practice session logic
│ ├── gamification.js # XP, streaks, badges
│ ├── ui.js # UI rendering
│ ├── main.js # Application entry point
│ └── question-templates/ # Physics question generators
│ ├── physics-constants.js # IB data booklet values
│ ├── generator-utils.js # Shared utilities
│ ├── measurements.js # Level 1
│ ├── kinematics.js # Levels 2-3
│ ├── forces.js # Levels 4-5
│ ├── energy-power.js # Level 6
│ ├── momentum.js # Level 7
│ ├── circular-motion.js # Level 8
│ ├── gravitation.js # Level 9
│ ├── thermal.js # Level 10
│ ├── gas-laws.js # Level 11
│ ├── waves.js # Levels 12-13
│ ├── wave-phenomena.js # Level 14
│ ├── electricity.js # Level 15
│ ├── circuits.js # Level 16
│ ├── magnetism.js # Level 17
│ ├── em-induction.js # Level 18
│ ├── atomic.js # Level 19
│ ├── nuclear.js # Levels 20-21
│ ├── quantum.js # Levels 22-23
│ └── relativity.js # Levels 24-25
└── FUTURE_ENHANCEMENTS.md # Enhancement roadmap
Add ?debug=true to the URL to enable debug mode:
- Level selector dropdown
- Question regeneration button
- Performance metrics display
Example: physics-helper.html?debug=true
All student data is stored locally:
- IndexedDB (
PhysicsHelperDB) - Question history with full details - localStorage - Cumulative statistics, preferences, daily tracking
Data can be exported to CSV for integration with Google Sheets or other tools.
Questions are designed to match IB Physics HL exam style:
- Multiple choice format (like Paper 1)
- Uses IB data booklet constants
- Follows IB command terms
- Covers all assessment objectives
- FUTURE_ENHANCEMENTS.md - Planned features and improvements
Based on the algebra_helper project architecture, adapted for IB Physics HL content.
Built for IB Physics HL students preparing for exams.