Table of Contents
- Query
- Mutation
- Objects
- AssessmentMetadata
- AssociationQuestion
- Chapter
- ChapterPayload
- ClozeBlankElement
- ClozeQuestion
- ClozeTextElement
- CompositeProgressInformation
- ContentMetadata
- ContentMutation
- ContentPayload
- Course
- CourseMembership
- CoursePayload
- ExactAnswerQuestion
- Flashcard
- FlashcardLearnedFeedback
- FlashcardProgressData
- FlashcardProgressDataLog
- FlashcardSet
- FlashcardSetAssessment
- FlashcardSetMutation
- FlashcardSetProgress
- FlashcardSide
- MediaContent
- MediaRecord
- MediaRecordProgressData
- MultipleChoiceAnswer
- MultipleChoiceQuestion
- NumericQuestion
- PaginationInfo
- ProgressLogItem
- PublicUserInfo
- Quiz
- QuizAssessment
- QuizCompletionFeedback
- QuizMutation
- RewardLogItem
- RewardScore
- RewardScores
- ScoreboardItem
- Section
- SectionMutation
- SelfAssessmentQuestion
- SingleAssociation
- SkillLevel
- SkillLevelLogItem
- SkillLevels
- Stage
- Suggestion
- UserInfo
- UserProgressData
- Inputs
- AssessmentMetadataInput
- AssociationInput
- ChapterFilter
- ClozeElementInput
- CourseFilter
- CourseMembershipInput
- CreateAssessmentInput
- CreateAssociationQuestionInput
- CreateChapterInput
- CreateClozeQuestionInput
- CreateContentMetadataInput
- CreateCourseInput
- CreateExactAnswerQuestionInput
- CreateFlashcardInput
- CreateFlashcardSetInput
- CreateMediaContentInput
- CreateMediaRecordInput
- CreateMultipleChoiceQuestionInput
- CreateNumericQuestionInput
- CreateQuizInput
- CreateSectionInput
- CreateSelfAssessmentQuestionInput
- CreateStageInput
- DateTimeFilter
- FlashcardSideInput
- IntFilter
- LogFlashcardLearnedInput
- LogFlashcardSetLearnedInput
- MultipleChoiceAnswerInput
- Pagination
- QuestionCompletedInput
- QuizCompletedInput
- StringFilter
- UpdateAssessmentInput
- UpdateAssociationQuestionInput
- UpdateChapterInput
- UpdateClozeQuestionInput
- UpdateContentMetadataInput
- UpdateCourseInput
- UpdateExactAnswerQuestionInput
- UpdateFlashcardInput
- UpdateMediaContentInput
- UpdateMediaRecordInput
- UpdateMultipleChoiceQuestionInput
- UpdateNumericQuestionInput
- UpdateSelfAssessmentQuestionInput
- UpdateStageInput
- Enums
- Scalars
- Interfaces
- Unions
Field | Argument | Type | Description |
---|---|---|---|
findPublicUserInfos | [PublicUserInfo]! |
Gets the publicly available information for a list of users with the specified IDs. If a user does not exist, null is returned for that user. |
|
ids | [UUID!]! | ||
currentUserInfo | UserInfo! |
Gets the user information of the currently authorized user. |
|
findUserInfos | [UserInfo]! |
Gets all of the users' information for a list of users with the specified IDs. Only available to privileged users. If a user does not exist, null is returned for that user. |
|
ids | [UUID!]! | ||
userCourseRewardScores | RewardScores! |
Get the reward score of the current user for the specified course. 🔒 The user must have access to the course with the given id to access their scores, otherwise an error is thrown. |
|
courseId | UUID! | ||
courseRewardScoresForUser | RewardScores! |
Get the reward score of the specified user for the specified course. 🔒 The user be an admin in the course with the given courseId to perform this action. |
|
courseId | UUID! | ||
userId | UUID! | ||
scoreboard | [ScoreboardItem!]! |
Gets the power scores for each user in the course, ordered by power score descending. 🔒 The user must have access to the course with the given id to access the scoreboard, otherwise an error is thrown. |
|
courseId | UUID! | ||
courses | CoursePayload! |
Get a list of courses. Can be filtered, sorted and paginated. Courses and their basic data can be queried by any user, even if they are not enrolled in the course. |
|
filter | CourseFilter | ||
sortBy | [String!] |
The fields to sort by. Throws an error if no field with the given name exists. |
|
sortDirection | [SortDirection!]! |
The sort direction for each field. If not specified, defaults to ASC. |
|
pagination | Pagination | ||
coursesByIds | [Course!]! |
Returns the courses with the given ids. Courses and their basic data can be queried by any user, even if they are not enrolled in the course. |
|
ids | [UUID!]! | ||
flashcardsByIds | [Flashcard!]! |
Get flashcards by their ids. 🔒 The user must be enrolled in the course the flashcards belong to. Otherwise an error is thrown. |
|
ids | [UUID!]! | ||
findFlashcardSetsByAssessmentIds | [FlashcardSet]! |
Get flashcard sets by their assessment ids. Returns a list of flashcard sets in the same order as the provided ids. Each element is null if the corresponding id is not found. 🔒 The user must be enrolled in the course the flashcard sets belong to. Otherwise for that element null is returned. |
|
assessmentIds | [UUID!]! | ||
dueFlashcardsByCourseId | [Flashcard!]! |
Get flashcards of a course that are due to be reviewed. 🔒 The user must be enrolled in the course the flashcards belong to. Otherwise an error is thrown. |
|
courseId | UUID! | ||
mediaRecordsByIds | [MediaRecord!]! |
Returns the media records with the given IDs. Throws an error if a MediaRecord corresponding to a given ID cannot be found. 🔒 If the mediaRecord is associated with coursed the user must be a member of at least one of the courses. |
|
ids | [UUID!]! | ||
findMediaRecordsByIds | [MediaRecord]! |
Like mediaRecordsByIds() returns the media records with the given IDs, but instead of throwing an error if an ID cannot be found, it instead returns NULL for that media record. 🔒 If the mediaRecord is associated with coursed the user must be a member of at least one of the courses. |
|
ids | [UUID!]! | ||
mediaRecords |
[MediaRecord!]! |
Returns all media records of the system. 🔒 The user must be a super-user, otherwise an exception is thrown.
|
|
userMediaRecords | [MediaRecord!]! |
Returns all media records which the current user created. 🔒 If the mediaRecord is associated with coursed the user must be a member of at least one of the courses. |
|
mediaRecordsByContentIds | [[MediaRecord!]!]! |
Returns the media records associated the given content IDs as a list of lists where each sublist contains the media records associated with the content ID at the same index in the input list 🔒 If the mediaRecord is associated with coursed the user must be a member of at least one of the courses. |
|
contentIds | [UUID!]! | ||
mediaRecordsForCourses | [[MediaRecord!]!]! |
Returns all media records for the given CourseIds 🔒 If the mediaRecord is associated with coursed the user must be a member of at least one of the courses. |
|
courseIds | [UUID!]! | ||
mediaRecordsForUsers | [[MediaRecord!]!]! |
Returns all media records which were created by the users. |
|
userIds | [UUID!]! | ||
contentsByCourseIds | [[Content!]!] |
Retrieves all existing contents for a given course. 🔒 The user must have access to the courses with the given ids to access their contents, otherwise an error is thrown. |
|
courseIds | [UUID!]! | ||
contentsByIds | [Content!]! |
Get contents by ids. Throws an error if any of the ids are not found. 🔒 The user must have access to the courses containing the contents with the given ids to access their contents, otherwise an error is thrown. |
|
ids | [UUID!]! | ||
findContentsByIds | [Content]! |
Get contents by ids. If any of the given ids are not found, the corresponding element in the result list will be null. 🔒 The user must have access to the courses containing the contents with the given ids, otherwise null is returned for the respective contents. |
|
ids | [UUID!]! | ||
contentsByChapterIds | [[Content!]!]! |
Get contents by chapter ids. Returns a list containing sublists, where each sublist contains all contents associated with that chapter 🔒 The user must have access to the courses containing the chapters with the given ids, otherwise an error is thrown. |
|
chapterIds | [UUID!]! | ||
suggestionsByChapterIds | [Suggestion!]! |
|
|
chapterIds | [UUID!]! |
The ids of the chapters for which suggestions should be generated. |
|
amount | Int! |
The amount of suggestions to generate in total. |
|
skillTypes | [SkillType!]! |
Only suggestions for these skill types will be generated. If no skill types are given, suggestions for all skill types will be generated, also containing suggestions for media content (which do not have a skill type). |
|
findQuizzesByAssessmentIds | [Quiz]! |
Get quiz by assessment ID. If any of the assessment IDs are not found, the corresponding quiz will be null. 🔒 The user must be enrolled in the course the quizzes belong to to access them. Otherwise null is returned for an quiz if the user has no access to it. |
|
assessmentIds | [UUID!]! |
Field | Argument | Type | Description |
---|---|---|---|
recalculateScores |
RewardScores! |
|
|
courseId | UUID! | ||
userId | UUID! | ||
recalculateLevels |
SkillLevels! |
ONLY FOR TESTING PURPOSES. DO NOT USE IN FRONTEND. WILL BE REMOVED. Triggers the recalculation of the skill level of the user. This is done automatically at some time in the night. The purpose of this mutation is to allow testing of the skill level score and demonstrate the functionality. 🔒 The user must be a super-user, otherwise an exception is thrown.
|
|
chapterId | UUID! | ||
userId | UUID! | ||
createCourse | Course! |
Creates a new course with the given input and returns the created course. |
|
input | CreateCourseInput! | ||
createChapter | Chapter! |
Creates a new chapter with the given input and returns the created chapter. The course id must be a course id of an existing course. 🔒 The user must be an admin in this course to perform this action. |
|
input | CreateChapterInput! | ||
updateCourse | Course! |
Updates an existing course with the given input and returns the updated course. The course id must be a course id of an existing course. 🔒 The user must be an admin in this course to perform this action. |
|
input | UpdateCourseInput! | ||
updateChapter | Chapter! |
Updates an existing chapter with the given input and returns the updated chapter. The chapter id must be a chapter id of an existing chapter. 🔒 The user must be an admin in this course to perform this action. |
|
input | UpdateChapterInput! | ||
deleteCourse | UUID! |
Deletes an existing course, throws an error if no course with the given id exists. 🔒 The user must be an admin in this course to perform this action. |
|
id | UUID! | ||
deleteChapter | UUID! |
Deletes an existing chapter, throws an error if no chapter with the given id exists. 🔒 The user must be an admin in this course to perform this action. |
|
id | UUID! | ||
joinCourse | CourseMembership! |
Lets the current user join a course as a student. |
|
courseId | UUID! | ||
leaveCourse | CourseMembership! |
Lets the current user leave a course. Returns the membership that was deleted. |
|
courseId | UUID! | ||
createMembership | CourseMembership! |
Adds the specified user to the specified course with the specified role. 🔒 The calling user must be an admin in this course to perform this action. |
|
input | CourseMembershipInput! | ||
updateMembership | CourseMembership! |
Updates a user's membership in a course with the given input. 🔒 The calling user must be an admin in this course to perform this action. |
|
input | CourseMembershipInput! | ||
deleteMembership | CourseMembership! |
Removes the specified user's access to the specified course. 🔒 The calling user must be an admin in this course to perform this action. |
|
input | CourseMembershipInput! | ||
deleteFlashcardSet |
UUID! |
Deletes a flashcard set. Throws an error if the flashcard set does not exist. The contained flashcards are deleted as well.
|
|
input | UUID! | ||
mutateFlashcardSet | FlashcardSetMutation! |
Modify a flashcard set. 🔒 The user must be an admin the course the flashcard set is in to perform this action. |
|
assessmentId | UUID! | ||
logFlashcardLearned | FlashcardLearnedFeedback! |
Logs that a user has learned a flashcard. 🔒 The user must be enrolled in the course the flashcard set is in to perform this action. |
|
input | LogFlashcardLearnedInput! | ||
createMediaRecord | MediaRecord! |
Creates a new media record 🔒 The user must have the "course-creator" role to perform this action. 🔒 If the mediaRecord is associated with courses the user must be an administrator of all courses or a super-user. |
|
input | CreateMediaRecordInput! | ||
updateMediaRecord | MediaRecord! |
Updates an existing media record with the given UUID 🔒 If the mediaRecord is associated with courses the user must be an administrator of at least one of the courses. |
|
input | UpdateMediaRecordInput! | ||
deleteMediaRecord | UUID! |
Deletes the media record with the given UUID 🔒 If the mediaRecord is associated with courses the user must be an administrator of at least one of the courses. |
|
id | UUID! | ||
setLinkedMediaRecordsForContent | [MediaRecord!]! |
For a given MediaContent, sets the linked media records of it to the ones with the given UUIDs. This means that for the content, all already linked media records are removed and replaced by the given ones. 🔒 If the mediaRecord is associated with courses the user must be an administrator of at least one of the courses. |
|
contentId | UUID! | ||
mediaRecordIds | [UUID!]! | ||
logMediaRecordWorkedOn | MediaRecord! |
|
|
mediaRecordId | UUID! | ||
setMediaRecordsForCourse | [MediaRecord!]! |
Add the MediaRecords with the given UUIDS to the Course with the given UUID. 🔒 If the mediaRecord is associated with courses the user must be an administrator of at least one of the courses. |
|
courseId | UUID! | ||
mediaRecordIds | [UUID!]! | ||
mutateContent | ContentMutation! |
Modify Content 🔒 The user must have admin access to the course containing the section to perform this action. |
|
contentId | UUID! | ||
mutateSection | SectionMutation! |
Modify the section with the given id. 🔒 The user must have admin access to the course containing the section to perform this action. |
|
sectionId | UUID! | ||
mutateQuiz | QuizMutation! |
Modify a quiz. 🔒 The user must be an admin the course the quiz is in to perform this action. |
|
assessmentId | UUID! | ||
deleteQuiz |
UUID! |
Delete a quiz.
|
|
assessmentId | UUID! | ||
logQuizCompleted | QuizCompletionFeedback! |
Log that a multiple choice quiz is completed. 🔒 The user must be enrolled in the course the quiz is in to perform this action. |
|
input | QuizCompletedInput! | ||
createMediaContentAndLinkRecords | MediaContent! |
Creates a new media content and links the given media records to it. |
|
contentInput | CreateMediaContentInput! | ||
mediaRecordIds | [UUID!]! | ||
createQuizAssessment | QuizAssessment! |
Creates a new quiz assessment and a new, linked quiz with the given properties. |
|
assessmentInput | CreateAssessmentInput! | ||
quizInput | CreateQuizInput! | ||
createFlashcardSetAssessment | FlashcardSetAssessment |
Creates a new flashcard set assessment and a new, linked flashcard set with the given properties. |
|
assessmentInput | CreateAssessmentInput! | ||
flashcardSetInput | CreateFlashcardSetInput! | ||
createSection | Section! |
Creates a new section in a chapter. |
|
input | CreateSectionInput! |
Field | Argument | Type | Description |
---|---|---|---|
skillPoints | Int! |
Number of skill points a student receives for completing this content |
|
skillTypes | [SkillType!]! |
Type of the assessment |
|
initialLearningInterval | Int |
The initial learning interval for the assessment in days. This is the interval that is applied after the assessment is completed the first time. Following intervals are calculated based on the previous interval and the user's performance. If this is null, the assessment will never be scheduled for review, which is useful for assessments that are not meant to be repeated. |
Association question, i.e., a question where the user has to assign the correct right side to each left side.
Field | Argument | Type | Description |
---|---|---|---|
text | JSON! |
Text to display above the association question, in SlateJS JSON format. |
|
correctAssociations | [SingleAssociation!]! |
List of correct associations. |
|
leftSide | [String!]! |
Computed list of all the left sides of the associations, shuffled. |
|
rightSide | [String!]! |
Computed list of all the right sides of the associations, shuffled. |
|
id | UUID! |
Unique identifier of the question. |
|
number | Int! |
Number of the question, i.e., the position of the question in the list of questions. Only relevant if questionPoolingMode is ORDERED. |
|
type | QuestionType! |
Type of the question. |
|
hint | JSON |
Optional hint for the question, in SlateJS JSON format. |
A chapter is a part of a course.
Field | Argument | Type | Description |
---|---|---|---|
id | UUID! |
UUID of the chapter, generated automatically |
|
title | String! |
Title of the chapter, maximum length is 255 characters. |
|
description | String! |
Description of the chapter, maximum length is 3000 characters. |
|
number | Int! |
Number of the chapter, determines the order of the chapters. |
|
startDate | DateTime! |
Start date of the chapter, ISO 8601 format. |
|
endDate | DateTime! |
End date of the chapter, ISO 8601 format. |
|
suggestedStartDate | DateTime |
Suggested Start date to start the chapter, ISO 8601 format. Must be after Start Date and before the End dates. |
|
suggestedEndDate | DateTime |
Suggested End date of the chapter, ISO 8601 format. Must be after the Start Dates and before the End dates. |
|
course | Course! |
The course the chapter belongs to. |
|
contents | [Content!]! |
Contents of this chapter. |
|
contentsWithNoSection | [Content!]! |
Contents of this chapter which are not in any section. |
|
sections | [Section!]! |
Sections of this chapter. |
|
skillLevels | SkillLevels! |
The skill levels of the current user in this chapter. |
|
achievableSkillTypes | [SkillType]! |
The skill types which are achievable in this chapter. A skill type is achievable if there is at least one assessment in this chapter with this skill type. |
|
userProgress | CompositeProgressInformation! |
The progress of the current user in this chapter. |
Return type of the chapters query, contains a list of chapters and pagination info.
Field | Argument | Type | Description |
---|---|---|---|
elements | [Chapter!]! | ||
pagination | PaginationInfo! |
Field | Argument | Type | Description |
---|---|---|---|
correctAnswer | String! |
The correct answer for the blank. |
|
feedback | JSON |
Feedback for the blank when the user selects a wrong answer, in SlateJS JSON format. |
Field | Argument | Type | Description |
---|---|---|---|
clozeElements | [ClozeElement!]! |
The elements of the cloze question. |
|
additionalWrongAnswers | [String!]! |
Addtional wrong answers for the blanks. |
|
allBlanks | [String!]! |
All selectable answers for the blanks (computed). This contains the correct answers as well as wrong answers. |
|
showBlanksList | Boolean! |
Whether the blanks must be answered in free text or by selecting the correct answer from a list. |
|
id | UUID! |
Unique identifier of the question. |
|
number | Int! |
Number of the question, i.e., the position of the question in the list of questions. Only relevant if questionPoolingMode is ORDERED. |
|
type | QuestionType! |
Type of the question. |
|
hint | JSON |
Optional hint for the question, in SlateJS JSON format. |
Field | Argument | Type | Description |
---|---|---|---|
text | JSON! |
Text of the element, in SlateJS JSON format. |
Field | Argument | Type | Description |
---|---|---|---|
progress | Float! |
percentage of completedContents/totalContents |
|
completedContents | Int! |
absolut number of completed content |
|
totalContents | Int! |
absolut number of total content |
Field | Argument | Type | Description |
---|---|---|---|
name | String! |
Name of the content |
|
type | ContentType! |
Content type |
|
suggestedDate | DateTime! |
Suggested date when the content should be done |
|
rewardPoints | Int! |
Number of reward points a student receives for completing this content |
|
chapterId | UUID! |
ID of the chapter this content is associated with |
|
courseId | UUID! |
ID of the course this content is associated with |
|
tagNames | [String!]! |
TagNames this content is tagged with |
Field | Argument | Type | Description |
---|---|---|---|
contentId | UUID! |
Identifier of Content |
|
updateMediaContent | MediaContent! |
Update an existing Content |
|
input | UpdateMediaContentInput! | ||
updateAssessment | Assessment! |
Update an existing Assessment |
|
input | UpdateAssessmentInput! | ||
deleteContent | UUID! |
Delete an existing Content, throws an error if no Content with the given id exists |
|
addTagToContent | Content! |
Add a tag to an existing content |
|
tagName | String | ||
removeTagFromContent | Content! |
Remove a tag from an existing content |
|
tagName | String |
Field | Argument | Type | Description |
---|---|---|---|
elements | [Content!]! |
the contents |
|
pageInfo | PaginationInfo! |
pagination info |
Courses are the main entity of the application. They are the top level of the hierarchy and contain chapters.
Field | Argument | Type | Description |
---|---|---|---|
id | UUID! |
UUID of the course. Generated automatically when creating a new course. |
|
title | String! |
Title of the course. Maximal length is 255 characters, must not be blank. |
|
description | String! |
Detailed description of the course. Maximal length is 3000 characters. |
|
startDate | DateTime! |
Start date of the course, ISO 8601 format. Users can only access the course and work on course content after the start date. Must be before the end date. |
|
endDate | DateTime! |
End date of the course, ISO 8601 format. Users can no longer access the course and work on course content after the end date. Must be after the start date. |
|
published | Boolean! |
Published state of the course. If the course is published, it is visible to users. |
|
startYear | Int |
The year in which the term starts. |
|
yearDivision | YearDivision |
The division of the academic calendar in which the term takes place. |
|
chapters | ChapterPayload! |
Chapters of the course. Can be filtered and sorted. 🔒 User needs to be enrolled in the course to access this field. |
|
filter | ChapterFilter | ||
sortBy | [String!]! |
The fields to sort by. The default sort order is by chapter number. Throws an error if no field with the given name exists. |
|
sortDirection | [SortDirection!]! |
The sort direction for each field. If not specified, defaults to ASC. |
|
pagination | Pagination | ||
memberships | [CourseMembership!]! |
Course Memberships of this course. Contains information about which users are members of the course and what role they have in it. 🔒 User needs to be at least an admin of the course to access this field. |
|
rewardScores | RewardScores! |
The reward scores of this course for the currently logged in user. |
|
scoreboard | [ScoreboardItem!]! |
The scoreboard containing the power scores of the members of this course. |
|
mediaRecords | [MediaRecord!]! |
The media records which are linked to this course. |
|
suggestions | [Suggestion!]! |
Suggests content of the course which the current user should learn next (both new content and content to repeat). |
|
amount | Int! |
The amount of suggestions to generate in total. |
|
skillTypes | [SkillType!]! |
Only suggestions for these skill types will be generated. If no skill types are given, suggestions for all skill types will be generated, also containing suggestions for media content (which do not have a skill type). |
|
userProgress | CompositeProgressInformation! |
The progress of the current user in this course. |
Represents a course membership object of a user. Each user can be a member of set of courses and some users can also own courses
Field | Argument | Type | Description |
---|---|---|---|
userId | UUID! |
Id of the user. |
|
courseId | UUID! |
Id of the course the user is a member of. |
|
role | UserRoleInCourse! |
The role of the user in the course. |
|
course | Course! |
Course of the Course Membership |
|
user | PublicUserInfo |
The user of this course membership. |
Return type for the course query. Contains the course and the pagination info.
Field | Argument | Type | Description |
---|---|---|---|
elements | [Course!]! | ||
pagination | PaginationInfo! |
A question with a clear, correct answer that can be automatically checked. Differs from self-assessment questions in that the user has to enter one of the correct answers and the answer is checked automatically.
Field | Argument | Type | Description |
---|---|---|---|
text | JSON! |
Text of the question, in SlateJS JSON format. |
|
correctAnswers | [String!]! |
A list of possible correct answers. The user has to enter one of these answers. |
|
caseSensitive | Boolean! |
If the answer is case sensitive. If true, the answer is checked case sensitive. |
|
feedback | JSON |
Feedback for the question when the user enters a wrong answer, in SlateJS JSON format. |
|
id | UUID! |
Unique identifier of the question. |
|
number | Int! |
Number of the question, i.e., the position of the question in the list of questions. Only relevant if questionPoolingMode is ORDERED. |
|
type | QuestionType! |
Type of the question. |
|
hint | JSON |
Optional hint for the question, in SlateJS JSON format. |
A flashcard is a set of two or more sides. Each side has a label and a text. The label is used to specify which side of the flashcard is being shown to the user first for learning and which sides he has to guess.
Field | Argument | Type | Description |
---|---|---|---|
id | UUID! |
Unique identifier of this flashcard. |
|
sides | [FlashcardSide!]! |
List of sides of this flashcard. |
|
userProgressData | FlashcardProgressData! |
Progress data of the flashcard, specific to given users. If userId is not provided, the progress data of the current user is returned. |
Feedback for the logFlashcardLearned mutation.
Field | Argument | Type | Description |
---|---|---|---|
success | Boolean! |
Whether the flashcard was learned correctly. |
|
nextLearnDate | DateTime! |
Next date when the flashcard should be learned again. |
|
flashcardSetProgress | FlashcardSetProgress! |
Progress of the whole flashcard set. |
Field | Argument | Type | Description |
---|---|---|---|
lastLearned | DateTime |
The date the user learned the flashcard. This is null it the user has not learned the content item once. |
|
learningInterval | Int |
The learning interval in days for the content item. |
|
nextLearn | DateTime |
The next time the content should be learned. Calculated using the date the user completed the content item and the learning interval. This is null if the user has not completed the content item once. |
Field | Argument | Type | Description |
---|---|---|---|
id | UUID |
The id of the Log |
|
learnedAt | DateTime! |
The date the user learned the flashcard. |
|
success | Boolean! |
Whether the user knew the flashcard or not. |
A set of flashcards. A flashcard set belongs to exactly one assessment. Therefore, the uuid of the assessment also serves as the identifier of a flashcard set.
Field | Argument | Type | Description |
---|---|---|---|
assessmentId | UUID! |
The uuid of the assessment this flashcard set belongs to. This also serves as the identifier of this flashcard set. |
|
courseId | UUID! |
Id of the course this flashcard set belongs to. |
|
flashcards | [Flashcard!]! |
List of flashcards in this set. |
|
content | Content |
The content this FlashcardSet belongs to. |
A set of flashcards, flashcard related fields are stored in the flashcard service.
Field | Argument | Type | Description |
---|---|---|---|
assessmentMetadata | AssessmentMetadata! |
Assessment metadata |
|
id | UUID! |
ID of the content |
|
metadata | ContentMetadata! |
Metadata of the content |
|
userProgressData | UserProgressData! |
Progress data of the content for the current user. |
|
progressDataForUser | UserProgressData! |
Progress data of the specified user. |
|
userId | UUID! | ||
flashcardSet | FlashcardSet |
The FlashcardSet of the assessment. |
Field | Argument | Type | Description |
---|---|---|---|
assessmentId | UUID! |
ID of the flashcard set that is being modified. |
|
createFlashcard | Flashcard! |
Creates a new flashcard. Throws an error if the flashcard set does not exist. |
|
input | CreateFlashcardInput! | ||
updateFlashcard | Flashcard! |
Updates a flashcard. Throws an error if the flashcard does not exist. |
|
input | UpdateFlashcardInput! | ||
deleteFlashcard | UUID! |
Deletes the flashcard with the specified ID. Throws an error if the flashcard does not exist. |
|
id | UUID! |
Field | Argument | Type | Description |
---|---|---|---|
percentageLearned | Float! |
Percentage of how many flashcards in the set have been learned. |
|
correctness | Float! |
Percentage of how many flashcards have been learned correctly of the ones that have been learned. |
Field | Argument | Type | Description |
---|---|---|---|
text | JSON! |
Text of this flashcard side as rich text in SlateJS json. |
|
label | String! |
Label of this flashcard side. E.g. "Front" or "Back", or "Question" or "Answer". |
|
isQuestion | Boolean! |
Whether this side is a question, i.e. should be shown to the user to guess the other sides or not. |
|
isAnswer | Boolean! |
Whether this side is also an answer. Some Flashcards can have their sides be used as both questions or answers for the other sides |
Field | Argument | Type | Description |
---|---|---|---|
id | UUID! |
ID of the content |
|
metadata | ContentMetadata! |
Metadata of the content |
|
userProgressData | UserProgressData! |
Progress data of the content for the current user. |
|
progressDataForUser | UserProgressData! |
Progress data of the specified user. |
|
userId | UUID! | ||
mediaRecords | [MediaRecord!]! |
The media records linked to this media content. |
schema file of the microservice defines data types, queries and mutations this can be done in a separate files as long as they are in this folder and end with .graphqls
Field | Argument | Type | Description |
---|---|---|---|
id | UUID! |
ID of the media record |
|
courseIds | [UUID!]! |
Ids of the courses this MediaRecord is associated with |
|
name | String! |
Name of the media record |
|
creatorId | UUID! |
User ID of the creator of the media record. |
|
type | MediaType! |
Type of the media record |
|
contentIds | [UUID!]! |
IDs of the MediaContents this media record is associated with |
|
uploadUrl | String! |
Temporary upload url for the media record |
|
downloadUrl | String! |
Temporary download url for the media record |
|
userProgressData | MediaRecordProgressData! |
The progress data of the given user for this medium. |
Field | Argument | Type | Description |
---|---|---|---|
workedOn | Boolean! |
Whether the medium has been worked on by the user. |
|
dateWorkedOn | DateTime |
Date on which the medium was worked on by the user. This is null if the medium has not been worked on by the user. |
Field | Argument | Type | Description |
---|---|---|---|
answerText | JSON! |
Text of the answer, in SlateJS JSON format. |
|
correct | Boolean! |
Whether the answer is correct or not. |
|
feedback | JSON |
Feedback for when the user selects this answer, in SlateJS JSON format. |
Multiple choice question, i.e., a question with multiple answers of which the user has to select the correct ones.
Field | Argument | Type | Description |
---|---|---|---|
text | JSON! |
Text of the question, in SlateJS JSON format. |
|
answers | [MultipleChoiceAnswer!]! |
List of answers. |
|
numberOfCorrectAnswers | Int! |
How many answers the user has to select. This is computed from the list of answers. |
|
id | UUID! |
Unique identifier of the question. |
|
number | Int! |
Number of the question, i.e., the position of the question in the list of questions. Only relevant if questionPoolingMode is ORDERED. |
|
type | QuestionType! |
Type of the question. |
|
hint | JSON |
Optional hint for the question, in SlateJS JSON format. |
Field | Argument | Type | Description |
---|---|---|---|
text | JSON! |
Text of the question, in SlateJS JSON format. |
|
correctAnswer | Float! |
The correct answer to the question. |
|
tolerance | Float! |
The tolerance for the correct answer. The user's answer is correct if it is within the tolerance of the correct answer. |
|
feedback | JSON |
Feedback for the question when the user enters a wrong answer, in SlateJS JSON format. |
|
id | UUID! |
Unique identifier of the question. |
|
number | Int! |
Number of the question, i.e., the position of the question in the list of questions. Only relevant if questionPoolingMode is ORDERED. |
|
type | QuestionType! |
Type of the question. |
|
hint | JSON |
Optional hint for the question, in SlateJS JSON format. |
Return type for information about paginated results.
Field | Argument | Type | Description |
---|---|---|---|
page | Int! |
The current page number. |
|
size | Int! |
The number of elements per page. |
|
totalElements | Int! |
The total number of elements across all pages. |
|
totalPages | Int! |
The total number of pages. |
|
hasNext | Boolean! |
Whether there is a next page. |
Field | Argument | Type | Description |
---|---|---|---|
timestamp | DateTime! |
The date the user completed the content item. |
|
success | Boolean! |
Whether the user completed the content item successfully. |
|
correctness | Float! |
Value between 0 and 1 representing the user's correctness on the content item. Can be null as some contents cannot provide a meaningful correctness value. |
|
hintsUsed | Int! |
How many hints the user used to complete the content item. |
|
timeToComplete | Int |
Time in milliseconds it took the user to complete the content item. Can be null for contents that do not measure completion time. |
Field | Argument | Type | Description |
---|---|---|---|
id | UUID! | ||
userName | String! |
A quiz is a set of questions that the user has to answer correctly to pass the quiz. Questions can be of different types, e.g., multiple choice, clozes, or open questions.
Field | Argument | Type | Description |
---|---|---|---|
assessmentId | UUID! |
Identifier of the quiz, same as the identifier of the assessment. |
|
questionPool | [Question!]! |
List of questions. |
|
requiredCorrectAnswers | Int! |
Threshold of the quiz, i.e., how many questions the user has to answer correctly to pass the quiz. If this number is greater than the number of questions, the behavior is the same as if it was equal to the number of questions. |
|
questionPoolingMode | QuestionPoolingMode! |
Question pooling mode of the quiz. |
|
numberOfRandomlySelectedQuestions | Int |
|
|
selectedQuestions | [Question!]! |
The selected questions of the question pool. This is identical to the list of questions if questionPoolingMode is ORDERED. This will be different each time it is queried if questionPoolingMode is RANDOM. |
|
courseId | UUID! |
Id of the course this quiz belongs to. |
|
content | Content |
The content this quiz belongs to. |
A quiz, quiz related fields are stored in the quiz service.
Field | Argument | Type | Description |
---|---|---|---|
assessmentMetadata | AssessmentMetadata! |
Assessment metadata |
|
id | UUID! |
ID of the content |
|
metadata | ContentMetadata! |
Metadata of the content |
|
userProgressData | UserProgressData! |
Progress data of the content for the current user. |
|
progressDataForUser | UserProgressData! |
Progress data of the specified user. |
|
userId | UUID! | ||
quiz | Quiz |
The quiz of the assessment. If this is null the system is in an inconsistent state and the assessment should be deleted. |
Feedback data when logQuizCompletion
is called.
Field | Argument | Type | Description |
---|---|---|---|
success | Boolean! |
Whether the quiz was passed or not. |
|
correctness | Float! |
The number of questions that were answered correctly. |
|
hintsUsed | Int! |
The number of hints that were used. |
Field | Argument | Type | Description |
---|---|---|---|
assessmentId | UUID! |
Id of the quiz to modify. |
|
addMultipleChoiceQuestion | Quiz! |
Add a multiple choice question to the quiz questions, at the end of the list. |
|
input | CreateMultipleChoiceQuestionInput! | ||
updateMultipleChoiceQuestion | Quiz! |
Update a multiple choice question in the quiz questions. |
|
input | UpdateMultipleChoiceQuestionInput! | ||
addClozeQuestion | Quiz! |
Add a cloze question to the quiz questions, at the end of the list. |
|
input | CreateClozeQuestionInput! | ||
updateClozeQuestion | Quiz! |
Update a cloze question in the quiz questions. |
|
input | UpdateClozeQuestionInput! | ||
addAssociationQuestion | Quiz! |
Add an association question to the quiz questions, at the end of the list. |
|
input | CreateAssociationQuestionInput! | ||
updateAssociationQuestion | Quiz! |
Update an association question in the quiz questions. |
|
input | UpdateAssociationQuestionInput! | ||
addExactAnswerQuestion | Quiz! |
Add an free text question with exact answer to the quiz questions, at the end of the list. |
|
input | CreateExactAnswerQuestionInput! | ||
updateExactAnswerQuestion | Quiz! |
Update an free text question with exact answer in the quiz questions. |
|
input | UpdateExactAnswerQuestionInput! | ||
addNumericQuestion | Quiz! |
Add a numeric question to the quiz questions, at the end of the list. |
|
input | CreateNumericQuestionInput! | ||
updateNumericQuestion | Quiz! |
Update a numeric question in the quiz questions. |
|
input | UpdateNumericQuestionInput! | ||
addSelfAssessmentQuestion | Quiz! |
Add a self assessment question to the quiz questions, at the end of the list. |
|
input | CreateSelfAssessmentQuestionInput! | ||
updateSelfAssessmentQuestion | Quiz! |
Update a self assessment question in the quiz questions. |
|
input | UpdateSelfAssessmentQuestionInput! | ||
removeQuestion | Quiz! |
Removes the question with the given number from the quiz. This will also update the numbers of the following questions. |
|
number | Int! | ||
switchQuestions | Quiz! |
Switch the position of two questions with the given numbers. |
|
firstNumber | Int! | ||
secondNumber | Int! | ||
setRequiredCorrectAnswers | Quiz! |
Set the threshold of the quiz, i.e., how many questions the user has to answer correctly to pass the quiz. |
|
requiredCorrectAnswers | Int! | ||
setQuestionPoolingMode | Quiz! |
Set the question pooling mode of the quiz. |
|
questionPoolingMode | QuestionPoolingMode! | ||
setNumberOfRandomlySelectedQuestions | Quiz! |
Set the number of questions that are randomly selected from the list of questions. Will only be considered if questionPoolingMode is RANDOM. |
|
numberOfRandomlySelectedQuestions | Int! |
An item in the reward score log.
Field | Argument | Type | Description |
---|---|---|---|
date | DateTime! |
The date when the reward score changed. |
|
difference | Int! |
The difference between the previous and the new reward score. |
|
oldValue | Int! |
The old reward score. |
|
newValue | Int! |
The new reward score. |
|
reason | RewardChangeReason! |
The reason why the reward score has changed. |
|
associatedContentIds | [UUID!]! |
The ids of the contents that are associated with the change. |
|
associatedContents | [Content]! |
The reward score of a user.
Field | Argument | Type | Description |
---|---|---|---|
value | Int! |
The absolute value of the reward score. Health and fitness are between 0 and 100. Growth, strength and power can be any non-negative integer. |
|
percentage | Float! |
The relative value of the reward score. Shows how many points relative to the total points have been achieved. Only used for growth currently. |
|
log | [RewardLogItem!]! |
A log of the changes to the reward score, ordered by date descending. |
The five reward scores of a user.
Field | Argument | Type | Description |
---|---|---|---|
health | RewardScore! |
Health represents how up-to-date the user is with the course. |
|
fitness | RewardScore! |
Fitness represents how well the user repeats previously learned content. |
|
growth | RewardScore! |
Growth represents the overall progress of the user. |
|
strength | RewardScore! |
Strength is earned by competing with other users. |
|
power | RewardScore! |
A composite score of all the other scores. |
An item in the scoreboard.
Field | Argument | Type | Description |
---|---|---|---|
userId | UUID! |
The user id of the user. |
|
powerScore | Int! |
The power score of the user. |
|
user | PublicUserInfo |
Representation of a Section
Field | Argument | Type | Description |
---|---|---|---|
id | UUID! |
Unique identifier of the Section Object |
|
courseId | UUID! |
Id of the Course the Section is located in. |
|
name | String! |
Name of the Section |
|
chapterId | UUID! |
Chapter the Section is located in |
|
stages | [Stage!]! |
List of Stages contained in a Section |
|
chapter | Chapter! |
Field | Argument | Type | Description |
---|---|---|---|
sectionId | UUID! |
Identifier of the section |
|
updateSectionName | Section! |
update the name of a Section |
|
name | String! | ||
deleteSection | UUID! |
delete a Section by ID |
|
createStage | Stage! |
create new Stage in Section |
|
input | CreateStageInput | ||
updateStage | Stage! |
Update Content of Stage |
|
input | UpdateStageInput | ||
deleteStage | UUID! |
delete Stage by ID |
|
id | UUID! | ||
updateStageOrder | Section! |
update Order of Stages within a Section |
|
stages | [UUID!]! |
A single question with a free text answer field, where the answer is not automatically checked. The user has to enter a solution and self-assess whether it is correct or not. This is useful for questions where the answer is not clear-cut, e.g. when the user should explain a concept.
Field | Argument | Type | Description |
---|---|---|---|
text | JSON! |
Text of the question, in SlateJS JSON format. |
|
solutionSuggestion | JSON! |
A possible correct answer to the question. |
|
id | UUID! |
Unique identifier of the question. |
|
number | Int! |
Number of the question, i.e., the position of the question in the list of questions. Only relevant if questionPoolingMode is ORDERED. |
|
type | QuestionType! |
Type of the question. |
|
hint | JSON |
Optional hint for the question, in SlateJS JSON format. |
Field | Argument | Type | Description |
---|---|---|---|
left | JSON! |
The left side of the association, in SlateJS JSON format. |
|
right | JSON! |
The right side of the association, in SlateJS JSON format. |
|
feedback | JSON |
Feedback for the association when the user assigns a wrong answer, in SlateJS JSON format. |
The skill level of a user.
Field | Argument | Type | Description |
---|---|---|---|
value | Float! |
The value of the skill level. levels are between 0 and 100. |
|
log | [SkillLevelLogItem!]! |
A log of the changes to the skill level |
An item in the skill level change log.
Field | Argument | Type | Description |
---|---|---|---|
date | DateTime! |
The date when the skill level changed. |
|
difference | Float! |
The difference between the previous and the new skill level. |
|
oldValue | Float! |
The old skill level. |
|
newValue | Float! |
The new skill level. |
|
associatedContentIds | [UUID!]! |
The ids of the contents that are associated with the change. |
|
associatedContents | [Content]! |
The four skill level of a user.
Field | Argument | Type | Description |
---|---|---|---|
remember | SkillLevel! |
remember represents how much user remember the concept |
|
understand | SkillLevel! |
understand represents how well the user understands learned content. |
|
apply | SkillLevel! |
apply represents the how well user applies the learned concept during assessment. |
|
analyze | SkillLevel! |
apply is how much user can evaluate information and draw conclusions |
Representation of a Stage
Field | Argument | Type | Description |
---|---|---|---|
id | UUID! |
Unique identifier of the Stage Object |
|
position | Int! |
Position of the Stage within the Section |
|
requiredContents | [Content!]! |
List of Content that is labeled as required content |
|
requiredContentsProgress | Float! |
Percentage of User Progress made to required Content |
|
optionalContents | [Content!]! |
List of Content that is labeled as optional content |
|
optionalContentsProgress | Float! |
Percentage of Progress made to optional Content |
Represents a suggestion for a user to learn new content or review old content.
Field | Argument | Type | Description |
---|---|---|---|
content | Content! |
The content that is suggested to the user. |
|
type | SuggestionType! |
The type of suggestion. |
Field | Argument | Type | Description |
---|---|---|---|
id | UUID! | ||
userName | String! | ||
firstName | String! | ||
lastName | String! | ||
realmRoles | [GlobalUserRole!]! | ||
courseMemberships | [CourseMembership!]! |
The course memberships of the user. |
|
availableCourseMemberships | [CourseMembership!]! | ||
unavailableCourseMemberships | [CourseMembership!]! | ||
mediaRecords | [MediaRecord!]! |
Media records of this user. |
Represents a user's progress on a content item. See https://gits-enpro.readthedocs.io/en/latest/dev-manuals/gamification/userProgress.html
Field | Argument | Type | Description |
---|---|---|---|
userId | UUID! |
The user's id. |
|
contentId | UUID! |
The id of the content item. |
|
log | [ProgressLogItem]! |
A list of entries each representing the user completing the content item. Sorted by date in descending order. |
|
learningInterval | Int |
The learning interval in days for the content item. If null, the content item is not scheduled for learning. |
|
nextLearnDate | DateTime |
The next time the content should be learned. Calculated using the date the user completed the content item and the learning interval. This is null if the user has not completed the content item once. |
|
lastLearnDate | DateTime |
The last time the content was learned successfully. This is null if the user has not completed the content item once. |
|
isLearned | Boolean! |
True if the user has completed the content item at least once successfully. |
|
isDueForReview | Boolean! |
True if the assessment is due for review. |
Field | Type | Description | |
---|---|---|---|
skillPoints | Int! |
Number of skill points a student receives for completing this content |
|
skillTypes | [SkillType!]! |
Type of the assessment |
|
initialLearningInterval | Int |
The initial learning interval for the assessment in days. This is the interval that is applied after the assessment is completed the first time. Following intervals are calculated based on the previous interval and the user's performance. If this is null, the assessment will never be scheduled for review, which is useful for assessments that are not meant to be repeated. |
Field | Type | Description | |
---|---|---|---|
left | String! |
Text of the left side of the association, in SlateJS JSON format. |
|
right | String! |
Text of the right side of the association, in SlateJS JSON format. |
|
feedback | JSON |
Feedback for the association when the user selects a wrong answer, in SlateJS JSON format. |
Field | Type | Description | |
---|---|---|---|
title | StringFilter | ||
description | StringFilter | ||
number | IntFilter | ||
startDate | DateTimeFilter | ||
endDate | DateTimeFilter | ||
suggestedStartDate | DateTimeFilter | ||
suggestedEndDate | DateTimeFilter | ||
and | [ChapterFilter!] | ||
or | [ChapterFilter!] | ||
not | ChapterFilter |
Field | Type | Description | |
---|---|---|---|
type | ClozeElementType! |
Type of the element. |
|
text | JSON |
Text of the element. Only used for TEXT type. |
|
correctAnswer | String |
The correct answer for the blank. Only used for BLANK type. |
|
feedback | JSON |
Feedback for the blank when the user selects a wrong answer, in SlateJS JSON format. Only used for BLANK type. |
Input type for filtering courses. All fields are optional. If multiple filters are specified, they are combined with AND (except for the or field).
Field | Type | Description | |
---|---|---|---|
title | StringFilter | ||
description | StringFilter | ||
startDate | DateTimeFilter | ||
endDate | DateTimeFilter | ||
published | Boolean | ||
and | [CourseFilter!] | ||
or | [CourseFilter!] | ||
not | CourseFilter |
Represents a course membership input object of a user.
Field | Type | Description | |
---|---|---|---|
userId | UUID! |
Id of the user. |
|
courseId | UUID! |
Id of the course the user is a member of. |
|
role | UserRoleInCourse! |
The role of the user in the course. |
Field | Type | Description | |
---|---|---|---|
metadata | CreateContentMetadataInput! |
Metadata for the new Content |
|
assessmentMetadata | AssessmentMetadataInput! |
Assessment metadata |
Field | Type | Description | |
---|---|---|---|
number | Int |
Number of the question, used for ordering. This can be omitted, in which case a number, one higher than the highest number of the existing questions, will be used. |
|
text | JSON! |
Text of the question, in SlateJS JSON format. |
|
correctAssociations | [AssociationInput!]! |
List of associations. |
|
hint | JSON |
Optional hint for the question, in SlateJS JSON format. |
Input type for creating chapters.
Field | Type | Description | |
---|---|---|---|
title | String! |
Title of the chapter, maximum length is 255 characters, must not be blank. |
|
description | String! |
Description of the chapter, maximum length is 3000 characters. |
|
number | Int! |
Number of the chapter, determines the order of the chapters, must be positive. |
|
startDate | DateTime! |
Start date of the chapter, ISO 8601 format. Must be before the end date. |
|
endDate | DateTime! |
End date of the chapter, ISO 8601 format. Must be after the start date. |
|
suggestedStartDate | DateTime |
Suggested Start date to start the chapter, ISO 8601 format. Must be after Start Date and before the End dates. |
|
suggestedEndDate | DateTime |
Suggested End date of the chapter, ISO 8601 format. Must be after the Start Dates and before the End dates. |
|
courseId | UUID! |
ID of the course the chapter belongs to. Must be a UUID of an existing course. |
Field | Type | Description | |
---|---|---|---|
number | Int |
Number of the question, used for ordering. This can be omitted, in which case a number, one higher than the highest number of the existing questions, will be used. |
|
clozeElements | [ClozeElementInput!]! |
List of cloze elements. |
|
additionalWrongAnswers | [String!]! |
List of additional wrong answers. |
|
showBlanksList | Boolean! |
If true, the list of possible answers will be shown to the user. |
|
hint | JSON |
Optional hint for the question, in SlateJS JSON format. |
Field | Type | Description | |
---|---|---|---|
name | String! |
Name of the content |
|
type | ContentType! |
Type of the content |
|
suggestedDate | DateTime! |
Suggested date when the content should be done |
|
rewardPoints | Int! |
Number of reward points a student receives for completing this content |
|
chapterId | UUID! |
ID of the chapter this content is associated with |
|
tagNames | [String!]! |
TagNames this content is tagged with |
Input type for creating a new course. See also on the course type for detailed field descriptions.
Field | Type | Description | |
---|---|---|---|
title | String! |
Title of the course, max 255 characters, must not be blank. |
|
description | String! |
Description of the course, max 3000 characters. |
|
startDate | DateTime! |
Start date of the course, ISO 8601 format. Must be before the end date. |
|
endDate | DateTime! |
End date of the course, ISO 8601 format. Must be after the start date. |
|
published | Boolean! |
Published status of the course. |
|
startYear | Int |
The year in which the term starts. |
|
yearDivision | YearDivision |
The division of the academic calendar in which the term takes place. |
Field | Type | Description | |
---|---|---|---|
number | Int |
Number of the question, used for ordering. This can be omitted, in which case a number, one higher than the highest number of the existing questions, will be used. |
|
text | JSON! |
Text of the question, in SlateJS JSON format. |
|
caseSensitive | Boolean! |
If the answer is case sensitive. If true, the answer is checked case sensitive. |
|
correctAnswers | [String!]! |
A list of possible correct answers. |
|
feedback | JSON |
Feedback for the question when the user enters a wrong answer, in SlateJS JSON format. |
|
hint | JSON |
Optional hint for the question, in SlateJS JSON format. |
Field | Type | Description | |
---|---|---|---|
sides | [FlashcardSideInput!]! |
List of sides of this flashcard. Must be at least two sides. |
Field | Type | Description | |
---|---|---|---|
flashcards | [CreateFlashcardInput!]! |
List of flashcards in this set. |
Input for creating new media content. Media specific fields are stored in the Media Service.
Field | Type | Description | |
---|---|---|---|
metadata | CreateContentMetadataInput! |
Metadata for the new Content |
Field | Type | Description | |
---|---|---|---|
name | String! |
Name of the media record. Cannot be blank, maximum length 255 characters. |
|
type | MediaType! |
Type of the media record. |
|
contentIds | [UUID!]! |
IDs of the MediaContents this media record is associated with |
Field | Type | Description | |
---|---|---|---|
number | Int |
Number of the question, used for ordering. This can be omitted, in which case a number, one higher than the highest number of the existing questions, will be used. |
|
text | JSON! |
Text of the question, in SlateJS JSON format. |
|
answers | [MultipleChoiceAnswerInput!]! |
List of answers. |
|
hint | JSON |
Optional hint for the question, in SlateJS JSON format. |
Field | Type | Description | |
---|---|---|---|
number | Int |
Number of the question, used for ordering. This can be omitted, in which case a number, one higher than the highest number of the existing questions, will be used. |
|
text | JSON! |
Text of the question, in SlateJS JSON format. |
|
correctAnswer | Float! |
The correct answer for the question. |
|
tolerance | Float! |
The allowed deviation from the correct answer. |
|
feedback | JSON |
Feedback for the question when the user enters a wrong answer, in SlateJS JSON format. |
|
hint | JSON |
Optional hint for the question, in SlateJS JSON format. |
Field | Type | Description | |
---|---|---|---|
requiredCorrectAnswers | Int! |
|
|
questionPoolingMode | QuestionPoolingMode! |
Question pooling mode of the quiz. |
|
numberOfRandomlySelectedQuestions | Int |
|
Field | Type | Description | |
---|---|---|---|
chapterId | UUID! |
Chapter Section will belong to |
|
name | String! |
name given to Section |
Field | Type | Description | |
---|---|---|---|
number | Int |
Number of the question, used for ordering. This can be omitted, in which case a number, one higher than the highest number of the existing questions, will be used. |
|
text | JSON! |
Text of the question, in SlateJS JSON format. |
|
solutionSuggestion | JSON! |
A possible correct answer to the question. |
|
hint | JSON |
Optional hint for the question, in SlateJS JSON format. |
Field | Type | Description | |
---|---|---|---|
requiredContents | [UUID!]! |
updated List of UUIDs for content labeled as required in this Stage |
|
optionalContents | [UUID!]! |
updated List of UUIDs for content labeled as optional in this Stage |
Filter for date values. If multiple filters are specified, they are combined with AND.
Field | Type | Description | |
---|---|---|---|
after | DateTime |
If specified, filters for dates after the specified value. |
|
before | DateTime |
If specified, filters for dates before the specified value. |
Field | Type | Description | |
---|---|---|---|
text | JSON! |
Text of this flashcard side. |
|
label | String! |
Label of this flashcard side. E.g. "Front" or "Back", or "Question" or "Answer". |
|
isQuestion | Boolean! |
Whether this side is a question, i.e. should be shown to the user to guess the other sides or not. |
|
isAnswer | Boolean! |
Whether this side is also an answer. Some Flashcards can have their sides be used as both questions or answers for the other sides |
Filter for integer values. If multiple filters are specified, they are combined with AND.
Field | Type | Description | |
---|---|---|---|
equals | Int |
An integer value to match exactly. |
|
greaterThan | Int |
If specified, filters for values greater than to the specified value. |
|
lessThan | Int |
If specified, filters for values less than to the specified value. |
Field | Type | Description | |
---|---|---|---|
flashcardId | UUID! |
The id of the flashcard that was learned. |
|
successful | Boolean! |
If the user knew the flashcard or not. |
Field | Type | Description | |
---|---|---|---|
flashcardSetId | UUID! |
The id of the flashcard that was learned. |
|
userId | UUID! |
The id of the user that learned the flashcard. |
|
percentageSuccess | Float! |
The percentage of flashcards in the set that the user knew. |
Field | Type | Description | |
---|---|---|---|
answerText | JSON! |
Text of the answer, in SlateJS JSON format. |
|
correct | Boolean! |
Whether the answer is correct or not. |
|
feedback | JSON |
Feedback for when the user selects this answer, in SlateJS JSON format. |
Specifies the page size and page number for paginated results.
Field | Type | Description | |
---|---|---|---|
page | Int! |
The page number, starting at 0. If not specified, the default value is 0. For values greater than 0, the page size must be specified. If this value is larger than the number of pages, an empty page is returned. |
|
size | Int! |
The number of elements per page. |
Field | Type | Description | |
---|---|---|---|
questionId | UUID! |
ID of the question. |
|
correct | Boolean! |
true when question was answered correctly |
|
usedHint | Boolean! |
true when a hint was used for the question |
Field | Type | Description | |
---|---|---|---|
quizId | UUID! |
ID of the quiz. |
|
completedQuestions | [QuestionCompletedInput!]! |
List of questions that were answered in the quiz. |
Filter for string values. If multiple filters are specified, they are combined with AND.
Field | Type | Description | |
---|---|---|---|
equals | String |
A string value to match exactly. |
|
contains | String |
A string value that must be contained in the field that is being filtered. |
|
ignoreCase | Boolean! |
If true, the filter is case-insensitive. |
Field | Type | Description | |
---|---|---|---|
metadata | UpdateContentMetadataInput! |
Metadata for the new Content |
|
assessmentMetadata | AssessmentMetadataInput! |
Assessment metadata |
Field | Type | Description | |
---|---|---|---|
id | UUID! |
UUID of the question to update. |
|
text | JSON! |
Text of the question, in SlateJS JSON format. |
|
correctAssociations | [AssociationInput!]! |
List of associations. |
|
hint | JSON |
Optional hint for the question, in SlateJS JSON format. |
Input type for updating chapters. The ID field specifies which chapter should be updated, all other fields specify the new values.
Field | Type | Description | |
---|---|---|---|
id | UUID! |
UUID of the chapter that should be updated. |
|
title | String! |
Title of the chapter, maximum length is 255 characters, must not be blank. |
|
description | String! |
Description of the chapter, maximum length is 3000 characters. |
|
number | Int! |
Number of the chapter, determines the order of the chapters, must be positive. |
|
startDate | DateTime! |
Start date of the chapter, ISO 8601 format. Must be before the end date. |
|
endDate | DateTime! |
End date of the chapter, ISO 8601 format. Must be after the start date. |
|
suggestedStartDate | DateTime |
Suggested Start date to start the chapter, ISO 8601 format. Must be after Start Date and before the End dates. |
|
suggestedEndDate | DateTime |
Suggested End date of the chapter, ISO 8601 format. Must be after the Start Dates and before the End dates. |
Field | Type | Description | |
---|---|---|---|
id | UUID! |
UUID of the question to update. |
|
clozeElements | [ClozeElementInput!]! |
List of cloze elements. |
|
additionalWrongAnswers | [String!]! |
List of additional wrong answers. |
|
showBlanksList | Boolean! |
If true, the list of possible answers will be shown to the user. |
|
hint | JSON |
Optional hint for the question, in SlateJS JSON format. |
Field | Type | Description | |
---|---|---|---|
name | String! |
Name of the content |
|
suggestedDate | DateTime! |
Date when the content should be done |
|
rewardPoints | Int! |
Number of reward points a student receives for completing this content |
|
chapterId | UUID! |
ID of the chapter this content is associated with |
|
tagNames | [String!]! |
TagNames this content is tagged with |
Input type for updating an existing course. See also on the course type for detailed field descriptions. The id specifies the course that should be updated, the other fields specify the new values.
Field | Type | Description | |
---|---|---|---|
id | UUID! |
UUID of the course that should be updated. Must be an id of an existing course, otherwise an error is returned. |
|
title | String! |
The new title of the course, max 255 characters, must not be blank. |
|
description | String! |
The new description of the course, max 3000 characters. |
|
startDate | DateTime! |
The new start date of the course, ISO 8601 format. |
|
endDate | DateTime! |
The new end date of the course, ISO 8601 format. |
|
published | Boolean! |
The new published status of the course. |
|
startYear | Int |
The year in which the term starts. |
|
yearDivision | YearDivision |
The division of the academic calendar in which the term takes place. |
Field | Type | Description | |
---|---|---|---|
id | UUID! |
UUID of the question to update. |
|
text | JSON! |
Text of the question, in SlateJS JSON format. |
|
correctAnswers | [String!]! |
A list of possible correct answers. |
|
caseSensitive | Boolean! |
If the answer is case sensitive. If true, the answer is checked case sensitive. |
|
feedback | JSON |
Feedback for the question when the user enters a wrong answer, in SlateJS JSON format. |
|
hint | JSON |
Optional hint for the question, in SlateJS JSON format. |
Field | Type | Description | |
---|---|---|---|
id | UUID! |
Id of the flashcard to update. |
|
sides | [FlashcardSideInput!]! |
List of sides of this flashcard. Must be at least two sides. |
Field | Type | Description | |
---|---|---|---|
metadata | UpdateContentMetadataInput! |
Metadata for the new Content |
Field | Type | Description | |
---|---|---|---|
id | UUID! |
ID of the media record which should be updated |
|
name | String! |
New name of the media record. Cannot be blank, maximum length 255 characters. |
|
type | MediaType! |
New type of the media record. |
|
contentIds | [UUID!]! |
IDs of the MediaContents this media record is associated with |
Field | Type | Description | |
---|---|---|---|
id | UUID! |
UUID of the question to update. |
|
text | JSON! |
Text of the question, in SlateJS JSON format. |
|
answers | [MultipleChoiceAnswerInput!]! |
List of answers. |
|
hint | JSON |
Optional hint for the question, in SlateJS JSON format. |
Field | Type | Description | |
---|---|---|---|
id | UUID! |
UUID of the question to update. |
|
text | JSON! |
Text of the question, in SlateJS JSON format. |
|
correctAnswer | Float! |
The correct answer for the question. |
|
tolerance | Float! |
The allowed deviation from the correct answer. |
|
feedback | JSON |
Feedback for the question when the user enters a wrong answer, in SlateJS JSON format. |
|
hint | JSON |
Optional hint for the question, in SlateJS JSON format. |
Field | Type | Description | |
---|---|---|---|
id | UUID! |
UUID of the question to update. |
|
text | JSON! |
Text of the question, in SlateJS JSON format. |
|
solutionSuggestion | JSON! |
A possible correct answer to the question. |
|
hint | JSON |
Optional hint for the question, in SlateJS JSON format. |
Field | Type | Description | |
---|---|---|---|
id | UUID! |
Identifier of the Stage |
|
requiredContents | [UUID!]! |
updated List of UUIDs for content labeled as required in this Stage |
|
optionalContents | [UUID!]! |
updated List of UUIDs for content labeled as optional in this Stage |
Value | Description |
---|---|
TEXT | |
BLANK |
Type of the content
Value | Description |
---|---|
MEDIA | |
FLASHCARDS | |
QUIZ |
Value | Description |
---|---|
SUPER_USER | |
COURSE_CREATOR |
The type of the media record
Value | Description |
---|---|
VIDEO | |
AUDIO | |
IMAGE | |
PRESENTATION | |
DOCUMENT | |
URL |
Value | Description |
---|---|
RANDOM |
Questions are randomly selected from the list of questions. |
ORDERED |
Questions are selected in order from the list of questions. |
The type of a question.
Value | Description |
---|---|
MULTIPLE_CHOICE | |
CLOZE | |
ASSOCIATION | |
EXACT_ANSWER | |
NUMERIC | |
SELF_ASSESSMENT |
The reason why the reward score has changed.
Value | Description |
---|---|
CONTENT_DONE |
The user has completed a content for the first time. The associated contents are the content that were completed. |
CONTENT_REVIEWED |
The user has reviewed a content. The associated contents are the content that were reviewed. |
CONTENT_DUE_FOR_LEARNING |
There exists a content that is due for learning. The associated contents are the content that are due for learning. |
CONTENT_DUE_FOR_REPETITION |
There exists a content that is due for repetition. The associated contents are the content that are due for repetition. |
COMPOSITE_VALUE |
The score changed because the underlying scores changed. Relevant for the power score. |
Type of the assessment
Value | Description |
---|---|
REMEMBER | |
UNDERSTAND | |
APPLY | |
ANALYSE |
Specifies the sort direction, either ascending or descending.
Value | Description |
---|---|
ASC | |
DESC |
Value | Description |
---|---|
NEW_CONTENT | |
REPETITION |
Enum containing all valid roles a user can have in a course.
Value | Description |
---|---|
STUDENT | |
TUTOR | |
ADMINISTRATOR |
The division of the academic year.
Value | Description |
---|---|
FIRST_SEMESTER | |
SECOND_SEMESTER | |
FIRST_TRIMESTER | |
SECOND_TRIMESTER | |
THIRD_TRIMESTER | |
FIRST_QUARTER | |
SECOND_QUARTER | |
THIRD_QUARTER | |
FOURTH_QUARTER |
The Boolean
scalar type represents true
or false
.
An RFC-3339 compliant Full Date Scalar
A slightly refined version of RFC-3339 compliant DateTime Scalar
The Float
scalar type represents signed double-precision fractional values as specified by IEEE 754.
The Int
scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
A JSON scalar
24-hour clock time value string in the format hh:mm:ss
or hh:mm:ss.sss
.
The String
scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
An RFC-3339 compliant Full Time Scalar
A universally unique identifier compliant UUID Scalar
A Url scalar
Field | Argument | Type | Description |
---|---|---|---|
assessmentMetadata | AssessmentMetadata! |
Assessment metadata |
|
id | UUID! |
ID of the content |
|
metadata | ContentMetadata! |
Metadata of the content |
|
userProgressData | UserProgressData! |
Progress data of the content for the current user. |
|
progressDataForUser | UserProgressData! |
Progress data of the specified user. |
|
userId | UUID! |
Field | Argument | Type | Description |
---|---|---|---|
id | UUID! |
ID of the content |
|
metadata | ContentMetadata! |
Metadata of the content |
|
userProgressData | UserProgressData! |
Progress data of the content for the current user. |
|
progressDataForUser | UserProgressData! |
Progress data of the specified user. |
|
userId | UUID! |
Generic question interface.
Field | Argument | Type | Description |
---|---|---|---|
id | UUID! |
Unique identifier of the question. |
|
number | Int! |
Number of the question, i.e., the position of the question in the list of questions. Only relevant if questionPoolingMode is ORDERED. |
|
type | QuestionType! |
Type of the question. |
|
hint | JSON |
Optional hint for the question, in SlateJS JSON format. |
Type | Description |
---|---|
ClozeTextElement | |
ClozeBlankElement |