Submission Track
We are submitting for the AI Assistance and Automation Track.
Inspiration
With DJing on the rise and exposure to new music genres at an all-time high, how does an aspiring DJ get started in learning the fundamentals without getting overwhelmed by song selection? Surrounded by friends who love festivals, concerts, and raves, many beginners are picking up DJing as a hobby—but quickly realize that matching the vibe and queuing similar tracks involves more than just picking a few favorite songs or having prebuilt playlists. Learning how to consider key, BPM, genre, and energy can be a steep curve. To help beginner DJs overcome this, we designed a website that does the heavy lifting for them—an intelligent tool that builds customized set recommendations in real time, based on musical compatibility.
What it does
SpinFluence saves and displays data on the currently playing song in a DJ’s set. Using the current track, our web app customizes recommendations for similar songs based on the given track’s musical compatibility. After each set is played, DJ’s receive analytics on bpm and energy progression displaying how smoothly the transition between tracks was.
How we built it
We began by identifying a niche audience to guide our design and development decisions throughout the project. We mapped out the backend step-by-step and sketched each page layout using hand-drawn wireframes to visualize the user experience. Development was done in VS Code with GitHub for version control and Live Server + Live Share for real-time updates. We used a Flask server running on localhost to connect the frontend—built with HTML, CSS, and JavaScript—to the backend. To power intelligent features, we integrated AWS Bedrock and Claude through the AWS CLI. This full-stack setup allowed us to create a responsive, real-time DJ set builder that matches songs based on key metadata.
Challenges we ran into
Originally, we went in with the confidence that the Spotify Web API would be the backbone of our data queries. However, midway through the first day we realized that this valuable API had in fact become deprecated. In order to pivot, we had to rethink the way our data would be generated so we decided to use one of AWS’s Bedrock models, Claude and the Spotipy library that allowed us to access the Spotify Web API indirectly. Another obstacle we had to overcome was running our application using a localhost server. We intended on using Amplify and lambda functions through a Vite + React website originally, but our group was limited in these skills so we pivoted to Flask and a localhost server. We also had some minor troubleshooting issues such as github committing and version control which we overcame.
Accomplishments that we're proud of
Midway through this hackathon, we realized our frontend plan to connect to Amplify using Lambda functions was not going to work out and we were going to have to restart. Transitioning from this roadblock and creating a new UI and frontend strategy was an incredible challenge we overcame in addition to something that we all are incredibly proud of. Our ultimate decision to minimize the techstack we were using was sudden, but we stitched it together to the best of our abilities. Also, because this was an AWS services centered hackathon and none of us had worked with these tools previously, we wanted to take note of our ability to use Amazon Bedrock and Claude in combination with the Spotipy library as a substitute for the deprecated Spotify Web API.
What we learned
Over the course of the 48-hour hackathon we had immense learning curves. Our first take away was to have a solid understanding of both the frontend and backend structure before we started coding it including figma or sketches for UI/UX layouts as well as a general idea of how each backend function would call the API. Additionally, we learned to double check that the API’s being used for our project were not deprecated so that we could actually query the information in them. After these two steps, we had to learn how to use Amazon Bedrock, specifically Claude and AWS CLI to connect to our backend and query information from the Spotipy library.
What's next for SpinFluence
In the future we aspire to broaden our application by allowing DJ’s to filter songs based on settings with options like “house party,” “rave,” or “nightclub.” We seek to integrate other AWS platforms such as DynamoDB in order for dj’s to view user history of the sets they played during past events. Furthermore, we also want to ensure privacy and security for each individual user and as such we look to implement a login and signup page where profiles are saved with the information of past sets and their metadata analytics.
Built With
- amazon-web-services
- aws-cli
- bedrock
- claude
- css
- flask
- html
- javascript
- matplotlib
- python
- spotipy-library
- stable-diffusion
Log in or sign up for Devpost to join the conversation.