Inspiration

Since the pandemic harmed the live music industry, we wanted to create a network where Texas A&M musicians can meet and "jam out!"

What it does

Jam Out recommends similar musicians to each other based on their music taste, using a machine learning algorithm and advanced web design.

How we built it

First, we began by implementing a tensorflow deep learning algorithm with embedded systems. We created the sample users using the Spotify API for possible songs and genres as well as a rating algorithm based on their chosen genres. Then, we trained the model based on the user data, genre data, and rating scores. Ultimately, the algorithm returns a group of the best matching users. In order to display the results, we consolidated the user profiles and recommendations into a website using HTML, CSS, and JavaScript. We linked user pages and subsections with clever file organization, and we utilized a base template with navigation and background settings to create a fluid, consistent format that is all-encompassing yet user-friendly.

Challenges we ran into

  • Testing and tweaking the algorithm (analogous)
  • Understanding the Spotify API
  • Formatting and creating CSS
  • Consistent navigation bar
  • Working and modifying bootstrap templates

Accomplishments that we're proud of

  • Making a consistent navigation bar
  • Installing tensorflow and the appropriate environment
  • Scraping data from the convoluted Spotify API
  • Adapting the tensorflow algorithm to an analogous situation
  • Connecting the webpages together seamlessly

What we learned

  • HTML tag system (buttons, navigation bar, search bar, linking, images)
  • CSS styling and overwriting system
  • JavaScript functionality and csv reading
  • Using the Spotify python API, Spotipy
  • Learning how the ML works (batch size, epochs, learning rate, KNeighbors, embedding systems)
  • Shifting the algorithm to the situation (data setup, variable modification)

What's next for Jam Out

  • Hosting the website onto a web service like AWS
  • Storing the data on SQL database and accessing through Promise requests
  • Adding custom JavaScript animations and dynamic capabilities
  • Further configuring the model to be more accurate
  • Using real user data
  • Changing the font size for the visually impaired
  • Optimizing webpage linking
  • Adding venue and messaging functionality

Built With

Share this project:

Updates