Inspiration

Mental health is becoming a greater issue in today's society, with increased emphasis placed on self-care and mental well-being. Many people get too caught up in the work and the stress of everyday life to really take time for themselves. One habit recommended by professionals is to keep track of one's emotions on a day-to-day basis, usually via a journal or diary. While this is a great idea, it is sometimes hard for people to describe their motions, whether it be due to an inconvenience in time or a difficulty in accurately describing their mood.

What it does

Mood Journal is a Chrome extension that uses data taken from the webcam, the Microsoft Emotion API, and the browsing active tabs of the user to automatically generate a report of their mood for a given timeframe, with relevant browsing history included to provide context of their emotional state for a given point in time.

How we built it

As a Chrome extension, it was written in mostly HTML/CSS/JavaScript, with JavaScript handling the webcam capture and API requests. The Chrome API was used to access the webcam, set up periodic image capture, and store user data. Plot.ly was used for visualization of the emotion data, and jQuery was also heavily utilized. Analysis of the facial images used Microsoft's Emotion API.

Challenges we ran into

As a team with close to zero experience with JavaScript, we ran into many problems with the asynchronous functions of the Chrome API. The approach that we were used to with languages like Java and Python were not always applicable and lead us to spend a lot of time debugging.

In addition, there were many new technologies that took us some time to learn and use, including the Chrome API and Plot.ly. We did not know how versatile the API was, so we struggled with a storage solution for our data until we learned about chrome.storage. We also ran into problems using Plot.ly to graph our data. The data was loaded, but the points were not being displayed on the graph; in the end, we had to redraw the graph after it was fully loaded.

Another odd problem we ran into was that the API was not returning any detected faces on a MacBook Air, while it was working for all the other laptops. After some debugging, we realized that the image capture from the webcam stream was too dark, due to the brightness adjustment of the camera after it is activated.

Accomplishments that we're proud of

We are proud to have built a functional Chrome extension, given our lack of web experience. We are also very happy with the data visualization solution we came up with, and think that it might be truly effective for self-improvement. Finally, we are proud to have come up with a nice aesthetic palette for our report page.

What we learned

We have learned skills in web development; including the use of different API. For many of us, we have learned a lot about JavaScript, the Chrome Extension environment, and plot.ly and we learned how to use all of these in conjunction to use an API none of us had experience with before. Furthermore, we have also developed skills in integrating the separate work done by each member into a cohesive project.

What's next for MoodJournal

In the future, MoodJournal hopes to include more comprehensive reports and analytics on the actual scores themselves, and hopefully a way to incorporate some feedback from the user to generate better results.

Share this project:
×

Updates