Skip to content

raymondclowe/physics_helper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IB Physics HL Trainer

An interactive web application for IB Physics Higher Level exam preparation, featuring adaptive difficulty, spaced repetition, and comprehensive topic coverage.

🎯 Features

  • 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

📚 Topics Covered

Theme A: Space, Time & Motion (Levels 1-9)

  • Measurements & Uncertainties
  • Kinematics (1D and 2D motion)
  • Forces & Newton's Laws
  • Energy & Power
  • Momentum & Impulse
  • Circular Motion
  • Gravitation

Theme B: The Particulate Nature of Matter (Levels 10-11)

  • Thermal Physics
  • Ideal Gas Laws

Theme C: Wave Behaviour (Levels 12-14)

  • Wave Properties
  • Wave Phenomena (Doppler, Interference, Diffraction)

Theme D: Fields (Levels 15-18)

  • Electric Fields & Coulomb's Law
  • DC Circuits
  • Magnetic Fields
  • Electromagnetic Induction

Theme E: Nuclear & Quantum Physics (Levels 19-25)

  • Atomic Physics
  • Nuclear Physics & Radioactivity
  • Quantum Physics
  • Special Relativity

🚀 Getting Started

  1. Open index.html in a modern web browser
  2. Enter your name when prompted
  3. Start with the calibration questions to set your level
  4. Practice and track your progress!

🛠️ Technical Stack

  • 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)

📁 Project Structure

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

🔧 Debug Mode

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

📊 Data Storage

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.

🎓 Based on IB Physics Curriculum

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

📖 Related Documentation

🙏 Acknowledgments

Based on the algebra_helper project architecture, adapted for IB Physics HL content.


Built for IB Physics HL students preparing for exams.

Releases

No releases published

Packages

 
 
 

Contributors