Inspiration
Its hard to have one person controlling aux. Lots of pressure and song requests make it a cumbersome experience.
What it does
This is much more hands off. Everybody can contribute, yet the groups tastes will still be considered because of their voting. After one user logs in with spotify, all of the others can add songs and create the queue.
How we built it
We developed a socket server to asynchronously communicate with multiple clients at a time. We then used a REST API in django, that allowed individual phones to send updates to the backend. Then, the front end was built with flutter.
Challenges we ran into
The socket server communicating with the django REST API was quite interesting to piece together. Setting up the asynchronous communication with the sockets was a big challenge. We had to keep all of the devices very closely synchronized, with close timings. Efficiency was key. Additionally, spotify does not allow users to view or edit the queue. Therefore, we had to tightly time the entire operation around song lengths and remaining time, so that we knew when to queue a song, without doing it too early (as to not lock it in prematurely).
Accomplishments that we're proud of
getting it to work and pretty much effortlessly interact with the spotify API was very good. It also has very fast responses, a side effect of all of our efforts in the socket server.
What we learned
socket based servers interacting with REST APIs. Utilizing the spotify API to its fullest. Communicating efficiently between an unlimited number of devices.
What's next for Auux
Stability improvements, additional features.
Log in or sign up for Devpost to join the conversation.