DJ-Collab

A meteor based web application which allows users to collaborate to modify the queue for a designated player device (playing audio files stored on server using HTML5).

So, I heard somewhere that meteor was a great framework to build full-fledged JS applications with server and client code (I know it’s called full-stack). Unsurprisingly, I wanted to play with it and so, I came up with the idea for a centralized music playing system which can be remotely controlled. Initially I thought this would just be a side project to test out meteor and its capabilities, but the ability of meteor to support fast development of code logic forced me to think of this on a big scale.

Why?

Well imagine there is a single speaker in the house which is situated far away from your workstation (doomsday is near) and you want to control the music. But your friend wants control over the playlist too. This would be the solution.

How would it work?

A single system (even an old smartphone would do) needs to be connected to the speakers as well as the local area connection. The music will be played on the browser of the system and the queue for the music will be controlled using a platform open to all (or selected users- choice of administrator). Some selected users will have the ability to modify the playlist while normal users would only be allowed to add music to the queue.

Why meteor?

Firstly because I wanted to try it out, and secondly because it simplifies various parts of the project including synchronization and maintenance of queue throughout the user devices and also, sign up and sign in flow for the users. Also, it has various modules including materialize which allows easy styling of the UI of the platform.

How you can help.

Hop on over to my GitHub repository for DJ-Collab and start working on modules. Little has been done and a lot is left. Any help would be greatly appreciated. Build process and sample hosting will soon be provided in the Readme of the repository.

Leave a Reply

Your email address will not be published. Required fields are marked *