Inspiration

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.

Share this project:
×

Updates