Inspiration

Music plays a vital role in shaping our moods, productivity, and social interactions but we often take it for granted. People struggle to find the right tracks that perfectly align with their current emotions or activities. With endless streaming options available, it can be overwhelming to manually curate playlists or discover new songs that match the tone of a specific moment.

feelify addresses this challenge by acting as a seamless “life hack,” using music not just as entertainment but as a tool for emotional regulation and intentional living. With so many people relying on music to uplift or soothe them, feelify takes this a step further by tailoring recommendations to align with users’ emotions and daily routines. By enhancing the everyday music experience with personalized playlists, feelify saves time, eliminates decision fatigue, and amplifies the emotional impact of each moment, ensuring that our users always have the perfect soundtrack for any occasion—helping users live more intentionally.

What it does

feelify is a personalized playlist generator that creates custom Spotify playlists based on the user’s mood and taste. By adjusting a play icon, users can set two key metrics: energy and valence. feelify then analyzes these inputs, along with the user’s top artists, to generate a playlist that matches the user’s vibe. The app seamlessly integrates with Spotify, instantly saving the playlist to the user’s account, making it easy to listen and discover new music that aligns with their feelings.

In addition to mood-based playlists, feelify offers a quiz feature for users who prefer not to share their Spotify data or simply want to discover new music. The quiz asks a series of questions to determine the user’s personality type, then generates a playlist that reflects their unique musical preferences.

Note: The application is in development mode so the users configured to authenticate with Spotify are limited to the developers.

How we built it

  • Flask (Python) for the backend, which handles user authentication, mood analysis, and playlist creation.
  • React (JavaScript) for the frontend, providing a smooth and interactive user experience where users can set their mood using the play icon and view generated playlists.
  • Spotify Web API to fetch user data and create playlists based on their top artists, favorite genres, and mood preferences.
  • Render and Netlify for hosting, with the backend deployed on Render and the frontend on Netlify.

Challenges we ran into

One of the main challenges we faced was handling Cross-Origin Resource Sharing (CORS) issues, which required configuring our backend to ensure seamless communication between the frontend and backend services. We also faced the challenge of passing the mood position parameters—energy and valence—from the frontend to the backend. It was crucial to ensure that the user’s adjustments to the play icon accurately translated to these metrics so that the backend could generate a playlist that matched the user’s mood preferences. Additionally, making requests to the Spotify API posed its own set of challenges, particularly with authentication and efficiently managing API tokens. We had to carefully manage how we accessed user data and generated playlists, ensuring that our application adhered to Spotify's API guidelines while providing a smooth experience for users.

Accomplishments that we're proud of

We're proud of successfully creating a simple, intuitive interface that allows users to easily set their mood and generate a personalized playlist. The seamless integration with Spotify, allowing playlists to be saved directly to user accounts, was a major achievement. We also managed to provide a feature for users who prefer not to share their Spotify data, generating playlists based on personality types instead.

What we learned

As fourth years, we really wanted to expand our technical expertise and explore new technologies. We ended learning and using React for the frontend and Flask for the backend, gaining insights into popular full-stack development frameworks and how these components interact. We utilized Spotify API’s OAuth authentication, learning to manage tokens and secure user data effectively. One of the biggest challenges we faced was debugging CORS (Cross-Origin Resource Sharing) issues, a known hurdle when working with APIs, which taught us how to configure headers properly to ensure smooth communication between the frontend and backend. For some of us, this was our first hackathon, providing hands-on experience with collaborative problem-solving under tight deadlines. We also learned the importance of UX design, balancing simplicity with functionality to create a user-friendly experience. Overall, we developed skills in API integration, debugging, teamwork, and time management, preparing us for future endeavors.

What's next for feelify

For our next steps for feelify, our goal is to further enhance user engagement and personalization within the app. We're considering allowing users to select their top artists and songs, granting them greater influence over the playlists generated. Additionally, we aim to incorporate more nuanced metrics, such as acousticness and danceability, which would provide more options for playlist curation. We also recognize that music is often tied to specific occasions, so we plan to introduce options for users to curate playlists tailored to particular events or activities, rather than just moods. Since feelify is currently in development, we plan on officially publishing our web application, making it accessible to a broader audience as a tool for enhancing musical experiences.

Built With

Share this project:

Updates