# Features

Question & QuestionSet service is a micro-service which provides APIs to manage the lifecycle and workflows of creation and consumption of Question & QuestionSet Asset.

**Offline Consumption**

The Service enables offline consumption via generation of ECAR files in the packaging stage of the publish lifecycle. Assets can be download from ***downloadUrl***. Two ***variants*** of the ECAR are available for each Asset. i.e. FULL and SPINE. ECAR can be downloaded and extracted in client (mobile and desktop) to play offline.

```
"downloadUrl": "<full ecar url>",
"variants": {
    "full": {
        "ecarUrl": "<full ecar url>",
        "size": "<size in byte>"
    },
    "spine": {
        "ecarUrl": "<spine ecar url>",
        "size": "<size in byte>"
    },
}
```

**Online** **Consumption**

The Service enables online consumption via Question Read and List API's. Question List API provides all required data for multiple Question which player can directly render.

**Auto Review & Publish**

The Service offers QuestionSet Review API, which move all children question to Review stage automatically irrespective of children visibility (Parent/Default), if the creator of both Root QuestionSet and its children is same.

Similarly, the service offers QuestionSet Publish API, which publish its children automatically if children qualifies for auto publish. \
\
**Publish control**

Question & QuestionSet Asset publishing can be done in two ways: Public (status: Live) and Private (status: Unlisted). When the Asset status is ***Live**,* it  is available for consumption publicly. When the Asset status is ***Unlisted**,* it can be accessed only by direct content link (deep link).&#x20;

**Question & QuestionSet Life Cycle**

Below diagram illustrate the status and actions during the life cycle of Question & QuestionSet Asset

![](/files/cB8jtOEAeY7pJJoTFvUY)

For More Information on Question & QuestionSet Life Cycle, Please check [here](/learn/product-and-developer-guide/question-and-question-set-service.md#features)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://inquiry.sunbird.org/learn/product-and-developer-guide/question-and-question-set-service/features.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
