As aspiring software engineers, my team and I are naturally overwhelmed by the number of parties we are invited to, leading us to... No, not really.
However, after attending an horrendous school dance, we did all realize that DJs are often very expensive to hire and do not always choose fitting music. As such, we decided to create a web/mobile application that would play music from a Spotify playlist to match the mood and tone of any party.
What it does / How it works
DJ Hal-ed is a virtual DJ that automatically selects music based on the activity of guests at a party. Our application uses the overall movement of guests over time as a measure of their "energy," and translates this "energy" into a corresponding beats per minute. It then selects music from a Spotify playlist that most closely matches this beats per minute.
To use DJ Hal-ed, the person hosting a party creates a virtual room and gets a randomly generated 6 digit alphanumerical PIN that he/she can use to invite guests. As guests arrive at the venue, they simply enter the PIN on their phones, place it in their pockets, and walk in. The app will automatically track motion and use an algorithm to determine music with matching beats.
How we built it
Our project is web-based and runs in the cloud. We used the Cloud9 platform for collaborative development as well as online hosting. The project runs on a node.js server through the Express framework. We used the Handlebars templating engine to ensure consistent formatting across our webpages.
Challenges we ran into
- Spotify API had many limitations that we were not aware of until we were already quite far into our project
- Lag issues with updating code on the server
- Conflicts with multiple people working on the same file
Accomplishments that we're proud of
- Getting authentication for Spotify API to work
- Learning to use Node.js to successfully create a web app
- Storing data quickly enough to use live updating
What's next for DJ Haled
We are most excited by the potential for expanding our idea. The collaborative mobile framework we created could easily be used to track large sporting events in stadiums, increasing customer participation and satisfaction. We would also like to integrate Twilio to directly interact with guests through text and voice messages. Lastly, as college parties become increasingly dangerous, we could use the accelerometer track whether guests are still active and contact help if needed.