Correlation matrix of spotify song attributes
Main page where users can see recently generated songs, and select '+' to enter a new journal entry for a new song generation
Journal page where users can write up their feelings for the day, and their emotions
Resources page, where users can see articles and web info related to their current mood
According to the charity organisation Mission Australia, "More than one in four young people met the criteria for experiencing psychological distress – an increase of 8% since 2012 (18.6% in 2012 vs. 26.6% in 2020)."
How can we provide techniques and strategies that individuals can use to manage these times of hardship?
We found that a common technique used to manage healthy mental well-being is Journaling. The web and mobile apps in the market to address this are mostly one-way (one-sided) experiences where users would take time to journal down their thoughts allowing a healthy way to express themselves and manage anxiety and improve mood. However most of these apps just stop there.
What it does
Our app analyses the user's sentiment from their journal entry and it will recommend appropriate music tracks alongside with online resources to enable a two-way journaling tailored feedback experience aligning with their sentiment.
How we built it
Technologies: python, django, flutter, dart, android
A mobile application developed in Flutter for frontend.
A Django backend which performs sentimental analysis and accordingly recommends a song.
The algorithm works by comparing sentiment analysis from nltk with our custom formula, which assesses how appropriate a song would be for a person depending on their mood. A song with a score of 1 is appropriate for an extremely happy mood, whilst -1 is appropriate for someone feeling down. For efficiency reasons, this function is precomputed by the Testing.py script, for ~100k songs, which are stored into the csv file Sorted_Database.csv. This allows fast search on the fly to find the song which most closely fits the analysis from nltk of the journal entry, which is called by the Django backend. The algorithm also creates a custom hex code, which appears on the flutter ui page. This hex code reflects the mood of the song as well.
The algorithm was inspired by background research into how music affects emotion, as well as our analysis of how the attributes of songs on Spotify interact with each other. This can be seen in the media section.
Challenges we ran into
Figuring out the different skillsets of our team and brainstorming. We needed a tech stack to quickly deploy our ideas into the real world with such a short time frame and decided to go with Flutter as it is also cross compatible with web.
Accomplishments that we're proud of
Pulling off a working prototype!
What we learned
Fast tracking our brainstorming and getting into coding ASAP so we meet our roadblocks earlier by trying to break it then fixing the prototype towards a workable app. As we got further into the development process we were able to make quick decisions on how we would alter the features and which were critical to our application. During the brainstorming process, it was quite difficult to narrow down the exact features we wanted due to the short time frame, however the iterative process of designing the app made it much more manageable to progress into a working prototype.
What's next for MindTheMusic
Weekly/Monthly sentiment analysis report card overview. This would allow users to see how their sentiment changes over a longer period of time for a more holistic view.
Automated motivational message/notification/email/SMS that would get sent to the user when the model predicts the user is in a low mood. This could be in a form of a motivational image, meme, funny video. The model predicts effective time periods for delivering this content. The user can choose to opt into this option.
Log in or sign up for Devpost to join the conversation.