Application Architecture Data Model Course - IT-REX-Platform/Wiki-EnPro-WS2020 GitHub Wiki

Course Structure Data Model

CourseStructureModel

Description

IdentifiableElement

An IdentifiableElement has a name and an id. The id is used to identify an entity globally and uses a "Universally Unique Identifier" as data type (see https://www.uuidgenerator.net/). It is used as a Stereotype on other components.

TimedElement

A TimedElement has a startDate and an endDate. They describe when the element becomes visible to the Student and when the Student is supposed to complete the Element. It is used as a Stereotype on other components.

Course

The Course is the most important element of this model. It consists of a logical and temporal part, represented by the Chapter and the TimePeriod respectively. The Course has a startDate and an endDate as fields. The contained TimePeriods can only start and end between those two dates. The Course also contains the maxFoodSum and a courseDescription. The former is the maximum sum of food that can be earned for the IT-Rex over the entire runtime of the course. The field remainActiveOffset indicates how long the Course remains active after the specified end date. The publishState indicates whether the Course is published and can be found by the Students.

PublishState

Enumeration that indicates whether the Course is published or not. Fields:

  • UNPUBLISHED: The Course is only visible to the Lecturer that created it.
  • PUBLISHED: The Course is visible to all Users of IT-Rex.

TimePeriod

The TimePeriod embodies the temporal part of the Course and is one period of time in that a student is supposed to complete a set of contents. For that it refers to a set of ContentReferences. It is identified by an id and contains a maxFoodSum. The sum of all TimePeriods maxFoodSums has to be equal to the maxFoodSum of the Course.

Chapter

A Chapter is a collection of contents. For that it refers to a set of ContentReferences. A Student completes a chapter when all contained Content items have been completed. The order of Chapters in a Course is calculated from the start and end date of the assigned TimePeriods of contained ContentReferences. If there is no such assignment or overlaps the field chapterNumber is used to identify the order of a Chapter in a Course. The chapter has a field maxFoodSum. The sum of all Chapters maxFoodSums has to be equal to the maxFoodSum of the Course.

ContentReference

A ContentReference is a reference to a Content that was created by the Lecturer. For that it holds a field contentId that references the id of the Content. There can be several ContentReferences for the same Content. A ContentReference can be assigned to a TimePeriod. As a consequence, it becomes available to the student when the startDate is reached and is supposed to be completed when the endDate is reached. For the order of ContentReferences in a Chapter the field index is used. It is overwritten when a ContentReference of higher index is assigned to an earlier TimePeriod. The contentReferenceType identifies the type of Content the ContentReference refers to. It has a field foodReward. The sum of all Contents foodRewards has to be equal to the maxFoodSum of the containing chapter.

ContentReferenceType

Enumeration that indicates the type of Content the ContentReference refers to. Fields:

  • AUDIO
  • IMAGE
  • DOCUMENT
  • QUIZ
  • VIDEO

Content

A Content is created by a Lecturer in a Course and held in the ContentPool. It is an abstract entity that is implemented as one of the different ContentReferenceTypes. The lecturer can assign a Content to a Chapter. In that case a ContentReference is created that refers to the original Content. A Content can be assigned to several Chapters, therefore several ContentReferences can be created for one Content. For further information got to Content Data Model.

ContentPool

The ContentPool contains all Contents that belong to the Course. It is a mean to have an overview about uploaded Content and also store Content that has not been added to a Chapter. Every Course has exactly one ContentPool.

RexDuell

Every course has exactly one RexDuell. It enables the students to compete with each other by answering questions about the Course Content. For further information go to Quiz Data Model.

QuestionPool

The QuestionPool contains all Questions that belong to the Course. They can be used in multiple different quizzes. Every Course has exactly one QuestionPool. For further information go to Quiz Data Model.

TurboQuiz

Every course has exactly one TurboQuiz. It enables the students to learn Course Content by answering quizzes with a time constraint. For further information go to Quiz Data Model.

IT-Rex

IT-Rex becomes hungry when a Content appears. The foodDeficit grows as much as the foodReward of that Content. The foodDeficit can be lowered by feeding IT-Rex. The IT-Rex itself is not destroyed when the course is destroyed because it is supposed to be a permanent trophy for the Student upon the end of the Course. -> clarify and bring in line with gamification ideas

Student

Students participate in Courses and complete the contained Content and Chapters. Thereby they get rewarded with foodRewards to feed their IT-Rexes. They can also play quizzes like RexDuell and TurboQuiz to gain additional rewards. For further information go to User Role Model.

Lecturer

Lecturers can create and delete Courses and lecture the contained Content. Every Course has at least one Lecturer. Lecturer manage Courses by creating TimePeriods and Chapters and uploading the Content. For further information go to User Role Model.

User

For further information go to User Role Model.