A web application to help cellists prepare for exams by selecting and tracking practice of scales and arpeggios.
- Scale & Arpeggio Configuration: Enable/disable specific scales and arpeggios for your exam grade
- Weighted Selection: Adjust weights to prioritize certain scales
- Smart Practice Sets: Generate balanced, randomized practice sets
- Practice Tracking: Track what you've practiced to inform future selections
- Configurable Algorithm: Tune the selection algorithm to your needs
- PWA Support: Install on mobile devices for easy access
- Python 3.11+
- Node.js 18+
- npm
cd backend
pip install -r requirements.txt
uvicorn main:app --reload --port 8000cd frontend
npm install
npm run devOpen http://localhost:5173 in your browser.
- Scales Tab: Enable scales relevant to your exam, adjust weights for scales you want to practice more
- Arpeggios Tab: Same for arpeggios
- Algorithm Tab: Configure selection parameters:
- Total items per practice set
- Octave variety (mix different octave counts)
- Maximum arpeggio percentage
- Weighting parameters
- Click "Generate Practice Set" to get a randomized selection
- Practice each item and check it off
- Click "Save Practice Session" to record your progress
- View practice history to see what needs more attention
┌─────────────────────────────────────────────────────┐
│ Frontend (React + Vite PWA) │
│ TypeScript, React Router, TanStack Query │
├─────────────────────────────────────────────────────┤
│ REST API (FastAPI) │
├─────────────────────────────────────────────────────┤
│ SQLite Database │
└─────────────────────────────────────────────────────┘
- Major
- Minor Harmonic
- Minor Melodic
- Chromatic
- Major
- Minor
- Diminished
- Dominant
See CONTRIBUTING.md for guidelines.
See DEVELOPMENT.md for setup instructions.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.