Mental health is almost never treated with the care and urgency of physical health. As students, we often face stressful situations that we are unprepared for. We wanted to build a chatbot that can administer "Mental First-Aid" to help our peers cope with and navigate the adventure of university life.
What it does
Bob is a chatbot that implements the ALGEE acronym associated with mental first-aid programs:
A: Assess for risk of suicide or harm.
L: Listen nonjudgmentally.
G: Give reassurance and information
E: Encourage appropriate professional help.
E: Encourage self-help and other support strategies.
It assesses the severity of the situation to determine the best course of action for the user. Apart from providing mental health support, Bob provides a platform for users to donate to causes that they feel strongly about to put "do good - feel good" into action.
Bob also integrates with NYU's APIs to provide professors with anonymous data related to course-induced stress, empowering them to better shape their curriculum keeping students as the center of the focus.
How we built it
We used Wit.ai, a free NLP(Natural Language Processing) solution specifically shaped to allow quick and easy deployment of chatbots.
We used GCP's Cloud Functions + Python 3 for connecting to external services and providing the back-end and ReactJS to provide a versatile front-end.
ParallelDots was used to detect and quantify emotion conveyed by the messages. SendMail and Twilio Programmable SMS used to notify emergency contacts of user.
Challenges we ran into
As developers who have primarily worked on back-end tasks, ReactJS was something that neither of us had much experience in. There was a small learning curve, but its customizability and ease of implementation eventually proved to be a great choice.
We wanted to keep the infrastructure of the application as light as possible, and we found a way to eliminate the need for persistent storage. We had to build a bunch of support mechanisms, particularly for maintaining the conversation context.
While Wit.ai provides out-of-the-box intent classification and named entity recognition, we had to evaluate various third-party services for providing competent emotion recognition and quantify the extent of these emotions.
Accomplishments that we're proud of
In the course of 2 days, we managed to implement a fully-functioning chatbot using tools such as ReactJS and Cloud Functions that none in the team had prior experience in. We managed to implement almost all the features that were part of the initial planning despite time constraints through unprecedented focus, dedication and discipline.
What we learned
Motivation and good team-work can help achieve seemingly impossible goals.
What's next for Bob
We never envisioned Bob to replace counselors, but rather to serve as an immediately available tool to help alleviate stress and recommend professional help when necessary. With guidance from mentors with extensive domain knowledge, we hope to take Bob beyond the walls of universities and into the reach of anyone who might need mental first aid.