Concepts & Domain
DTO Model
- Generated by swagger codegen spec (see
openapi-spec/graphex-minimal.yaml
)
Entity Relationship Diagram (used in DB)
Model Breakdown
For better understanding of the model, we will break it down into a few parts:
Task
A Task
describes a fully defined task on solving a problem on a certain graph.
In order to distinguish between static tasks and dynamic tasks a task can (but does not necessarily have to) contain a TaskTemplate
. If it contains a TaskTemplate, it can be considered a dynamic task otheriwse it's a static one (which is associated to a static answer string). A task template can be used in multiple tasks and it's purpose is providing the same exercise (with the same evaluation script) for different tasks (i.e. different graphs). This way the teacher can create one general task description, which can be associated with different graphs. For managing evaluation scripts there is the TaskSolver
Students can submit Feedback
for tasks. This feedback is not evaluated by the system, but can be used by the teacher to improve the task description.
Teachers can setup TaskHints
for tasks. These hints are shown to the student if he/she requests them individually.
To group and categorize tasks, they can be put into TaskGroups
and TaskCollections
. A task can be part of multiple groups and collections.
Graph
Entities like Graph
, Vertex
and Edge
obviuosly represent the graph data structure.
Tags
Tags
can be used to categorize tasks and graphs. They are used in the frontend to filter task templates and graphs.
TaskResult
As soon as a student submits a solution to the API it gets recorded as a TaskResult
in the database.
After the solution has been checked/evaluated (using the static answer or the Evaluator service) the attribute answerTrue is written so that the TaskResult is complete.