Recent increase in cyber bullying is one of the primary reason for the tool. Mental health and online harassment are major, relevant issues today in our current society. Everyone should be able to access content in the internet without fearing for trigger words or harassment.
What it does
The idea was to make a tool that will help users with specific traumatic experiences to filter out sections of webpages with offending content. This is a web-extension, which acts both on Chrome and Firefox as Extension and Add-On respectively.
The contents are blocked at page load, so the user is still able to access the context of the site before making up their mind if they are staying or leaving. The extension has s simple UI which lets them choose what to block and what not.
They can also click on the covered sections to reveal as they go. The script searches through the entire DOM looking for elements wherever they may be on the page. Sentiment analysis was implemented to determine what content was malicious.
The script also observes the page so it can adaptively block content on pages like Youtube loading comments, Facebook feed as well as Twitter pages.
Firebase was integrated in order to allow users to flag words and phrases that have no been picked up.
How I built it
Challenges I ran into
WebExtension is not yet very seamless, I still have weird UI bugs in Firefox. It works but the icon doesn't get displayed. Also the add-on store is somehow not detecting my manifest file even though it is present.
The idea cropped up from "HackTube" another online harassment hack which replaces offending content form Youtube Comments. But instead of the "stop word" and "keyword" based approach they took, the sentiment analysis approach gives much better result as well as uFilters mutation observer works for dynamic webpages as well including Youtube and every other webpage. Also Firefox and Brave compatible.
What's next for uFilter
Make the sentiment analysis portion better. It is a very hard problem to actually classify what is "abuse" and what is not. I want to make it's UI better for classification for the same.
Also, working alone is boring :( and hard.....want a team next time :'(