Project Code Defenders - Robo Tournament

The “CodeDefenders: RoboTournament” project aims at enriching the already existing game of CodeDefenders with some new functionalities: students tournaments, games against bots, and live score streaming. The tournaments function will be implemented by an external application.

CodeDefenders is a web game on mutation testing.

Each game involves two teams of students, competing against each other, and a piece of code (code under testing).

The attackers team injects faults in the code under testing creating so called mutants, whereas defenders write unit tests to spot the injected problems. 
Defenders earns points for each discovered mutant. Attackers earn points for each mutant escaping the tests.

 

Project Features

  • A Tournament Application allowing students to create teams and compete in tournaments
  • A streaming service (included in the Tournament Application) allowing users to follow games live
  • CodeDefenders API to manage users and matches
  • CodeDefenders API to let bots play a match and get data to be trained

 

Tournament Application

Try out our Tournament Application!

Tournament Application homepage

A full demo of the tournament application is also available. Check it out!

 

CodeDefenders APIs

API to get data to train bots and to let them play can be tested on an instance of our updated CodeDefenders version!

A full list of available APIs can be found in this document.

 

Architecture Overview and Technologies

The following figures show the high-level architecture of our system and the component architecture of our Tournament Application

In our project we adopted Spring for the Tournament Application backend and React framework for its frontend. Our data are stored in a relational MySQL database. We finally used Java Servlets to implement CodeDefenders API.

 

Additional Resourses

Find out more in our Project Plan and other documents.

Our Jira project page: Product backlog status, Sprint board

Our project product on GitHub

Our Docker Hub repository: codebenders

 

Contact Us

Simone MEZZARO: simone.mezzaro@mail.polimi.it

Dominik Brdar: brdar.dominik@gmail.com