Inspiration

With each passing day, our world is becoming more polarized. After observing this, our team found a need to bridge this gap between people who may otherwise avoid communicating with each other.

What it does

Discourse allows end users to join a selection of chat rooms for the sake of - discoursing, of course! The topics were selectively chosen to be mildly controversial to promote a disruption of the tendency towards echo chambers. This allows for those with diverse beliefs in these contentious topics to discuss with others whose opinions might differ.

How we built it

We decided to use Java's Spring Boot library to develop a sufficient framework for our web application. Jesse and Miguel employed the WebSocket dependency and STOMP protocol to handle real-time client-to-server-to-client back-and-forth communication. Our front-end lead Heldanna used Figma to map out the GUI, creating a template, which she and our other front-end developer Jared then programmed using React and the JavaScript syntax extension JSX, with design implemented using CSS.

Challenges we ran into

In UCF, CS and IT undergraduate students are primarily trained with low-level abstractive programming tools, such as building data structures and search algorithms from the ground up using low-level languages, like C or C++. The biggest challenge came with having to learn how to work with high-level abstractions (i.e., Spring Boot, WebSocket, and STOMP). Without being unable to look beneath the surface of the library to its fullest, learning the frameworks and libraries was the biggest learning curve, second to troubleshooting JavaScript. The front-end developers were also completely new to using JavaScript libraries, which led to a steep but eventually surmountable learning curve.

Accomplishments that we're proud of

The connection between the back-end and the front-end is our biggest feat. Running both, the client and the server side, witnessing them communicate as we tested the GUI brought great satisfaction and built morale.

What we learned

In total, everyone took their first steps into enterprise-applicable tools, such as React JS, Spring Boot, and WebSockets. Apprenticeship in these tools will surely prove to put us at an advantage toward entering the software development workforce.

What's next for Discourse

We aim to add more functionalities into our application. First, we would like to implement a login authentication system with a built-in connection to a local database that would hold key/value pairs for the login credentials. With this, we plan to add a friend system that will allow users to send each other requests and private message. We also would like to develop a large database of topics that users can choose from, rather than just the 6 we've implemented so far. Our final stretch would be to apply VoIP functionality to our application, to have the capacity to compete with other big enterprise instant messaging apps, like Discord, WhatsApp, or Microsoft Teams.

Share this project:

Updates