What it does
Uptone protects you from hate speech on social media by running posts through a neural network and sentiment analyzer, hiding those determined to be hateful.
How we built it
The browser extension was made using webextension-polyfill, in order to support all major browsers. It uses parcel to compile the extension, and web-ext for easy hot-reloading and development. The extension parses tweets on the page by hooking onto the scroll event and querying different selectors. Then, it sends the Tweets to the backend API, where predictions are returned.
The backend API was made using Flask, and it consists of a POST route that serves the neural network model and sentiment analyzer.
The AI model was made with Tensorflow and Keras. It is a Convolutional Neural Network that categorizes Tweet text into (0 = hate speech, 1 = offensive language, 2 = neither).
Finally, the website was made using NuxtJS and WindiCSS, and designed with Figma.
Challenges we ran into
At the start, the accuracy of the AI model was quite low, hovering at around 70%. We were able to increase this to ~87% by tuning hyperparameters and making a custom Tweet preprocessor. In addition, we ran into a few bugs while making our browser extension, as it was the first time any of us had made one. For instance, the dialog shown when hiding a Tweet would be duplicated many times, and the "View" button also did not work. We were able to fix these problems after careful debugging, and testing different ideas.
Accomplishments that we're proud of
We are proud that we were able to accomplish so much in a short period of time. This was the first hackathon for all four of us, so we are very excited to be able to make this project and share it with the rest of the world. We are also proud that the extension and AI model work perfectly and function as intended. It was a difficult process to develop them in the short period of time given, but everything worked out in the end.
What we learned
We learned how to manage our time well. As we had to finish this project in less than 24 hours, we had to plan out every step on the roadmap. To assist with this, we made great use of Github's many features, such as issues, pull requests, actions, and projects. Github Projects and Actions allowed us to automate a large portion of our workflows. Additionally, we learned how to create a cross-browser extension and tune a neural network's hyperparameters.
What's next for Uptone
In the future, we hope to expand our services onto other platforms such as Reddit, Instagram and TikTok. We also hope to integrate new filters, such as for bot posts and possible scams. For instance, one of the key features of cryptocurrencies built on the blockchain is that they are decentralized. Therefore, transactions are irreversible, and as such, scams are highly prominent in coins such as Bitcoin. We intend to create a model which can detect such crypto scams, which are rampant on platforms such as Twitter.
Built With
- figma
- flask
- javascript
- jupyter-notebook
- keras
- nuxtjs
- python
- tensorflow
- webextension-polyfill
- windicss


Log in or sign up for Devpost to join the conversation.