/DemocracyJukebox

Jukebocracy turns the dive bar jukebox into a digital game happening at the bar in real time. With Jukebocracy preloaded at every seat in a bar, the music will arrive democratically.

Primary LanguageJavaScript

Jukebocracy

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.

Key Features:

  • 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.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

What things you need to install the software and how to install them:

Installing

A step-by-step series of examples that tell you how to get a development environment running:

  1. Clone the Repository:

    git clone https://github.com/floresjacob/DemocracyJukebox.git
    cd DemocracyJukebox
  2. Install Dependencies:

    npm install
  3. 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, and your_youtube_api_key with your actual YouTube API key.

  4. 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
    };
  5. Run Database Migrations:

    npx sequelize-cli db:migrate
  6. (Optional) Seed the Database: If you have a seed file, run:

    mysql -u root -p your_database_name < path/to/seed_file.sql

Running the Application

To run the application on your local machine:

node server.js

Your app should now be running on http://localhost:3000.

Built With

Authors