Inspiration

Bad DJ's. You're at a party, or (even better) a hackathon. There's music playing. But sometimes the DJ doesn't really know what you want. So we created AutoPilot DJ.

What it does

It is a DJ. Except you get the choice. The event host can host their Spotify playlist. The event attendees can vote on the next song using an invite code. It's simple. It's communal.

How we built it

Lots of Javascript. We built our webpages using HTML/CSS and accompanying Node.js scripts. After logging in, Firebase holds the event host's Spotify authorization codes (which are secured). An invite code is provided which the event host shares to the attendees. The attendee can then type in the invite code, sending them to a voting page. Voting ends before the current song ends. Whichever song wins the vote is played next. Spotify Web API provided us with great support in accessing the user's playback states, device ids, playlists, tracks, and more.

Challenges we ran into

It was our first time really working with in-depth Node.js (we had only made basic listeners before) so learning the syntax and dependencies were confusing. The Spotify API, while helpful, was very very hard to work with. Carrying user authentication codes to separate Javascript files was tedious.

Accomplishments that we're proud of

We linked all HTML/CSS properly and validated the user securely. We retrieved user playlists and an invite code, which was linked to a voting page. We managed near full functionality in the time given and the application is a handful lines of code away from being fully functional!

What we learned

Javascript is intense and it would have been ambitious to try anything new other than what we already knew (React.js). One of our team members is at his first hackathon so he learned HTML/CSS and Firebase all overnight.

What's next for AutoPilot DJ

Go big! We want to clean up the UI/UX of the application and host this application on a proper domain instead of a localhost. Furthermore, we want to clean up the back-end as well because there are convolutions in the API that need further investigation (definitely more than 24 hours).

Thanks!

Share this project:

Updates