Create a better community to foster further interest in competitive programming.
What it does
Haxxor is a new take on Competitive Programming. Rather than having tournaments on set dates, users can queue for matchmaking and be matched against other competitors of similar skill level in a novel head to head competition. In a best of 5 format, 2 competitors will race to complete each round before the other. Each round will feature a computer science problem, that the opponents will attempt to complete. The first to get all the test cases correct takes the round. The first player to win 2 rounds will take the match, moving up in the standings.
How we built it
We built this system based mostly around a Node.js REST API. The compiler and judge is a multithreaded in-memory java compiler. The realtime system is built with Socket.io. And the front-end will be built with Angular 2.
Challenges we ran into
Communicating between all the different types of services and servers, ensuring constituent protocols and procedures was a major hurdle we ran into. The in-memory compiler was on the of the most difficult pieces to engineer reliable and securely. We have to make sure the the programs could time out, and that they would not pose a security threat.
Accomplishments that we're proud of
Creating a realtime event based match the allows competitors to face head to head racing to solve computer science problems.
What we learned
We learned a lot about realtime systems and show event base architectures should be designed.
What's next for Haxxor
To complete the front end client, and finish implementing a ranking system that allows users to gradually rise to higher ranks while, keeping the game fair and fun.