From adb8d03102491a1509e19f748120701c4f460ecb Mon Sep 17 00:00:00 2001 From: Martin Polanka Date: Fri, 6 Jan 2017 22:25:17 +0100 Subject: [PATCH] Restruct --- Rewritten-docs.md | 55 ++++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/Rewritten-docs.md b/Rewritten-docs.md index 5d56a87..efab2a9 100644 --- a/Rewritten-docs.md +++ b/Rewritten-docs.md @@ -386,14 +386,6 @@ recruiters and also some universities. # 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 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 @@ -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 of the system. -### Basic concepts +## Basic concepts The system is designed as a web application. The requirements say, that user 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 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: -- 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 +@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 ## Structure of the project @@ -570,17 +571,17 @@ system for their specific needs and use the possibilities of the backend without any changes, as was mentioned in the previous paragraphs. In the latter parts of the documentation, both of the backend and frontend parts -will be introduced separately and covered in more detail. The communication +will be introduced separately and covered in more detail. The communication 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 configuration of execution pipeline. The idea comes from lecturers of Compiler principles class who want to migrate their semi-manual evaluation process to 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. There are two main approaches to design a complex execution configuration. It