🎹 A modern CRUD web application that transforms piano performances into beautiful sheet music in real-time.
Built with the MERN stack (MongoDB, Express, React, Node.js).
- Interactive Piano: A virtual keyboard that responds to user input with sound.
- Real-time Notation: Instant conversion of key presses into ABC notation.
- Sheet Music Preview: Dynamic rendering of sheet music as you play.
- Composition Management: Save, title, and manage your musical creations.
- Secure Auth: JWT-based user authentication to protect your work.
- Node.js & Express: RESTful API server.
- MongoDB & Mongoose: Flexible NoSQL database for users and music storage.
- JWT & Bcrypt: Secure authentication and password hashing.
- React: Modern component-based UI.
- Vite: Ultra-fast build tool and dev server.
- ABCJS: Professional music notation rendering.
- Axios: Promised-based HTTP client for API requests.
.
├── backend/ # Express.js API server
├── frontend/ # React + Vite web application
├── docs/ # Technical documentation
└── package.json # Root package for workspace management
- Node.js (v18 or higher)
- npm (v9 or higher)
- MongoDB (running locally or in the cloud)
Install dependencies for both frontend and backend using npm workspaces:
npm run install-allFrom the root directory, you can run both servers concurrently:
npm run devIf you prefer to run them separately:
Backend:
cd backend
cp .env.example .env
npm run devFrontend:
cd frontend
cp .env.example .env
npm run devPORT- Port for the backend server (default: 5001)MONGODB_URI- Your MongoDB connection stringJWT_SECRET- Secret key for JWT signing
VITE_API_URL- URL of the backend API
This project is licensed under the MIT License.