AfterParty is a platform integrating Bose speakers and phones to democratize song queue requests and automate volume of speakers in rooms depending on number of users inside the room.
You can see the code for this here.
AfterParty uses Arduinos that connect to a user's Android Device via BLE to determine how far a user is from a given speaker. It then uses these values to calculate room density and automatically adjust speaker volumes for a given song.
AfterParty also features a jukebox feature, letting users request and vote on songs in queue to be played next. Users are automatically granted access to the queue associated with their nearest speaker, making it easy for users to jam to their favorite tunes while on the move.
One of the biggest challenges I faced when working on AfterParty was communicating with the Android phones from the server. We used socket.io to connect to the phones and communicate with them about which speakers they were the closest to, as well as what songs were playing next in the queue.