A practice session manager that helps drummers follow structured daily routines with warmups, exercises, and songs.
- Overview
- Features
- Tech Stack
- Getting Started
- Project Structure
- Development
- Deployment
- Documentation
- Contributing
DrumFlow is an ADHD-friendly drum practice app that generates personalized daily routines using smart rotation algorithms. Practice consistently with structured 20-minute or quick 10-minute sessions.
Live Demo: https://drumflow.netlify.app
- π΅ Smart Routine Generation - Daily rotation with pin/exclude preferences
- β‘ Two Session Types - 20-min full practice or 10-min quick session
- π Lesson Library - Organized warmups, grooves, and practice lessons
- πΌ Song Progression - Structured learning path from beginner to advanced
- π Progress Tracking - Streak counter, session history, song completion
- πΎ Local Persistence - All data stored in browser localStorage
- ADHD-Friendly - Clear visual hierarchy, minimal decisions
- Consistent Practice - Automatic daily routines reduce decision fatigue
- Flexible Learning - Pin favorites, exclude items you want to skip
- Progressive Difficulty - Structured song progression from beginner to goal
- Frontend: React 18, JavaScript (ES6+)
- Styling: Tailwind CSS
- Icons: Lucide React
- State Management: React Hooks (useState, useEffect, custom hooks)
- Data Persistence: Browser localStorage
- Build Tool: Create React App
- Hosting: Netlify
- Version Control: Git & GitHub
- Node.js (v14 or higher)
- npm or yarn
- Git
-
Clone the repository
git clone https://github.com/yourusername/drumflow.git cd drumflow -
Install dependencies
npm install
-
Start development server
npm start
-
Open in browser
http://localhost:3000
npm run builddrumflow/
βββ public/
β βββ index.html
β βββ favicon.ico
βββ src/
β βββ components/ # Reusable UI components
β β βββ Header.js
β β βββ SessionFlow.jsx
β βββ pages/ # Page-level components
β β βββ HomePage.jsx
β β βββ LibraryPage.jsx
β β βββ SongsPage.jsx
β βββ hooks/ # Custom React hooks
β β βββ useRoutineGenerator.js
β βββ data/ # Data models and constants
β β βββ DrumData.v2.js
β βββ App.js # Main app component
β βββ index.js # React entry point
βββ docs/ # Project documentation
β βββ REFACTOR_V2.md
β βββ ARCHITECTURE.md
β βββ CHANGELOG.md
βββ .gitignore
βββ package.json
βββ README.md
| Command | Description |
|---|---|
npm start |
Start development server |
npm test |
Run test suite |
npm run build |
Build for production |
npm run eject |
Eject from CRA (irreversible) |
-
Create a branch for your feature
git checkout -b feature/your-feature-name
-
Make changes and test locally
npm start
-
Commit your changes
git add . git commit -m "feat: add your feature description"
-
Push to GitHub
git push origin feature/your-feature-name
-
Create Pull Request on GitHub
We follow Conventional Commits:
feat:New featurefix:Bug fixdocs:Documentation changesstyle:Code style changes (formatting)refactor:Code refactoringtest:Adding or updating testschore:Maintenance tasks
Examples:
git commit -m "feat: add 10-minute quick session option"
git commit -m "fix: resolve routine generation bug"
git commit -m "docs: update README with setup instructions"Automatic Deployment (via GitHub):
- Connect repository to Netlify
- Build settings:
- Build command:
npm run build - Publish directory:
build
- Build command:
- Deploy automatically on push to
main
Manual Deployment:
npm run build
netlify deploy --prod --dir=buildThe app can be deployed to any static hosting service:
- Vercel
- GitHub Pages
- Firebase Hosting
- AWS S3 + CloudFront
All documentation is in the docs/ folder:
- REFACTOR_V2.md - V2 refactoring guide
- ARCHITECTURE.md - System architecture & design decisions
- CHANGELOG.md - Version history and release notes
This is currently a solo project, and contributions are welcome!
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Use meaningful variable and function names
- Comment complex logic
- Follow React best practices
- Keep components focused and reusable
- Write tests for critical functionality
Check the Issues page for current bugs and feature requests.
This project is licensed under the MIT License - see the LICENSE file for details.
- All drum instructors whose videos are linked for generously providing amazing educational content
- YouTube for offering a platform to share great content
- All bands, for creating inspiring songs
- Project Link: https://github.com/SilviaMiranda/drumflow
- β Smart routine generation with pins/excludes
- β 10-minute quick sessions
- β Improved UI/UX design
- β Song progression tracking
- Practice session timer with notifications
- BPM metronome integration
- Export practice history to CSV
- Dark mode support
- User accounts and cloud sync
- Community-shared lessons
- Video embedding instead of external links
- Mobile app (React Native)
Made with β€οΈ and π₯ by drummers, for drummers.