Groove Hub is an interactive real-time music-sharing platform where users can create collaborative playlists, chat with friends, and enjoy synchronized YouTube video playback together. Groove Hub is designed to bring people together through the power of music.
- Real-Time Video Queue: Users can add YouTube videos to a shared queue, which updates in real-time for all participants.
- Synchronized Playback: Videos are synced across all connected clients, ensuring everyone experiences the music together.
- Chat Integration: A built-in chatroom allows users to discuss music, share thoughts, and connect with others.
- Mobile-Friendly Design: Optimized for mobile and desktop devices to ensure a seamless experience.
- Skip and Clear Queue Options: Moderators can manage the playlist effectively.
- Dynamic Now Playing Display: Displays the current video title in real-time.
- Customizable Video Settings: Options for autoplay, mute, and resyncing videos.
- User-Friendly Interface: Intuitive design with separate tabs for the video queue and chat.
Follow these steps to set up Groove Hub locally:
-
Clone the Repository:
git clone https://github.com/blakebrandon-hub/groove-hub.git cd groove-hub
-
Install Dependencies: Make sure you have Python 3.9+ installed. Install the required Python packages:
pip install -r requirements.txt
-
Set Up Environment Variables: Create a
.env
file in the project root with the following variables:FLASK_APP=app.py FLASK_ENV=development SECRET_KEY=your_secret_key
-
Run the Application:
flask run
-
Access the Application: Open your browser and navigate to
http://localhost:5000
.
Groove Hub is deployed on Heroku. To deploy your own instance:
-
Prepare for Deployment:
- Ensure all static files are collected.
- Add the necessary configuration files for Heroku, including
Procfile
andrequirements.txt
.
-
Push to Heroku:
heroku login heroku create git push heroku main
-
Set Environment Variables:
heroku config:set SECRET_KEY=your_secret_key
-
Open the App:
heroku open
- Backend: Flask, Flask-SocketIO
- Frontend: HTML, CSS, JavaScript
- Database: SQLite (development), Heroku Postgres (production)
- APIs: YouTube IFrame API for video playback
Contributions are welcome! If you want to report a bug or request a feature, please open an issue on the GitHub repository.
To contribute code:
- Fork the repository.
- Create a new branch (
git checkout -b feature-name
). - Commit your changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature-name
). - Open a pull request.
- Login System: Adding user authentication with Flask-Login.
- Moderator Tools: Additional features to manage queues and user activity.
This project is licensed under the MIT License. See the LICENSE file for more details.
Created by Blake Brandon. For questions or feedback, feel free to reach out:
- GitHub: https://github.com/blakebrandon-hub
- Email: blakebrandon.dev@gmail.com
Enjoy sharing music with friends and creating lasting memories with Groove Hub!