"Can't Touch This" is a tool that aims to minimize the number of merge conflicts by preventing them from happening in the first place. We want to build an application that supports communication and collaboration within the team and boost overall productivity. Several clean frontends and a robust backend will ensure that every member of the team, no matter which development tools, will all get to be a part of the collaborative network.
What it does
Can't Touch This informs users about which parts of the code are being worked on in real time. Line-by-Line Highlighting is only of the many features that tighten the connection between Version Control Software (VCS) and Integrated Development Environments (IDEs)
As a team with prior experience in Hackathons, we knew that we had to tackle the challenge differently this time. Our main goal was to be able to complete a project that not only brings something new to the table, but also helps us grow as developers. We split our workload into four seperate workspaces: the server backend, the web frontend, the desktop backend, and the desktop frontend. With everyone becoming an expert in their own area, conflicting implementations and ideas were kept to a minimum.
Challenges we ran into
As the smart folks over at JetBrains have warned us about, creating a JetBrains plugin with no prior experience is not easy. And while one of us had to reverse engineer IntelliJ, another one of us had to the architecture of Browser Extensions and Website Manipulation from scratch. And debugging, as always, was the final Boss.
Accomplishments that we are proud of
When all the components first started connecting and reading information off of each other, we immediately started using them on the project itself. The moment a team mate asked another "Hey, why are you touching my files?", we all knew that we were on the right track!
What we learned
Don't shy away from a project that seems to be outside your realm of abilities. The hardest challenges can teach the most. Not to forget the relief we get from defeating them.
What's next for Can't Touch This
Our flexible backend allows for all kinds of frontends to really make sure that all team mates can take part. In the future, we are thinking to further analyze the changes and detect possible causes of errors. For example, we could tell the developers that the changes are there because they did not pull. Or automatically detect how likely a change is to be severe. Or to add support for the most popular programming languages to also analyze the program structure that is being changed and potentially affected files. And add an easy way to contact the people that are making the changes. Either way, the possibilities are endless.