Inspiration
The inspiration for Musings actually came from seeing the mental health struggles that the student population undergoes. Often, students face anxiety, stress, and even depression while navigating their academics along with extracurriculars and social life. However, they often don't have enough time to seek professional help to improve their mental health, or sometimes don't want to admit that their mental health may deteriorate. In these circumstances, Musings will allow individuals to heal from their struggles at their own pace, through music and journaling.
What it does
The app first prompts the user to enter a journal entry, where they can choose to do so through a text entry, a voice entry, or (this feature has not been developed for the prototype), a voice entry in a VR environment. Following this, the app uses Natural Language Processing to convert their speech entry to text, and from there analyzes the emotions present in the entry. The emotional aspect of the entry is recorded as a sentiment score ranging from -1.0 to 1.0, where -1.0 represents the most negative emotions and 1.0 represents the most positive emotions. From there, the app generates a Spotify playlist for the user, both to validate their emotions and to heal their emotions. For example, if the user's journal entry was classified with a sentiment score below 0.0, indicating a negative mood, one playlist would be created with a negative undertone to validate their emotions and one with a positive undertone to heal. If their
How we built it
In terms of frontend and design, we used Figma to wireframe and design the UI of the app, and Swift UI to develop the UI. On the backend, in order to perform the NLP portion of our app, we used Apple's Natural Language library, specifically the sentimentScore property under the NLTagScheme. We also used the Spotify iOS SDK along with a 3rd party library built on top of the Spotify API in order to manage the Spotify playlist creation.
Challenges we ran into
We ran into several challenges through developing the Spotify portion of the backend. Initially, we tried to create the playlist using the 3rd party library as well, which did not work despite prolonged debugging and multiple consultations with mentors. We then decided to use Apple's URL Request system to manually create POST requests for creating the playlist without the abstraction of the library.
Accomplishments that we're proud of
We're proud of being able to learn new Apple libraries to perform NLP. Although we have faced a lot of roadblocks with using the Spotify API, we are proud of being able to learn how to use APIs with very sparse documentation along with Swift, a programming language we are relatively new to.
What we learned
Overall, we learned the importance of planning out our project prior to starting coding through this project. Although this may not always be feasible, we also learned to consider the feasibility of our programming language and environment for the actions we want to do. For example, while Swift was great with NLP given the presence of existing Apple libraries, it was very difficult to use along with REST APIs given the lack of documentation on it.
What's next for Musings
We hope to further refine our app by integrating the frontend and backend of our apps better!
Built With
- apis
- figma
- swift
- swiftui
Log in or sign up for Devpost to join the conversation.