# Architecture - Component Diagram

## Architecture

Below architecture diagram explains L0 architectural view of Sunbird-ED

<figure><img src="/files/XY6vCp4PRChSRxV4Bagw" alt=""><figcaption></figcaption></figure>

### Learning Apps

These are the client facing applications where users(Admin, Creators & Consumers) can drive some capabilities.

* **Sunbird-Portal UI**\
  The Sunbird portal is the browser-based interface for the Sunbird application stack. It provides a web app through which all functionality of Sunbird can be accessed
* **Sunbird-Mobile-App**\
  The Sunbird Mobile app provides mobility to its feature-rich learning platform. It provides learners with the flexibility to learn anywhere, anytime.
* **Sunbird-Desktop**\
  It is powered by Sunbird-Portal itself. The same code-based being used for offline access of portal application.
* **Sunbird-CoKreat (part of Sunbird-CoKreat building block)**\
  [**https://cokreat.sunbird.org/learn/readme#what-is-sunbird-cokreat**](https://cokreat.sunbird.org/learn/readme#what-is-sunbird-cokreat)

### Front-end Libraries

Please refer the below for more details of front-end libraries.

[Independent Libraries](/older-versions/contribute/independent-libraries.md)

### API Player

* Sunbird-Portal (API service)\
  Sunbird portal is packaged with Client & Server side applications. The server slide application(NodeJS) will get build & deployed independently which will act as proxy service for Sunbird-Portal(UI) application.
* Sunbird-Creation-Portal (API service)\
  Sunbird creation portal is also packaged with Client & Server side applications. The server slide application(NodeJS) will get build & deployed independently which will act as proxy service for Sunbird-Creation-Portal(UI) application.
* Form service

[Form service](/older-versions/contribute/source-code/workflows/form-service.md)

* Contribute(Program) service

{% embed url="<https://cokreat.sunbird.org/contribute/contribution-service>" %}

### Dependant Sunbird BB's

[Dependencies](/older-versions/use/learn-more/dependencies.md)


---

# 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://ed.sunbird.org/older-versions/contribute/source-code/sunbird-ed-architecture.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.
