Inspiration

Bantr came about through frustration. Time and time again, we have seen debates lose their purpose due to administrative errors. Be they student union debates, or even televised town halls, there seems to be a persuasive lack of awareness regarding what is going on. It turns into one-sided dialogue- a speech instead of a forum. This is what we wanted to change. Through creating this new user interface for discussion, we hope to allow debates to run smoothly such that everyone can be a participant.

What it does

The app essentially creates “rooms” that a user can enter. Users must have an account on the system, and they are provided with a username. These users can participate in the debate with three different sets of rights. First and foremost, they may be spectators. Spectators have the least rights- they may see the questions being asked, the time remaining, and have the opportunity to chat in real time with other people. They can also see who is participating in the debate. Debaters have the ability to do the aforementioned, but they also have questions directed at them by the moderator. The moderator gets all of the rights and is also the one that controls the flow of debate by asking questions. There can exist unlimited rooms (within reason) and anyone can create and moderate rooms. To join a debate, one must have the password that was created by the moderator. If you attempt to type negative information into the chat, your chat will not be displayed.

How we built it

The project is primarily a Flask web app, coded using python. In order to get the real-time information and feedback, we integrated the project using socket.io and we had to take an SQL database and turn it into a real-time database. The server communicated with the client as every action is routed through the server before it takes place. For the sentiment analysis, we used Azure to see negative phrases and block them from happening.

Challenges we ran into

As with any new technology, we had issues with unfamiliarity. Not only did we want to create a real-time development and production environment, but we also wanted to include nuance in regards to the user accounts. Because of our lack of knowledge with Socket.io, we had to read a number of different resources in order to even understand the principles. It was hard to standardize only half of the website while giving different privileges to the users. It was also difficult to create a real-time environment because we had to have a constant connection between the various clients and the servers.

Accomplishments that we're proud of

We are very proud that we have a finished product- we even have a domain that allows others to use our service. We are pleased that we were able to get all of the features that we said would be essential into our product, and even more. Not only did we get the base goal of a chat-like system, but we were able to add advanced features like filtering the chat. We really got into the niche market that we thought we would aim for and we added functionality that separates our product from other chat apps like Twitch, Slack, and more. We showed someone the project and they commented that our app was like “Slack but better”, which we really appreciated.

What we learned

We learned a lot about the value of reading online. We found that the Socket.io documentation (despite being imperfect) allowed us to understand what is happening. We also began to understand a lot more about client and server interactions and how exactly this process works. We truly believe that without learning how computer socket interaction works we never would have been able to create his project.

What's next for bantr

We are hoping to add more features. As we see it right now, our product is a medium viable product for something greater. We’re looking for more and more Azure integration - we hope to add the ability to search for information using Bing to our product. We also want to be able to implement this not only in political settings but also potentially in the classroom or when there are panels- anytime there is a mass gathering and questions being asked, we feel as though Bantr can be used. We hope to turn this into a full-fledged product.

Try it out at bantrwith.us

Share this project:

Updates