A Flutter app for learning musical instruments with gamification elements. Start your musical journey with interactive piano lessons and progress tracking!
- Interactive piano keyboard
- Step-by-step lessons from beginner to advanced
- Real-time feedback and progress tracking
- Sound integration for authentic learning experience
- Points and level system
- Achievement badges
- Daily streak tracking
- Progress visualization
- Piano (fully implemented)
- Guitar (coming soon)
- Violin (coming soon)
- Drums (coming soon)
- Saxophone (coming soon)
- Flute (coming soon)
- Lesson completion tracking
- Performance analytics
- Achievement system
- Personal progress dashboard
- Flutter SDK (>=3.10.0)
- Dart SDK (>=3.0.0)
- Android Studio / VS Code
- Android device or emulator
- Clone the repository:
git clone <repository-url>
cd musicguru- Install dependencies:
flutter pub get-
Add sound assets:
- Download piano note sound files (C4.mp3, D4.mp3, etc.)
- Place them in
assets/sounds/directory - See
assets/sounds/README.mdfor details
-
Add fonts (optional):
- Download Poppins font family
- Place font files in
fonts/directory
-
First time app build:
flutter create .- Run the app:
flutter runlib/
├── main.dart # App entry point
├── models/
│ ├── instrument.dart # Instrument data models
│ └── lesson.dart # Lesson and note models
├── providers/
│ └── progress_provider.dart # State management for progress
├── screens/
│ ├── home_screen.dart # Main dashboard
│ ├── instrument_screen.dart # Instrument selection
│ └── piano_lesson_screen.dart # Piano lesson interface
└── widgets/
├── instrument_card.dart # Instrument selection card
├── lesson_card.dart # Individual lesson card
├── piano_keyboard.dart # Interactive piano widget
└── progress_header.dart # Progress display header- provider: State management
- shared_preferences: Local data persistence
- audioplayers: Sound playback
- flutter_animate: Smooth animations
- confetti: Celebration effects
- fl_chart: Progress charts
- Add instrument to
InstrumentTypeenum inmodels/instrument.dart - Create instrument entry in
Instrument.instrumentslist - Implement lessons in respective model files
- Create dedicated lesson screen
- Create lesson data in
models/lesson.dart - Add to respective instrument's lesson list
- Implement lesson logic in lesson screen
- Modify point values in lesson models
- Update achievement criteria in
ProgressProvider - Add new achievement types and tracking
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Flutter team for the amazing framework
- Music education community for inspiration
- Contributors and testers
- More instruments (guitar, violin, drums, etc.)
- Advanced lesson types (chords, scales, songs)
- Social features (leaderboards, challenges)
- AI-powered feedback
- Offline mode support
- Tablet optimization
- Web platform support