Room Music Controller is a web application that allows a host to create a room for music playback and share the room with guests. Guests can join using a unique room code provided by the host. The application integrates with the Spotify API to allow room-based music control with the following features:
-
Host Permissions:
- Only the host can update room settings, such as the number of votes required to skip a song.
- The host has exclusive permission to skip or play songs at any time.
-
Guest Permissions:
- Guests can join a room using the room code.
- Guests can vote to skip the current song. If the number of votes exceeds the threshold set by the host, the song will be skipped.
- Guests can leave the room.
The application uses Django for backend development, React for frontend, session management for user identification, and integrates the Spotify API with Spotify authentication for music playback.
-
Room Creation and Joining:
- Hosts can create rooms with customizable settings.
- Guests can join rooms using a unique code.
-
Spotify Integration:
- Music playback from the host's Spotify playlist.
- Spotify authentication ensures secure access to the Spotify account.
-
Song Voting System:
- Guests can vote to skip songs.
- The song is skipped if the votes exceed the set threshold.
-
Session Management:
- Ensures that hosts and guests maintain their roles within the room.
-
Host Controls:
- Hosts can play, pause, and skip songs manually.
- Hosts can update the voting threshold and other settings.
Potential enhancements include:
- Adjusting playback volume from the app.
- Displaying the entire song queue for the room.
- Allowing guests to add songs to the queue.
- Providing room-wide chat functionality.
- Frontend: React.js
- Backend: Django Framework
- Authentication: Spotify API and OAuth
- Session Management: Django Sessions
-
Clone the repository:
git clone https://github.com/munavarhs/House-Party-with-Spotify cd room-music-controller
-
Install backend dependencies:
pip install -r requirements.txt
-
Install frontend dependencies:
cd frontend npm install
-
Set up Spotify Developer credentials:
- Create a Spotify Developer account and register an application.
- Add your Redirect URI and note down the
Client ID
andClient Secret
. - Add these credentials to your environment variables or Django settings.
-
Run the application:
# Backend python manage.py runserver # Frontend cd frontend npm start
-
Access the application at
http://localhost:8000
.
We welcome contributions! Please:
- Fork the repository.
- Create a new branch for your feature/bug fix.
- Submit a pull request with a detailed description of changes.
This project is licensed under the MIT License. See the LICENSE file for details.
For questions or feedback, reach out via [munnavar29@gmail.com] or create an issue on GitHub.