Jukebocracy is a collaborative, interactive playlist management application that allows users to collectively build, manage, and democratically vote on a playlist. This innovative app brings a new level of engagement to music listening sessions, parties, or social gatherings by empowering every participant with a vote. Users can search for and submit songs to the playlist, which are then displayed in a communal queue.
- Song Search and Submission: Users can easily search for their favorite tracks using the integrated YouTube search and add them to the communal playlist.
- Real-Time Voting System: Each song in the playlist can be upvoted or downvoted by participants, influencing the order of playback based on popularity.
- Now Playing Display: The current top-voted song is prominently displayed as the "Now Playing" track, complete with video playback from YouTube.
- Playlist Curation: Users can see the list of songs with their respective vote counts and thumbnails, providing a visual and interactive playlist experience.
- Vote Management: Users are allocated a certain number of votes, promoting fair participation and preventing vote spamming.
- Song Deletion: Admins can remove songs from the playlist, ensuring the content remains appropriate and enjoyable for all participants.
Democracy Jukebox is the perfect app for those who want to engage their audience or friends in creating a dynamic and fun music listening experience, where everyone has a say in what plays next.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
What things you need to install the software and how to install them:
A step-by-step series of examples that tell you how to get a development environment running:
-
Clone the Repository:
git clone https://github.com/floresjacob/DemocracyJukebox.git cd DemocracyJukebox
-
Install Dependencies:
npm install
-
Set Up Environment Variables: Create a
.env
file in the root of the project and add the following content:DB_PASSWORD=your_mysql_password YT_KEY=your_youtube_api_key
Replace
your_mysql_password
with the password for your MySQL root user, andyour_youtube_api_key
with your actual YouTube API key. -
Database Setup: Ensure MySQL is running on your machine. Create a new database for the project and update
config/config.js
with your database details:module.exports = { development: { username: 'root', password: process.env.DB_PASSWORD, database: 'your_database_name', host: '127.0.0.1', dialect: 'mysql', // ... other settings }, // ... other environments };
-
Run Database Migrations:
npx sequelize-cli db:migrate
-
(Optional) Seed the Database: If you have a seed file, run:
mysql -u root -p your_database_name < path/to/seed_file.sql
To run the application on your local machine:
node server.js
Your app should now be running on http://localhost:3000.