@daniyalsh/ipho
v1.0.3
Published
Local IPhO study library — Kevin Zhou handouts, phoXiv past papers, progress tracking, Xournal++
Downloads
471
Maintainers
Readme
ipho
Local IPhO study library — download Kevin Zhou's training handouts and official IPhO theory papers, then study offline with progress tracking, solution PDFs, photo uploads, and Xournal++ notebooks.
- Handouts from knzhou.github.io
- Past papers from phoXiv — IPhO theory T1–T3 (2001+)
- Private — everything runs locally
📖 Documentation & tutorial · 🐙 GitHub · 📦 npm
Install
Requires Node.js 18+.
npm install -g @daniyalsh/iphonpm package not found? Install from GitHub instead:
npm install -g github:daniyal-sh/iphoOr from source:
git clone https://github.com/daniyal-sh/ipho.git
cd ipho
npm install
npm linkQuick start
ipho download all
iphoOpens http://127.0.0.1:3847 — pick a handout and start working.
CLI
| Command | Description |
|---------|-------------|
| ipho | Download handouts, serve, open browser |
| ipho download handouts | Kevin Zhou PDFs |
| ipho download ipho | IPhO theory from phoXiv |
| ipho download ipho -y 2024 | Single year |
| ipho download all | Everything |
| ipho serve | Server only |
| ipho status | Files on disk |
| ipho xournal status | Xournal++ check |
Full reference: CLI docs · Tutorial
Features
- Browse curriculum, USAPhO mocks, and IPhO past papers
- PDF viewer with handout / solution toggle
- Per-problem status, notes, photo uploads
- Xournal++
.xoppnotebooks with continue / sync
Library layout
Default: ./ipho-library (or IPHO_DIR / ipho -d)
ipho-library/
handouts/ # PDFs
data/
progress.json
uploads/
xournal/Environment variables
| Variable | Default | Purpose |
|----------|---------|---------|
| IPHO_DIR | ./ipho-library | Library directory |
| IPHO_PORT | 3847 | Server port |
| IPHO_HANDOUTS_URL | knzhou.github.io raw URL | Handout source |
Handout letters
| Letter | Topic | |--------|-------| | P | Problem Solving | | M | Mechanics | | E | E&M | | T | Thermodynamics | | R | Relativity | | W | Waves | | X | Modern Physics | | O | USAPhO mocks | | I | IPhO past papers |
Troubleshooting
Windows: EEXIST: ipho already exists
npm uninstall -g ipho @daniyalsh/ipho
Remove-Item -Force "$env:APPDATA\npm\ipho*" -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force "$env:APPDATA\npm\node_modules\@daniyalsh" -ErrorAction SilentlyContinue
npm install -g @daniyalsh/iphoClose terminals running ipho serve first.
npm package not found
Publish may be pending. Use npm install -g github:daniyal-sh/ipho or clone and npm link.
Publish to npm
npm login
npm publish --access publicPackage name: @daniyalsh/ipho · CLI command: ipho
GitHub Pages
Docs in docs/ deploy via GitHub Actions to https://daniyal-sh.github.io/ipho/
Credits
- Tool — MIT © daniyal-sh
- Handouts — © Kevin Zhou
- Past papers — phoXiv
Contributing
See CONTRIBUTING.md. Issues welcome on github.com/daniyal-sh/ipho.
