Inspiration

Our inspiration for Soundscape came from our own experiences. We were tired of the limitations of traditional music streaming services, whose music recommendation system never catered to the moment. We wanted to create a platform to help music lovers like ourselves connect with others who shared similar tastes. At Soundscape, we strive to bring people together through the universal language of music and offer a unique way to discover new songs that express our moods.

What it does

This program is designed to connect users with similar music tastes and preferences. It does this by analyzing the user's top tracks, artists, and genres, and then comparing that data with other users to determine compatibility. The program also gathers data from the user's Spotify accounts and creates playlists based on their current emotions and historical preferences. To classify emotions, the application listens to the user speak about how they are feeling and determine the sentiment associated with their speech.

How we built it

The backend was built using Python and Flask, and the front end was built using React Native and Expo, allowing us to develop for both Android and iOS at the same time. We managed our data with CockroachDB. Using psycopg2, we created tables to store user credentials, user preferences, song information, compatibility between users, and current feed information (see media for a detailed visualization). We also used CockroachDB to generate a secret key for the encryption of sensitive data and also used it to generate unique identifiers for each user. We used Google Cloud’s services to convert user audio to text and analyze the sentiment of the data to recommend music to the users.

Challenges we ran into

We ran into challenges in several areas. To start, due to our lack of experience using CockroachDB, we found it difficult to debug certain aspects of our database system. For instance, we were running into an error which was telling us that we didn’t have the correct certificate for a database transaction, but we eventually worked around this by changing an SSL setting. Additionally, the Spotify API was difficult to work with; in particular, figuring out how to use OAuth 2.0 on a mobile device took us several hours.

Accomplishments that we're proud of

We’re proud of our overall end product, especially, completing it in such a short time period. The ability of our app to hear sentiment from our voice input and create a playlist for a moment is a functionality we are really proud of.

What we learned

We learned to use many different technologies during this project. Specifically, our team became more proficient in Flask as well as writing and creating an app. Additionally we learned how to integrate different features for frontend such as integrating web authentication.

What's next for Soundscape

We look to add functionality to play music within the app as well. We might also look into implementing functionalities to check into people about how they’re doing after seeing their emotions.

Share this project:

Updates