Functional Configurations supported by Sourcing solution (WIP)
Overview
Sourcing solution of Sunbird provides various configurations that help adopting it for different domains, contexts and use cases. These configuration define and drive functional behavior of various features and flows in the sourcing solution.
This page lists all the configurations that drive functionality supported by Sourcing solution. Each will have a separate page that will provide the details specific to each configuration.
Frameworks
Why?
The purpose of a framework is primarily to organize a set of assets related to a domain for easy discoverability. It is very similar to how books are organized in a library or a book store.
Frameworks can be used for the following purposes:
Discovery of relevant assets by navigating, searching and filtering. For example, when assets are organized using certain topics, users can search and filter on a specific topic to find relevant content.
Apart from asset organization, a framework can also be used to organize audience (users) of the system. For example, “Teachers” can be organized based on Board, Medium, Class and Subject(s) they teach. “Students” can be organized based on Board, Medium, Class they belong to. Such frameworks can be used to target assets to specific set of audience.
Frameworks can also be used to analyze data to get domain specific insights. For example when assets are organized using a K-12 curriculum framework, one can analyze content of which Classes and Subjects is getting utilized most.
What?
What is a framework?
A framework consists of a set of related attributes, also referred as framework categories. Each attribute will have a list of possible values of that attribute. The values can be a flat list or a hierarchy.
For example, a framework to organize assets related to K-12 curriculum can have following attributes:
Board - The educational board - state boards or central boards like CBSE
Medium - List of mediums in which teaching happens in the given board. Example: Hindi, Telugu, English
Class - List of classes in the given board. Example: Preschool 1, Preschool 2, Preschool 3, Class 1, Class 2
Subject - List of subjects taught in a given class in a given medium, in the given board. Example: Mathematics, EVS, English
Topics - List of Topics covered in a given subject in a given class. Example: Number System, Addition
As is seen in the above example, the attributes can have dependencies. For example, the list of Subjects are different for different Classes and list of Topics are different for different Subject, Class combination.
What does a framework definition have?
Name - Label used for display purpose
Id - Unique identifier for system use
Type - This represents the domain type of the framework. It is to identify a set of similar frameworks. For example, “K-12 Curriculum” can be a framework “type” that represents any framework to organize K-12 curriculum assets. Each tenant (like state) can have its own framework of type “K-12 Curriculum” defined. The actual values of Class, Subject etc. can vary tenant to tenant (state to state) and hence each tenant can define its own K-12 Curriculum framework.
Attributes/Framework Categories - These are list of attributes a framework has. It is expected that all frameworks of same “type” have same attributes (but possibly different values). However, the system doesn’t enforce it.
Values of each attribute - These are all the possible values of an attribute. They can be a flat list, like list of Subjects or a hierarchy, like a topics tree - each topic having a list of sub-topics.
Relation between the attributes - The values can be linked for related attributes. For example if Subject is linked to a Class - the values can be specified as - list of subjects for each class. Same subject can be linked to in multiple classes.
What can you do with a framework?
Define different frameworks based on your needs - can be specific to an organization (tenant) or common across (system level)
Tag assets using a framework (currently an asset can be only tagged using one framework, through UI)
Search and discover assets using framework attributes
In Sunbird, any number of frameworks can be defined with required set of attributes and values, based on the needs. Frameworks can be configured at system level or at a tenant level.
However, a tenant cannot have more than one framework configured for a given framework type. Similarly there cannot be more than one framework configured for a given framework type at the system level.
Frameworks are used to tag assets. For example an asset like “Digital Textbook” can be tagged using a “K-12 Curriculum” type of a framework to a specific board, medium, class and subject.
When tagging an asset with a given type of a framework, system fist looks for a type of that framework configured at tenant level. If found, that is always used by default. In case no framework of the given type is found at tenant level, system looks for a framework at system level and uses it.
How?
Object Metadata?
Why?
In Sunbird, any asset is created and managed as an object of a given object type. Object type defines the way an asset is stored, what it contains and how it is rendered. The lifecycle of an asset is also managed through an object. The current set of objects in Sunbird are - Content, Question, Question Set, Collection.
The purpose of object metadata is to provide information about a given object - the information can be used by end users or by the system. While the actual “data” of an asset is directly consumed by end users, the “metadata” provides additional information and context about the asset.
Object metadata is used for:
Providing context and understanding about the object to end users. Example: Name, Description
Defining certain system behavior of an object. Example: “Maximum number of attempts” to a question, “Visibility” of an asset.
Easy discoverability of the asset by end users. Example: Keywords
What?
What is object metadata?
Object metadata is a set of attributes in each asset. Some attributes can be common across all types of objects (like Name, Description etc.), some may be specific to an object type (like “Maximum number of attempts” specific to a question).
What does an object metadata definition have?
What can you do with object metadata?
Define object metadata attributes based on your needs
Populate attribute values to an asset
Search and discover assets using object object metadata attributes
How?
Primary Asset Categories
Why?
What?
How?
Additional Asset Categories
Why?
What?
How?
Notification Templates
Why?
What?
How?