Concepts and Definitions


High level abstraction for prepresenting different content kinds, such as Topic, Video, Audio, Exercise, Document, and can be easily extended to support new content kinds. With multiple ContentNode objects, it supports grouping, arranging them in tree structure, and symmetric and asymmetric relationship between two ContentNode objects.


Model that stores details about a source file such the language, size, format, and location.

ContentDB diagram

  • PK = Primary Key

  • FK = Foreign Key

  • M2M = ManyToManyField


This model is used to establish a filtering system for all ContentNode objects.


Model in each content database that stores the database readable names, description and author for each channel.


This class stores the channel metadata cached/denormed into the default database.