Inquiry Component View
Component Diagram
External Components
The external components that inQuiry needs to function (libraries or services)
Name of the component | What does it do? | Why it is needed? |
---|---|---|
Knowlg : ePub Player Unused - To be removed from QuML Editor | NA | inQuiry is not using it, there is a tight dependency from Resource Library This needs to be made as optional dependency in Resource Library as it is planned to be used by Knowlg. Action Item Remove the tight dependency of ePub Player in Resource Library [IQ-413] |
Knowlg : PDF Player Unused - To be removed from QuML Editor | NA | inQuiry is not using it, there is a tight dependency from Resource Library This needs to be made as optional dependency in Resource Library as it is planned to be used by Knowlg. Action Item Remove the tight dependency of PDF Player in Resource Library [IQ-413] |
Knowlg : Video Player Unused - To be removed from QuML Editor | NA | inQuiry is not using it, there is a tight dependency from Resource Library This needs to be made as optional dependency in Resource Library as it is planned to be used by Knowlg. Action Item Remove the tight dependency of Video Player in Resource Library [IQ-413] |
Knowlg : Knowlg Services (API) | These services are used for:
| inQuiry service provides the functionality of managing questions and questions sets. However the creation of question and question sets require additional services that are provided by Knowlg Services. |
Knowlg : Graph Engine (aka Ontology Engine) This can be replaced as Knowlg Core (has : platform-core, ontology-engine, platform-modules) | Graph-engine acts as an interface between databases and service module. It encapsulates all the calls to the underling data stores (Neo4J, Cassandra, Redis, etc). | This is available as library for consumption and code need not be repeated in modules that needs to access the underlying data store. The Knowledge Platform uses the Graph engine to communicate with Neo4j. The Graph engine expects schema definitions for each object type. It validates the data object with the object definition during various CRUD operations. |
Knowlg : Platform Telemetry (platform-telemetry) | This is used by the inQuiry API services to send the telemetry events to Obsrv service which stores all the event data. | Telemetry events data provides insights on how the system is being used. |
ED : Client Services | Typescript Library used to create API calls with Sunbird Environment. Includes necessary typescript code to do search, content read, corresponding data models of the platform are available. | In order to facilitate Adopters to connect with Sunbird System. Typescript based library to connect with APIs. It can facilitate the adopters with readily available data models. inQuiry is using this client services only for making the telemetry API calls. This is reused across different building blocks. Helps with wrapper services which otherwise will have to be written by different parties. |
Telemetry : Telemetry SDK This is a dependency for Sunbird : Client Services | An open specification for recording and measuring statistical data from real-world use of digital apps & platforms. Details here | The objective of telemetry is to assist in product, application or service development, modification or security. It works as a framework. Telemetry enables automatic collection of data from real-world, real-time use. Details here |
ED: SB-Styles | Core Styling of Sunbird Products are present in this repository. CSS implementation for containers, grids. | Consists of Basic Styles which are commonly used across Consumption Clients. |
Obsrv : Services | Sunbird Obsrv is a combination of various tools which provide the capabilities such as streaming, processing and storage of telemetry data and deriving reporting insights from the data. | Sunbird Obsrv comprises several pluggable tools and microservies that come together to enable observability features on any platform/solution. No direct API calls from front-end clients or inQuiry micro service. The telemetry service is passing the telemetry events to Obsrv through a series of data-pipelines. |
Knowlg : Platform DB Extensions | Synch Neo4J data to Elastic Search https://github.com/Sunbird-Knowlg/knowledge-platform-db-extensions | The data that is stored in Graph DB (Neo4J) needs to be made available in ElasticSearch for search functionalities. High Level flow goes like,
|
Internal Components
Name of the component | What does it do? | Tech Stack | Why it is needed? |
---|---|---|---|
inQuiry : QuML Editor | Question set editor is a tool offered by inQuiry to help you kickstart your creation of Question Banks | Angular / HTML5 / CSS | This is used for creating the question banks. Editor is available as Angular Library and Web Component. Web component for the usage in an framework agnostic fashion. Benefits of using Angular,
|
inQuiry : QuML Player | Question set player is a player provided by inQuiry to create engaging & inclusive experiences for end users consuming the question sets. | Angular / HTML5 / CSS | This is used for playing the questions from question banks Web component for the usage in an framework agnostic fashion. Benefits of using Angular,
|
inQuiry : Resource Library | Provides reusable UI and functionality for,
| Angular / HTML5 / CSS | Reusable library for,
Action Item |
inQuiry : inQuiry Services (API) | Question and Question set service is a micro-service which provides APIs to manage the lifecycle and workflows of creation and consumption of question & question set objects. | Play Framework Scala | It enables the question(s) and question set(s) creation, review and publishing process. The existing monolith (Spring MVC) was migrated to micro services using Play Framework with the benefits of,
|
inQuiry : QuML Specification | Question Markup Language (QuML in short) is a specification for storage, rendering and distribution of Questions and Tests | JSON | QuML defines a standard format for representation of questions, tests and their results, supporting the exchange of this material between authoring and delivery systems, repositories and other e-learning systems. |