@ -386,14 +386,6 @@ recruiters and also some universities.
# Analysis
# Analysis
## ReCodEx goals
@todo: improve and extend this chapter - analysis of user requirements and way we
solve them; exercise is a template for assignment, users are in groups, what is
group, how points are assigned for solutions, ...
@todo: merge with next chapter (Solution concept analysis)
None of the existing projects we came across is capable of all the required
None of the existing projects we came across is capable of all the required
features for the new system. There is no grading system which is designed to
features for the new system. There is no grading system which is designed to
support a complicated evaluation pipeline, so this unexplored field has to be
support a complicated evaluation pipeline, so this unexplored field has to be
@ -445,7 +437,7 @@ chapter. Also a lot of smaller design choices are mentioned including possible
options, what is picked to implement and why. But first, discuss basic concepts
options, what is picked to implement and why. But first, discuss basic concepts
of the system.
of the system.
### Basic concepts
## Basic concepts
The system is designed as a web application. The requirements say, that user
The system is designed as a web application. The requirements say, that user
interface must be accessible from students' computers without installation
interface must be accessible from students' computers without installation
@ -462,22 +454,31 @@ and everybody seems happy about it. There are other communicating channels every
user have available like email or git, but they are totally inappropriate for
user have available like email or git, but they are totally inappropriate for
designing user interfaces on top of them.
designing user interfaces on top of them.
@todo: what problems were solved on abstract and high levels, how they can be solved and what was the final solution
@todo: what type of users there should be, why they are needed
@todo: groups, they can be public and private and why is that, what it solves, explain and discuss threshold and other group features
@todo: explain instances why they are useful what they solve and also discuss licenses concept
@todo: exercise, what is it why we need it
@todo: explain why there is exercise and assignment division, what means what and how they are used
@todo: extended execution pipeline (not just compilation/execution/evaluation) and why it is needed
@todo: progress state, how it can be done and displayed to user, why random messages
@todo: how to display generally all outputs of executed programs to user (supervisor, student), what students can or cannot see and why
@todo: judges, discuss what they possibly can do and what it can be used for (returning for instance 2 numbers instead of 1 and why we return just one)
@todo: discuss points assigned to solution, why are there bonus points, explain minimal point threshold
@todo: discuss several ways how points can be assigned to solution, propose basic systems but also general systems which can use outputs from judges or other executed programs, there is need for variables or other concept, explain why
@todo: where is kept the state (MariaDB)
- which problems are they? ... these ones below:
@todo: and many many more general concepts which can be discussed and solved... please append more of them if something comes to your mind... thanks
- what type of users there should be, why they are needed
- explain why there is exercise and assignment division, what means what and how they are used
- explain instances why they are useful what they solve and also discuss licenses concept
- groups, they can be public and private and why is that, what it solves,
explain and discuss threshold and other group features
- extended execution pipeline (not just compilation/execution/evaluation) and why it is needed
- progress state, how it can be done and displayed to user, why random messages
- how to display generally all outputs of executed programs to user (supervisor, student), what students can or cannot see and why
- judges, discuss what they possibly can do and what it can be used for (returning for instance 2 numbers instead of 1 and why we return just one)
- discuss points assigned to solution, why are there bonus points, explain minimal point threshold
- discuss several ways how points can be assigned to solution, propose basic systems but also general systems which can use outputs from judges or other executed programs, there is need for variables or other concept, explain why
- where is kept the state (MariaDB)
- and many many more general concepts which can be discussed and solved... please append more of them if something comes to your mind... thanks
## Structure of the project
## Structure of the project
@ -574,13 +575,13 @@ will be introduced separately and covered in more detail. The communication
protocol between these two logical parts will be described as well.
protocol between these two logical parts will be described as well.
### Evaluation unit executed on backend
### Evaluation unit executed by ReCodEx
One of the bigger requests for the new system is to support a complex
One of the bigger requests for the new system is to support a complex
configuration of execution pipeline. The idea comes from lecturers of Compiler
configuration of execution pipeline. The idea comes from lecturers of Compiler
principles class who want to migrate their semi-manual evaluation process to
principles class who want to migrate their semi-manual evaluation process to
CodEx. Unfortunately, CodEx is not capable of such complicated exercise setup.
CodEx. Unfortunately, CodEx is not capable of such complicated exercise setup.
None of evaluation systems we found is can handle such task, so design from
None of evaluation systems we found can handle such task, so design from
scratch is needed.
scratch is needed.
There are two main approaches to design a complex execution configuration. It
There are two main approaches to design a complex execution configuration. It