Sign in screen
After opening a channel, you get a channel ID
Add any songs to the channel queue
Songs appear in the queue in the order they were added
The host can play any song
Friends can join the channel through the channel ID
After joining the channel, friends can see the channel queue
They can also add any songs they wish to the queue
Here we added a song by avicii on the friend's phone
The queue was updated on the host's phone and they can now play the song that was added
The Evolution of Aux Plz
To see what Aux Plz has become, check out the AuxBox app on the iOS App Store: https://itunes.apple.com/us/app/auxbox/id1439952652?mt=8
People always say "hey pass the aux chord"... why not digitize the aux chord as a collaborative queue?
What it does
Aux Plz creates a music channel for your you and your friends to queue and play songs from Apple Music. The host device of a music channel would be connected via bluetooth or aux to any speaker, car audio system, etc, while the non-host members of a channel can queue songs. This allows for collaborative queueing between multiple users rather than only having the host control the Apple Music queue. In addition, a voting system was implemented for each song added by a user in a given queue, allowing members of a channel to collectively decide which songs to prioritize and play.
How we built it
Auz Plz was built on Swift and Xcode using the Apple's Music Kit API along with Google Firebase's Realtime Database. Apple Music Kit API allows the host user to sign-in with Apple Music and access the song library without requiring non-host users in a channel to necessarily have a premium membership. Meanwhile, Google Firebase's Realtime Database allowed us to create real-time queues via JSON. We also used Firebase for user authentication.
Challenges we ran into
Originally, we attempted to implement the Spotify API in Swift but experienced difficulties with the user authentication and membership/token requirements. Therefore, we decided to use the Apple Music API Kit because of its greater ease in implementation with Xcode. Another significant challenge we ran into was constantly revamping the UI to account for the user's experience, along with updating queue view controllers. Consequently, we implemented animations and a friendly, dark themed clean
Accomplishments that we're proud of
We are proud of being able to not only tackle social problem, but in 36 hours develop an iOS app allowing users to queue songs real-time. We are also proud of the intricacies we incorporated when designing the UI, ranging from indicative and smooth animations to a carefully planned clean, dark-themed application.
What we learned
We learned how to utilize the Java Web Development API for developer tokens as well as working with JSON file types for Firebase's Realtime Database. Consequently, we gained knowledge on creating the structure of a database, including good practices such as flattening layers (to reduce runtime) and utilize timestamps to organize sessions.
In creating the database on Google Cloud, one had to carefully consider the layout of various fields of information such as session IDs, user IDs (and associated login information), timestamps, and song IDs (to pass into the queue). Combining Firebase with Apple's Music API allowed for unique Song IDs from non-host devices to be transferred and passed in to a collaborative queue under the host device of the channel.
Finally, we learned of the significance of UI in creating the experience for a user as we were constantly editing and making changes to the UI in the given time for maximum appeal.