Inspiration

Everyone needs a creative outlet and in fact, creative writing has proven to be helpful in decision-making and stress relieving, improving mental health. Despite its numerous benefits, sometimes it is quite difficult to come up with a topic, hence we decided to make a platform to facilitate and thus promote creative writing through the suggestions of prompts and further elevate user experience through instrumental music which has proven to reduce anxiety and even help stimulate the brain's right hemisphere, which is responsible for creativity and imagination.

What it does

WriteMind is a Creative Writing platform that suggests daily prompts to the user to encourage them to write every day. To further stimulate the creative process, instrumental music plays in the background at the time of use. This music dynamically changes based on the sentiment analysis of what the user is writing in real-time to mirror the atmosphere of their work. By matching the musical mood to the written one, the application fosters an environment to boost the user's expressiveness and creativity.

How we built it

The backend was built through python to process the users text dynamically through the IBM-Watson API in order to conduct the real-time sentiment analysis via NaturalLanguageUnderstandingV1, using the SemanticAnalysisReq model. Through intervals of 5 seconds, we use the API to determine the Text Sentiment in 5 different categories of emotions - Happy, Sad, Angry, Disgusted, Fearful. For each category, an associated probability is outputted, the category with the highest probability is selected as the chosen emotion for the segment of text that the user has written. In the backend we also have a directory of musical tracks that have been categorized into these 5 categories as well, so if the API detects that the emotion of the users work has changed, the background music would fade into the next random track that is categorized by that same sentiment.

The frontend was built using CSS, TypeScript and Figma to tie everything together. The text editor was built using the Quill library for JavaScript.

Challenges we ran into

The initial challenge that we came across was getting familiar with TypeScript as we have not used that too much in the past. Furthermore, it was difficult to integrate the natural language processing API, IBM-Watson, as we first attempted to do it in TypeScript but were not able to do so successfully, so transferred to using Python instead which we are more familiar with. Finally, we were faced with an obstacle in auto-playing music in the background as we researched many APIs such as the Spotify Developer API, but to no success

Accomplishments that we're proud of

We are super proud of being able to dynamically conduct sentiment analysis on the text extracted from our text editor using an external API that we have never used before. We are also extremely proud of the design of the project such as our logo and sleek website design that is not too overwhelming for the user.

What we learned

We learned how to use TypeScript, React, and how to connect our TypeScript frontend to our Python backend in order to process information received from the frontend of our application. These are skills we were not familiar with in the past and being able to get a working product in the end of it was super rewarding despite the many challenges we faced in the learning process.

What's next for WriteMind

In the future WriteMind would like to expand what the user can do with this app. Most notably, we would like the user to be able to save their work and be able to access it in the future. Moreover, the musical library is quite limited, and we would like to expand the musical options that the application has to offer the user where they would also be able to connect to their preferred audio streaming service so that the music is also catered to their preferences.

Share this project:

Updates