Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/munavarhs/house-party-with-spotify
An application integrated with Spotify. Music control is not in your hands anymore.
https://github.com/munavarhs/house-party-with-spotify
authentication django-application django-framework django-rest-framework javascript material-ui python3 react react-hooks react-router session-management spotify-premium-mod spotify-web-api
Last synced: 4 days ago
JSON representation
An application integrated with Spotify. Music control is not in your hands anymore.
- Host: GitHub
- URL: https://github.com/munavarhs/house-party-with-spotify
- Owner: munavarhs
- Created: 2024-12-27T18:55:07.000Z (5 days ago)
- Default Branch: main
- Last Pushed: 2024-12-27T19:20:14.000Z (5 days ago)
- Last Synced: 2024-12-27T20:19:21.926Z (5 days ago)
- Topics: authentication, django-application, django-framework, django-rest-framework, javascript, material-ui, python3, react, react-hooks, react-router, session-management, spotify-premium-mod, spotify-web-api
- Language: Python
- Homepage:
- Size: 640 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Room Music Controller
## Project Description
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.
## Features
1. **Room Creation and Joining:**
- Hosts can create rooms with customizable settings.
- Guests can join rooms using a unique code.2. **Spotify Integration:**
- Music playback from the host's Spotify playlist.
- Spotify authentication ensures secure access to the Spotify account.3. **Song Voting System:**
- Guests can vote to skip songs.
- The song is skipped if the votes exceed the set threshold.4. **Session Management:**
- Ensures that hosts and guests maintain their roles within the room.5. **Host Controls:**
- Hosts can play, pause, and skip songs manually.
- Hosts can update the voting threshold and other settings.## Future Scope
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.## Technologies Used
- **Frontend:** React.js
- **Backend:** Django Framework
- **Authentication:** Spotify API and OAuth
- **Session Management:** Django Sessions## Setup Instructions
1. Clone the repository:
```bash
git clone https://github.com/munavarhs/House-Party-with-Spotify
cd room-music-controller
```2. Install backend dependencies:
```bash
pip install -r requirements.txt
```3. Install frontend dependencies:
```bash
cd frontend
npm install
```4. Set up Spotify Developer credentials:
- Create a Spotify Developer account and register an application.
- Add your Redirect URI and note down the `Client ID` and `Client Secret`.
- Add these credentials to your environment variables or Django settings.5. Run the application:
```bash
# Backend
python manage.py runserver# Frontend
cd frontend
npm start
```6. Access the application at `http://localhost:8000`.
## Contribution Guidelines
We welcome contributions! Please:
1. Fork the repository.
2. Create a new branch for your feature/bug fix.
3. Submit a pull request with a detailed description of changes.## License
This project is licensed under the MIT License. See the LICENSE file for details.
## Contact
For questions or feedback, reach out via [[email protected]] or create an issue on GitHub.