Hello,
This is the source code for Songocity, a Spotify music recommendation app that I wrote as a personal project. Songocity allows users to befriend other people who may have similar music tastes and uses our own machine learning model to create playlists curated to you based on your new friends' tastes. The playlists are automatically created in your own Spotify account, where you can immediately start listening to the recommended songs. You may visit the site at songocity.com (if still up).
Here is an ordered set of pictures showing a walkthrough of the site:
I used the SpringBoot Java Web Framework to host the main site itself and a WSGI Python server to handle the Machine Learning training and recommendation. For the frontend, I relied on ReactJS and used a MongoDB as the main database. In addition to these main components, I also used AWS S3 to store the machine learning models for each person and song data. Finally, I used AWS to host the site live once it was deployed. AWS Elastic Beanstalk was perfect to host the Java and Python web servers, which seamlessly hooked up with Route53 for the site domain: songocity.com.
Here is a simple diagram to show the basic architecture:
I hope you enjoy the site! This project was fun to create. If you have any questions, please reach me at pranavnraj@gmail.com. Thanks!
Clone repo and set up Maven first following this instruction: Maven in 5 minutes. If on Mac, brew install maven
should work as well. Then run mvn clean install
at the same root as pom.xml to compile and produce project build/JAR files. If the build fails, delete the folder node_modules
in songbirds-frontend and try mvn clean install
again.
Run java -Dspring-boot.run.jvmArguments -Djdk.tls.client.protocols=TLSv1.2 -jar target/app-0.0.1-SNAPSHOT.jar
at the same root as pom.xml. If successful, go to localhost:5000 to view the website.