Every year, over 40 million people in the US alone suffer from anxiety. It is a highly treatable mental health disorder but only 36% of people get treatment for it. In this regard, writing positive affirmations for self is a popular technique used by people around the world suffering with anxiety, depression and high levels of stress. It is recommended by counselors and is proven to be beneficial. Unfortunately, it is very hard for the person suffering to think positively. Moreover, the people who don't get treated usually go further downhill. Thus, it is extremely important to get help. This is where Pick-Me-Up comes in. It makes treatment easier and more accessible.

What it does

Pick-me-up is a revolutionary chatbot that gives you positive affirmations from your own social media accounts. To get started, all you have to do is connect a social media account to it. From there, pick-me-up's back-end system will extract your feed, run sentiment analysis on individual posts and comments, apply a magic formula to rank these interactions, classify them into categories of affirmations, and be ready to help you out in time of need. When the distressed user chats with the bot, the bot automatically identifies the kind of affirmation that the user needs and displays it in a beautiful print-ready page.

How we built it

The overall system can be divided into three:

1. Data extraction and analysis pipeline:

We first extract the user's data using the Facebook Graph API. This includes posts as well as comments. Then we run this data through Google's Sentiment Analysis Tool to receive a score and magnitude for each item. A rule-based classifier divides the items into different categories of affirmations. Examples of these categories include "milestones", and "physical appearance". Then the items are weighted using the formula: score + (0.1 * magnitude), and ranked accordingly. The data, and its associated scores are stored in a Firebase database to be used whenever a user interacts.

2. Chatbot

We built the chatbot using Botpress, an open-source platform. The bot greets the user and asks them how it can help. Then according to what the user replies, the bot identifies the intent of the user using its intent classifier, queries the database for the appropriate affirmation and directs them to another page.

3. Affirmation Page

The last component is the page where the affirmation is displayed in front of a beautiful pastel-colored background. We have selected pastel colors on purpose throughout our app because they are known to reduce anxiety and stress. On this page, the user can also see a print button in the lower left corner to print out the page if they really like the message.

Challenges we ran into

There were several challenges that we ran into:

  • Facebook's Graph API was really restricted in terms of the kind of data is exposed due to Facebook's recent privacy policy changes. So getting data was a huge challenge.
  • Sending user data to Google Cloud's Natural Language API in an efficient manner was another challenge.
  • Understanding how to move from the chatbot to the affirmation page was also difficult.

Accomplishments that we're proud of

There are multiples things that we are very happy about:

  • First, we are very proud of the data extraction and processing pipeline that we made. It involved several components, each with their own complexities and they all tied into a product very nicely at the end.
  • Working with Facebook's Graph API was another challenge due to the several newly added restrictions in it. So we're happy that we were able to get the data that we wanted despite the hurdles.
  • The chatbot turned out exactly how we wanted it to be despite the fact that it was an entirely new domain for the team.
  • We are also very proud of our content creator's efforts to make the entire app as stress relieving as possible using a unique color scheme and backgrounds.

What we learned

  • The different components that make up a chatbot, how to train them and testing chatbot performance.
  • Google Cloud Natural Language API
  • Facebook Graph API
  • Front-end development

What's next for Pick-Me-Up

In the future, we can integrate Twitter, Instagram and other social media apps into pick-me-up. We can also use machine learning to train our affirmation classifier instead of using a rule-based method. Moreover, we can deploy the bot on Amazon's Alexa to make the conversation more natural due to the addition of voice.

Share this project: