These are two different clients using the text editor
Many CSE courses at UCSD allow you to pair program for programming assignments, meaning you can work on them with another person. Pair programming requires someone to be the "typer" and someone else to sit next to them and give them ideas on what to type. TritonCode allows programmers to collaborate on assignments without having to be physically present and allows multiple people to type at the same time!
What it does
TritonCode is a TextEditor that allows you to collaborate on code in real-time. Two people can edit same code file at the same time and their changes are reflected in real-time. It also features a chat box so you can communicate with your partner.
How we built it
We built it using a WebSocket server using Java and the Spark web framework. We used Gradle to download dependencies and Git for version control. To handle sync changes, we used an open-source operational transformation library I built a month ago (https://github.com/sidneynguyen/operational-transformation-java) to handle conflict resolution. To make the text editor GUI, we used JavaFX. Our chat box was built using a Node.js server and Socket.io. We deployed out servers on Heroku.
Challenges we ran into
We ran into issues regarding concurrency control, building the project with different versions of the JDK, and using a buggy operational transformation library.
Accomplishments that we're proud of
We were able to build a simple text editor, deploy a working server on Heroku, and implement a chat box. People are able to edit files over the server in real-time.
What we learned
We learned that Java is a horrible language to hack with. We also learned how to build a WebSocket server and client, how to use JavaFX, deploying a Gradle app on Heroku, and making chat server using socket.io.
What's next for TritonCode
We plan to iron out bugs related to slow network connections and typing too quickly.