Mix Master is a full-stack application designed to help DJs create, organize, and manage their performance setlists. It allows users to add, remove, and reorder songs while keeping track of key details such as BPM and transitions, ensuring a seamless flow during live performances.
Mix Master serves as an essential tool for DJs, offering a user-friendly interface to streamline the setlist creation process. By providing detailed song management features, it enhances the efficiency and creativity of DJs, enabling them to craft perfect mixes for their gigs.
- React: To create a dynamic and responsive user interface.
- Express & Node.js: For building a robust back-end API to handle data operations.
- MongoDB & Mongoose: To store and manage the songs and setlists efficiently, with flexibility in data modeling.
- TypeScript: To enforce type safety and improve code quality, making the development process smoother and less error-prone.
- ESLint & Prettier: To maintain consistent code formatting and standards across the project.
- react-beautiful-dnd: To provide intuitive drag-and-drop functionality for reordering songs in a setlist.
- Integrating drag-and-drop functionality while maintaining performance and smooth UI transitions.
- Ensuring seamless communication between the front-end and back-end, especially during real-time data updates.
- Sharing Setlists: Allowing users to share their setlists with others.
- Soundcloud API Integration: Adding a powerful search feature to quickly find songs published on SoundCloud.
To run Mix Master locally, follow these steps:
-
Clone the repository:
git clone https://github.com/your-username/mix-master.git cd mix-master -
Install dependencies:
npm install
-
Set up environment variables:
- Create a
.envfile in the root directory. - Add the necessary environment variables such as
MONGO_URI,PORT, etc.
- Create a
-
Start the development server:
npm run dev
-
Build the front-end:
npm run build
-
Run the project:
The application should now be running at http://localhost:3000.
-
Create a Setlist:
- Navigate to the setlist creation page.
- Add songs by filling in details such as title, intro BPM, outro BPM, and transitions.
-
Manage Songs:
- Drag and drop songs to reorder them within the setlist.
- Edit or remove songs as needed.
-
Save and Access Setlists:
- Save your setlist for future use.
- Access saved setlists from the dashboard for quick edits and updates.
-
Sign Up and Log In:
- Navigate to the sign-up page to create a new user account.
- After signing up, log in using your credentials to access and manage your personalized setlists.
This project is licensed under the MIT License. See the LICENSE file for more details.
To run the tests for Mix Master:
-
Run integration tests:
npm run test