Inspiration

We paid $100 each for our prom dance and another $100 each for our dates and the DJ at the dance was terrible. He took requests, but he had none of the songs that anyone requested. We all had these songs on our phones, but the DJ would not plug in our phones into his complicated setup.

In another event, practicing for a band concert, our musicians had only one meeting a week to practice together. How could we point out nuances in songs to each other in real time? Skype -nope, Phone -nope, Hangouts -nope.

This got us thinking: how can we listen to music together, at a party or in the comfort of our homes TOGETHER. Let's create a shared playlist including songs that not everyone in the group has so that everyone can listen at once.

What it does

When a user visits myoozik.xyz, the backend server creates a unique group id and dynamically creates a link that can be shared to all users to contribute the same group playlist. Each user also has a unique user id that allows the server to correctly handshake the client with the music to add to the playlist to all other clients in the group. Any user can add songs to the playlist and the server handles the routing so that the users can hear the songs play all at the same time.

How we built it

Frontend (UI) built using Polymer, the next generation of web development, that focuses on using Web Components to create modular Progressive Web Apps. Backend utilizes Golang with Websockets to communicate quickly between server and clients and handle handshakes between the client devices.

Challenges we ran into

Firewall prevents users from connecting to p2p network. We plan on circumventing this problem bu using a STUNS/TURN server that will utilize NAT to redirect traffic. WebRTC is not fully compatible with Edge and Mobile browsers.

Accomplishments that we're proud of

We built a responsive front end that works on multiple devices, including mobile, and multiple screen resolutions. Establishing URL based groups wher groups can be user created and defined. Beautiful Logo. Offline support.

What we learned

Advance Polymer techniques and debugging skills Java Script Event Listeners 2-Way Data Binding Websockets

What's next for myoozik

Clean up the bugs Overcome the firewall issue Streamline the resource dependencies Properly Host and Utilize nice Domain (myoozik.xyz) Add a Mute Button Monetize the webapp Promote the webapp Publish well-developed polymer elements to give back the community

Share this project:

Updates