2020 has been an incredibly divisive year. From riots in the street to police brutality to the death of two iconic superstars of the black community, this year has left us feeling raw, exposed, and really, really, tired. With what might be perhaps one of the most controversial elections coming up, my teammates and I devised an application that might be able to encourage everyone to play just a little nicer and at least listen to someone else's opinions once in a while.
What it does
Bridge is a web application that focuses on education. We do this primarily by connecting you with people who have opposing viewpoints from you regarding sensitive topics like universal health care, immigration laws, government spending, and more. We've implemented a chat room that encourages thoughtful discourse and automatically detects and bans hurtful messages without any reasonable or logical basis. While we do plan to diversify the different learning opportunities on Bridge, one additional feature we have already implemented is a news feed fit with warnings regarding over-use of emotional jargon and the presence of hateful speech through the detection of vulgarity. To sum it up in a sentence, Bridge creates a safe and easy way for people to grow intellectually, allowing for honest conversation without the need to resort to violence or degradation.
How We built it
The tech that ties the entire site together is undoubtedly our unique natural language processing algorithm. Whether that's in determining people's views on certain issues, detecting overuse of pathos in writing, or preventing the sh*tposting of people who don't agree with you, we faced the challenge of having to write an algorithm that knew the difference between respectful debate and straight-up tantrums. To do this, we trained an AI to weed out certain words (mainly swear words), understand that certain phrases represent keywords that have more weight in determining the overall weight of the sentence, and recognize common structures in sentences that could result in otherwise misleading sentiment. Overall, our AI was fairly successful, able to detect all cases of profanity, personal insults/baseless accusations, and more. Of course, while the AI is not always completely accurate, especially for longer bits of text, my team and I are very happy with how it turned out in 24 hours. Outside of the NLP algorithm, however, we had to work through issues like web scraping, matchmaking, frontend design, and frontend/backend integration.
Challenges I ran into
This brings us to the issue of challenges, which to say the least, were plentiful in this project. Mainly, the biggest challenge was time for us. If we had another 24 hours, we're confident that we could develop a seamless web application and possibly even add a couple more features here and there. However, this time, after grinding through writing an AI and setting up the backend and API structure, my group and I really struggled with both getting enough time and enough energy to properly develop the site's frontend. This is definitely obvious in terms of how the user experience drops off significantly between the login/registration and the rest of the site, and given more time, definitely an aspect we would work to perfect.
Accomplishments that We're proud of
- Writing out the NLP algorithm
- Setting up Firebase and working with React for the first time
- Actually setting up proper abstraction using Flask for our API endpoints
What We learned
Definitely a lot about natural language processing... Previously, our projects had always been just implementing some other dude's library that we found from Github, but actually building and developing our own this time was both really fun and challenging! Abstraction and OOP really helped us later on in the project, but alas, it was too late to save the site's frontend :((. We also learned to divide up tasks better, as in the beginning we would basically have one person working while the other two messed around. We certainly paid the price for that at 3 in the morning.
What's next for Bridge
Improving the frontend!!! No matter how great our idea is, if the UI isn't appealing, then people probably won't use it. We're really looking forward to making this much more user-friendly in addition to being rather powerful on the backend. What's more, right now the site is definitely really focused on user-to-user interaction, which we understand isn't ideal for everyone. Something that we can work on is definitely increasing the number of experiences people can choose on our site and thereby learn more from by doing so.