Music in the UCLU / ULU bars suck, as does music in most of the bars and pubs. They're either designed to send you into a state of perpetual self-loathing, round the bend or make you feel about seventy-three years old.
BUT THIS MUST BE FOR NO LONGER! We need a musical democracy. The (few and far between) current systems available, such as subTV music, suffer from genuinely awful apps, Windows XP nodes that constantly go down and music videos riddled with adverts that apply to nobody. And what about when somebody does manage to get their say? They're probably going to play the £1 Fish Man. Over and over again. Shouldn't an app be designed to protect against issues from duplicates from the ground up?
What it does
Our new service brings music to the modern cloud. With only a six character pin on each TV you can control your music with any Android smartphone. Not an Android fan? We also implemented SMS support, just for you special dinosaurs out there. Additionally, all users can vote on the choices of other users, allowing only the most wanted tracks to be played straight away.
How we built it
Being first years/Freshers, we can't claim to have the collective programmatical prowess of the node.js gurus of Silicon Valley. What we do have, however, are a very particular set of skills, skills we have acquired over our very long careers as nerds. Skills that make us a daydream for people like you. We will look for you. We will pursue you. We will find you. And we will bring music back home.
On a more serious note, the backend is mainly Hackathon-esque PHP scripts that can be controlled via super-simple HTTP GET commands. These interface with a MySQL database to provide a complete music API. Atop this, we have an Android app and full web interface to pick songs and vote for them. Further still, our SMS integration can allow even those with the most dated of devices to contribute to the eventual parties that this technology can instigate. The power is in your hand...... Throw in a good measure of Nginx for low RAM overhead and CloudFlare for DDOS protection, et voilá. Your wish is once again your command.
Challenges we ran into
1) We initially started off using Dreamfactory for a RESTful API, but could not make it fit our requirements past connecting to the MySQL backend, so we had to implement the API alone. 2) The server kept going down. 768MB of RAM should be fine for Nginx, but apparently not. 3) It turns out Google's YouTube API behaves differently depending on whether you load a video via its ID or URL, even though they are completely intrinsically linked (the latter is derived from the former!)
Accomplishments that we're proud of
We made a fully functioning quasi-real-time system in 24 hours without a single second of sleep (except for one member, poor thing!). We truly believe we have a system that's a greater pleasure to use (despite its gaping security holes, etc., that we really ought to deal with) than what exists today, and for that we can be proud.
What we learned
1) Be prepared to ditch a new technology and move on if it isn't working for you in the time provided. Time is precious! 2) Sometimes you really do just need to switch it off and on again.
What's next for Music TV?
It needs some serious revamping in the security department. We did not even attempt to implement rate limiting. It also needs a far beefier server with some optimisation of the code. Perhaps a daemon would be far more efficient than a series of PHP scripts!