Suicide is a leading cause of death, especially in young people. Depression has always been a problem among America's youth. The impact and loneliness brought about by COVID-19 have only worsened this. Often, people don't realize that they need help with their mental health. We want to bring this to light by creating an enablement platform to detect trends of depression among Twitter users, then allowing Social Workers to be virtually dispatched to help them.
What it does
Social tweeter actively listens for tweets with the keyword SocialTweeterHelp. When someone responds to a thread with this keyword, it analyzes every user in the thread's posting history to determine whether or not they are at risk in terms of suicide and depression. We then have a dashboard where a volunteer social worker could monitor to determine who they believe needs help given the info we provide. We allow automated messaging from our platform to at-risk users, and provide resources to help the analyzed Twitter users.
How I built it
The frontend is built with Vue.js+firebase cloud functions+Twitter API+tailwind. The backend is built with Python+Tweepy+Datastax Astra (Cassandra DB)+Azure API. The Azure machine learning model is trained on this(https://github.com/hesamuel/goodbye_world) data set. The frontend and backend are deployed to Heroku. The Machine Learning model is built using Microsoft Azure's natural language understanding engine on cognitive services. We trained a dataset using published work taken from subreddits with depression and suicidal posts: particularly from the following: r/depression: because nobody should be alone in a dark place
r/SuicideWatch: Peer support for anyone struggling with suicidal thoughts.
This data was scraped previously by the authors of the "goodbye world" virtual suicide prevention project. We published a LUIS app on Azure cognitive services to be able to analyze and classify tweets according to the underlying sentiment as well as suicidal or depressing intent.
Challenges I ran into
The Twitter API did not want to let me pass by auth for like 3 hours, so I had to switch to using the Python package, Tweepy. All of my teammates fell asleep, so I had to integrate the frontend with the backend and make the front-end extensible via our database, then create a cloud function to allow a separate API call to Twitter, then fix deployment issues, then fix styling issues, then fix lots of bugs with the cloud function, then write this Readme, then make the video.
Accomplishments that I'm proud of
All of the above, and helping bring to light potential non-profit solutions for the mental health crisis in America.
What I learned
Firebase, Tweepy, Datastax, Vue.js, Twitter API.
What's next for Social Tweeter
Creating a background check process for onboarding volunteer social workers. Scaling production with Kubernetes. Increasing security. Implementing more features and more social media platforms. Creating an ML model to detect trolls, so we don't waste the precious social workers' time on them.
How do we qualify for our selected challenges?
#HealthyConversations using Twitter API by Twitter
Our project promotes Healthy Conversations by finding users on the app who may not be in a state of good mental health and providing a platform and process to get them help. We'll fuel the circle, helping depressed and suicidal people who use the app will lead to less negative content being posted, which keeps looping and looping, creating not only a better Twitter, but a better, happier, and more compassionate society. We used the following Twitter API Endpoints throughout our app:
- POST /direct_messages/events/
- GET /statuses/user_timeline/
- POST /statuses/filter/
Best Hack for Social Good by JPMorgan Chase
See above explanation. We aim to break the cycle of depression through the use of our application, allowing social workers to reach out. The project has the basic features of detecting depressed tweets and reaching out functions done, and is very accessible to every social worker in the future by allowing location filtering and tag filtering.
Virtual Good Neighbor Challenge by State Farm
Being a good neighbor can expand far beyond the bounds of next door. With this in mind, we set out to find and build a solution for one of the world's largest challenges to date: Mental Illness. With a vast majority of the world's population suffering from mental illness in some capacity, we believe it's imperative to help those around us. And, with the internet, that pool of people is increased infinitely. So, we created a platform that allows you to be a good virtual neighbor, where you can go out of your way to help people who you think need it the most.
Best Potential Startup by 1517 Fund
While our project doesn't necessarily have the obvious fiduciary gains associated with it that an investor would typically look for, it does have one important aspect that is often overlooked: Investment in the people. By investing in Social Tweeter, you're enabling a new wave of selfless citizens to help their virtual strangers, neighbors, and friends. This will ultimately create a happier society, allowing the economy to flourish and gains to be met in more indirect places.
Best Use of Azure for Social Good by Microsoft
We trained an Azure AutoML model on this (https://github.com/hesamuel/goodbye_world) dataset, and integrated that endpoint into selection of tweets and assigning of scores.
Azure LUIS app endpoints are here: https://shellhacks.cognitiveservices.azure.com/
The data used to train the Natural Language understanding app was taken from a variety of online suicidal/depressing posts and notes, and mainly from the two subreddits mentioned above. We trained the model to detect suicidal and depressing intents as well as overall sentiment. The Data pipeline is designed to be updateable as more tweets become available from out database, thereby increasing the intuition and effectiveness of the model
Best Use of Google Cloud by Google
We used Firebase for some data storage and for cloud functions(used to send Twitter DM's to a user upon button click).
Best Use of DataStax Astra by MLH
See screenshots. We made use of datastax astra to set up a REST API where our application obtains data to display on the dashboard.
Best Domain Registered with Domain.com by MLH
we registered stephensquawking.tech (get it, bc stephen hawking and birds from twitter hehe), check screenshots.