Facebook has over a billion daily active users and anyone can say anything without fear of repercussion. Given the recent political climate shift in America, social media has become more toxic than ever! Nowadays, it's hard to browse your feed without viewing some offensive content. While it's healthy to engage in political discussion, some users want to use their limited time catching up with friends and family. Our vision is to create a safe environment and positive community in which users can surf carefree. Without the constant barrage of negative headlines, posts, and comments, we can bring the world closer together through positivity.

What it does

Our Chrome Extension filters posts and comments based on a calculated Sentiment Rank. Before posting, users can query our Filter Bot to determine how positively their post will be perceived. Users can also submit posts to our leaderboard in order to update their rank and strive to be their most positive self.

How we built it

We started by making a back end API that was based on Firebase cloud functions that would return a Sentiment Rank determined by Google's Natural Language API. Our backend also accounts for user post management and leaderboard feature. The Sentiment Rank is also used in the Chrome Extension, leaderboard, and Messenger bot. The Chrome Extension uses the Sentiment Rank to dynamically blur out negative posts using injected Javascript and CSS. The leaderboard, built with React, displays users’ average scores as a way to visualize how positive a person's posts are overall. This data is pulled from Firebase through cloud functions and their Cloud Firestore API. The Messenger Bot was built on NodeJS using the Facebook Messenger API and our own Sentiment Rank API. It reads messages sent to our API to calculate Sentiment Rank and returns this score to the user.

Challenges we ran into

Due to time constraints, we weren't able to get access to Facebook's User API. As a result, it was impossible for us to implement an extra feature we had set out to complete, the ability to scrape user posts. Because of this issue, we were unable to implement our Android and iOS app ideas. We were also unable to directly pull posts from a user's Facebook feed, which resulted in the leaderboard requiring manual user input.

Accomplishments that we're proud of

The amount of work we were able to get done and the cleanness of our Chrome extension

What we learned

As a group, we learned React, how to write an API using Firebase cloud functions, and how to interact with the Facebook API.

What's next for Facebook Filter

If our app is approved by Facebook, we could finish app and web browser implementation, which would allow users to browse their filtered feed seamlessly.

Share this project: