Inspiration
Twitter toxicity and trolls on the Internet have gotten too normalized in our online experiences. We wanted to create a product to combat that.
What it does
Running the user's specific text input through a Chrome extension, it will count how many explicit words or phrases are present within and report the analytics back to the user.
How we built it
The Python script, stored on a Flask server, reads from the locally stored explicit words text file specifically curated using existing databases of banned or offensive words. On the front-end, we created the Chrome extension that gathers the user input for the Python to compare against database.
Challenges we ran into
Being first time hackers, we had trouble ideating and planning the design due to the limited time difficulty of the first iteration of the idea. Additionally, we had very limited experience developing in HTML, Javascript, and Python, and often ended up learning on the job. One of the largest challenges we faced was in connecting the frontend and backend, as Chrome's recent update to Manifest V3 meant that many solutions we found online was out of date due to being for V2. Additionally, many V3 solutions were very complex and had little documentation, meaning that we had to reverse-engineer the solutions based on the provided code snippets.
Accomplishments that we're proud of
I think one of the things we're most poud of is getting both the frontend and backend to work. Despite having trouble establishing communication between the frontend and backend, both parts individually serve their purpose as intended.
What we learned
Each of us worked on the code, so we walked away with improved knowledge of Python, HTML, CSS, and Javascript, while also learning a little bit about Flask development for web apps.
What's next for Explicity
Although we were able to get a basic filter via a regex, there were some factors that we considered but didn't have the time to guard against. For example, since our filter is space-sensitive, a user would bypass it by separating each character with a space or other special character. Additionally, actually considering which text to filter is often context-sensitive, a task that is too subjective to be modeled by a regex generator. As such, we plan to scale up the scope by incorporating NLP models so it can adapt to user's creativity in attempting to bypass it. Additionally, due to uncertainty around Manifest V3 we could refactor the project to instead serve as a plugin for messaging platforms and social media.
Log in or sign up for Devpost to join the conversation.