Skip to content

Data base structure

Cristian Gonzalez edited this page Jul 8, 2021 · 4 revisions

Data Base structure

Next list are the collections present in the DB:

  • aggregations: This collection stores the users and users' groups which are registered in a course.
  • fs.chunks: Collection that stores files in binary format, where a file is divided into chunks that stored here. This collection corresponds to the GridFS specification.
  • fs.files: Stores the file's metadata. Most of these files correspond to submissions (code submission), however, plagiarism check results are also stored here. This collection corresponds to the GridFS specification.
  • sessions: this stores the data associated to sessions (tokens, username, IP, among others).
  • submissions: this collection stores the submissions's data, as the code submission is stored as file, the input field associates the file; and information related to the submissions such as user, submitted on, result, among others.
  • system.indexes: list all the indexes in the database, see MongoDB system collections.
  • user_tasks: it stores the relation between users and tasks (it is duplicated because of mongoDB scheme). Each entry represents a pair (user, task) and the stored information is: given result, number of submissions the user has made, whether the user has passed or not the task, score, number of tries, etc.
  • user: information related to the user, their name, email, encrypted password, etc.
  • plagiarism_checks: all created plagiarism checks are stored here and the results, the stored data includes: creation date, course, task, language, and results.
  • problem_banks: this stores all courses that are marked as public courses in the problem bank. If a course is here, means its tasks can be copied by other courses.
  • tasks_cache: here is stored some cache from tasks such as name, course, context, author, tags, and others. This is to avoid continuous access to the file system and help, for instance, to the problem bank for searching tasks.
  • analytics: the analytics plugin uses this collection to store the visits to the several services or tools of UNCode. This collection is related to the services collection.
  • services: the analytics documents stored are associated to the data stored here. The allows to add new services to be tracked by the analytics plugins.
  • user_hints: this collection is used by the Task Hints plugin to store all the hints that a user has unlocked in the tasks, their own penalties, and the total penalty which is used to calculate the student's total score.
  • custom_tests: this collection is used for custom tests in notebook tasks. This keeps track of the custom tests running for a given user.
Clone this wiki locally