Inspiration
An essential element to every party is an appropriate and enjoyable song selection. Normally, this selection will be targeting a particular demography, but it will fail to satisfy the larger majority of people. We wanted to create a website that would give the selection of music a more democratic approach. This would also eliminate the need of a DJ, which drastically reduces the cost to run the event.
What it does
Our website allows users to vote on popular songs to create a queue in order of descending popularity to determine the order of which the songs will be played. The party attendees will be directed to a specific ip address where they will vote on which songs they want to be played throughout the course of the party. The host's phone or laptop will then retrieve the data and automatically play the songs based on the number of votes in the order specified above. The voting is continuous and the data will constantly be updated to the host.
How we built it
The first step we took towards making this project was using Html5 to make a webpage. The front end is written in JavaScript which included the title, buttons, and theme of the webpage. We used MySql database to store all of the data inputed by the voters. JavaScript used JQuery/Ajax to convert user's votes into a data format and sent it to php which forwarded it to the MySql database. A separate program from the voting webpage then recorded the votes, acquiring the information from the database which it used to play the correct song.
Challenges we ran into
We came into this event with a set idea that was drastically changed. Initially we thought we would be using APIs to retrieve information concerning the song selections; however, it was challenging to implement it into our project in such short time. Another large problem we faced was deciding which methods we would use to implement in our program. One final dilemma we faced was the back-hand communication to the server and the act of linking the components together.
Accomplishments that we're proud of
Although our initial idea was not fully implemented, we managed to complete a fully functional, quality project. In the short 36 hours, a group of freshman with minimal experience in programming was able to work together under the instruction of a mentor and achieve our goals.
What we learned
First, we learned how to manipulate multiple programs in order to cause them to interact with each other. In addition, we learned the basics for various programming languages including Html, JavaScript, and PHP. Unfortunately, we were unable to successfully incorporate MeanStack and Meteor into our project design, so we primarily used JQuery/Ajax and MySQL instead, to connect the front-end to the database. Overall, from our mentors and our peers, each member of our group acquired numerous new skills pertaining to programming and webpage design.
What's next for My Personal DJ
Although we are adequately satisfied with the final project for this Hackathon, we discovered various methods to greatly improve the webpage during the design process. One particular possibility involves implementing an API for retrieving a music database. This will keep the song list up to date, as well as provide a more diverse selection. We would also like to add a search box and a request option for new potential candidates for the song list. These are only some initial ideas to improve our program further.
Log in or sign up for Devpost to join the conversation.