@ -336,12 +336,9 @@ like "memory limit exceeded") and amount of awarded points.
### Solution concepts analysis
### Solution concepts analysis
@todo: what problems were solved on abstract and highl levels, how they can be solved and what was the final solution
@todo: what problems were solved on abstract and high levels, how they can be solved and what was the final solution
#### Evaluation unit executed on backend
### Implementation analysis
@todo: backend: what should be the structure, how many components and which one, mention scalability possibilities of current solution
@todo: describe possibilities of "piece of work" which can backend execute, how they can look like, describe our job and its tasks
@todo: describe possibilities of "piece of work" which can backend execute, how they can look like, describe our job and its tasks
@ -351,8 +348,19 @@ like "memory limit exceeded") and amount of awarded points.
@todo: how to solve problem with specific worker environment, mention internal job variables
@todo: how to solve problem with specific worker environment, mention internal job variables
### Implementation analysis
Developing project like ReCodEx have to have some discussion over implementation details and how to solve some particular problems properly. This discussion is never ending story which is done through whole development process. Some of the most important implementation problems or interesting observations will be discussed in this chapter.
#### General backend implementation
@todo: backend: what should be the structure, how many components and which one, mention scalability possibilities of current solution
@todo: what type of communication within backend could be used, mention some frameworks, queue managers, protocols, which was considered
@todo: what type of communication within backend could be used, mention some frameworks, queue managers, protocols, which was considered
#### Fileserver
@todo: fileserver and why is separated
@todo: fileserver and why is separated
@todo: mention hashing on fileserver and why this approach was chosen
@todo: mention hashing on fileserver and why this approach was chosen
@ -361,12 +369,16 @@ like "memory limit exceeded") and amount of awarded points.
@todo: how can jobs be stored on fileserver, mainly mention that it is nonsence to store inputs and outputs within job archive
@todo: how can jobs be stored on fileserver, mainly mention that it is nonsence to store inputs and outputs within job archive
#### Broker
@todo: assigning of jobs to workers, which are possible algorithms, queues, which one was chosen
@todo: assigning of jobs to workers, which are possible algorithms, queues, which one was chosen
@todo: how can jobs be sent over zeromq, mainly mention that files can be transported, but it is not feasible
@todo: how can jobs be sent over zeromq, mainly mention that files can be transported, but it is not feasible
@todo: making action and reaction over zeromq more general and easily extensible, mention reactor and why is needed and what it solves
@todo: making action and reaction over zeromq more general and easily extensible, mention reactor and why is needed and what it solves
#### Worker
@todo: worker and its internal structure, why there are two threads and what they can do, mention also multiplatform approach during development
@todo: worker and its internal structure, why there are two threads and what they can do, mention also multiplatform approach during development
@todo: execution of job on worker, how it is done, what steps are necessary and general for all jobs
@todo: execution of job on worker, how it is done, what steps are necessary and general for all jobs
@ -379,16 +391,22 @@ like "memory limit exceeded") and amount of awarded points.
@todo: sandboxing, what possibilites are out there (linux, Windows), what are general and really needed features, mention isolate, what are isolate features
@todo: sandboxing, what possibilites are out there (linux, Windows), what are general and really needed features, mention isolate, what are isolate features
#### Monitor
@todo: how can progress status can be sent, why is there separate component of system (monitor) and why is this feature only optional
@todo: how can progress status can be sent, why is there separate component of system (monitor) and why is this feature only optional
@todo: monitor and what is done there, mention caching and why it is needed
@todo: monitor and what is done there, mention caching and why it is needed
#### General frontend implementation
@todo: communication between backend and frontend
@todo: communication between backend and frontend
@todo: why is frontend divided into server and client part, mention possibilities of separated api
@todo: why is frontend divided into server and client part, mention possibilities of separated api
@todo: what apis can be used on server frontend side, why rest in particular
@todo: what apis can be used on server frontend side, why rest in particular
#### API
@todo: php frameworks, why nette
@todo: php frameworks, why nette
@todo: what database can be used, how it is mapped and used within code
@todo: what database can be used, how it is mapped and used within code
@ -409,8 +427,12 @@ like "memory limit exceeded") and amount of awarded points.
@todo: on demand loading of students submission, in-time loading of every other submission, why
@todo: on demand loading of students submission, in-time loading of every other submission, why
#### Web-app
@todo: what technologies can be used on client frontend side, why react was used
@todo: what technologies can be used on client frontend side, why react was used
@todo: please think about more stuff about api and web-app... thanks ;-)