Skip to content

Backend architecture overview

Cristina Alonso edited this page Mar 12, 2018 · 2 revisions

Work is been carried out on this architecture which may suffer changes.

The architecture has several components related to each other, that can be accessed via the API, that is currently been updated. The components are games, versions, classes, activities, attempts, courses, groups and groupings.

Game

Games can be created by developers and updated or removed only for those who created them. The list of all available games can be obtained by all users.

Fields

  • title
  • created
  • authors
  • link
  • public
  • developers
  • deleted

Version

Games may have different versions. Each version is associated with a game via the gameId field, and can have a link.

Fields

  • gameId
  • trackingCode

Class

Classes can be created, updated and removed (by its authors). Classes are defined for teachers, assistants and students, and are related to a course by the courseId field. Classes may have groups and groupings.

Fields

  • name
  • created
  • courseId
  • groups
  • groupings
  • participants (students, assistants and teachers)

Activity

Activities can be created by the teacher of the class (classId) for a particular game and version (versionId). They can be opened (started) or closed (ended). Teachers can assign activities for classes and students.

  • trackingCode
  • name
  • parent
  • gameId
  • versionId
  • classId
  • allowAnonymous
  • groups
  • groupings
  • created
  • start
  • end
  • open
  • visible

Attempt

Attempts represent gameplays of a particular user given by the userId of a particular activity given by its activityId (therefore, a particular version of a game). Attempts can be started with a trackingCode.

Fields

  • authToken
  • activityId
  • anonymous
  • userId
  • start
  • end

Course

Courses can be created for different assistants and teachers.

Fields

  • title
  • teachers
  • assistants

Group

Groups of students can be created, updated or removed for a particular class given by its classId. Groups can be conformed of students, assistants and teachers.

Fields

  • name
  • classId
  • participants (students, assistants, teachers)

Grouping

Groupings of students can be created, updated or removed for a particular class given by its classId. Groupings are defined by a teacher and some groups.

Fields

  • name
  • classId
  • teachers
  • groups
Clone this wiki locally