Concepts & Domain

DTO Model

  • Generated by swagger codegen spec (see openapi-spec/graphex-minimal.yaml)

Entity Relationship Diagram (used in DB)

Entity Relationship Diagram

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.