Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Local network based music player and organizer controlled from a browser or phone. Built with Node.js.
JavaScript
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
public
styles
ui
views
.gitignore
README.md
config.sample.json
package.json
server.js

README.md

SoundStation

Local network based music player and organizer controlled from a browser, tablet or phone. Built with Node.js and Derby. Can be used by DJs, bar owners, and party hosts to allow guests to request/queue songs from their music library.

screenshot

screenshot

Installation Requirements

If you haven't already installed Node.js, you can download it from http://nodejs.org/download/

Unix:

Windows Users:

Installation

$ git clone https://github.com/ethanaubuchon/SoundStation.git
$ cd SoundStation/
$ npm install
$ mv config.sample.json config.json

Modifying config.json

After installation, your config.json should look like this:

{
  "directories": ["/path/to/dir", "path/to/another"],
  "secret": "Your Session Secret",
  "pin": "1234",
  "enableVotingOrder": true 
}
  • directories: An array of paths to folders to look for mp3 files
  • secret: A secret string unique to your project to sign cookies with
  • pin: A pin used to login to the application as an admin user Warning: Stored in plaintext, so don't reuse a password
  • enableVotingOrder: If set to true, queued songs will be in descending order of votes

Note: Passwords are not currently salted and hashed using node's crypto module. To keep the application as lightweight as possible, the entire config is currently stored in plaintext within the project directory (thus not requiring a DB). If we were to eventually force an installation process on startup, we could then securely store the pin.

Running the Server

$ node server.js

Authors

Created by Ethan Aubuchon and Daniel St. Jules.

Something went wrong with that request. Please try again.