Introduction

ReCodEx is a system for testing people’s programming skills. Our primary target are technical universities. These often have programming courses that require the students to write programs that have to be checked by teachers. By checking the basic properties (the source code compiles and the program works correctly for a defined set of inputs) automatically, ReCodEx lets teachers focus on more important parts of the course, while also providing students with continuous feedback.

The system is highly customizable - it allows testing simple programs in C, but also in languages such as Java, Python, Prolog or Haskell. Even complicated scenarios such as testing parsers based on flex, yacc and bison or running highly parallel programs on a NUMA machine are feasible.

We use modern technologies everywhere in our infrastructure - source code submitted by students is run in a sandbox based on Linux kernel namespaces and CGroups to ensure safety, the backend is based on microservices that communicate over the network so that the system can be scaled up and our frontend is a React.js application that communicates with the backend through a REST API.

Where To Go Now?

If you are interested in the project, you can get more information from our wiki. You can also read the source code of all ReCodEx components on GitHub.

Student Project Topics

ReCodEx started as a student project, and therefore, it is open to being expanded upon by other such projects. There are many possible topics, some of which we list here. If you are interested in any of them, feel free to contact us.