🧒
Sunbird ED
  • Learn
    • Overview for Sunbird ED
    • Functional Capabilities
      • Learning Apps
      • Asset Sourcing
      • Organised Collections
      • Discover Content - Digital & Phygital
      • User Engagement
      • Rich and diverse content
      • Versatile Question Bank
      • Observability
      • Launch Course
      • Verifiable Credentials
      • Multi-Channel Chatbot
      • Targeted Programs
      • Manage Learn
        • Overview
        • What is an entity?
        • What is a Program?
        • What is a Project?
        • What is Observation?
        • What is a Survey?
        • What is Observation as a task inside a Project?
    • Product and Developer's Guide
      • Learning apps
        • Workflows
          • Onboarding of Users
          • Discovery of Content
          • Play content
          • Track progress and Earn credentials
          • Interacting / Collaborating
      • Asset Sourcing
      • Organised Collections
      • Discover Content - Digital & Phygital
      • User Engagement
      • Rich and Diverse Content
      • Versatile Question Bank
      • Observability
      • Launch Courses
      • Verifiable Credentials
      • Multi-Channel Chatbot
      • Targeted Programs
      • Manage Learn
        • Overview
        • Component Diagram
        • ML Core Service
        • ML Project Service
        • ML Survey Service
        • ML Report Service
        • ML Analytics Service
    • Adopters
      • DIKSHA
    • Technical Architecture
      • Design Principles
      • Technical Architecture Diagram
      • Tech Stack
    • Roadmap
  • USE
    • Deployment Diagram
    • Deployment Artifacts
      • 4.10
      • 4.10.1, 4.10.2, 4.10.3, & 5.0
    • Installing ED Platform
      • release-4.10.0
        • Prerequisites for your own Sunbird ED Instance
        • Infra Provisioning
        • Jenkins Setup
        • Ansible Variables
        • Build
        • Post Install Steps
      • release-5.0.0
        • Prerequisites for your own Sunbird ED Instance
        • Infra Provisioning
        • Jenkins Setup
        • Ansible Variables
        • Build
        • Post Install Steps
      • release-5.1.0
        • Prerequisites for your own Sunbird ED Instance
        • Infra Provisioning
        • Jenkins Setup
        • Ansible Variables
        • Build
        • Post Install Steps
      • release-5.2.0
        • Prerequisites for your own Sunbird ED Instance
        • Infra Provisioning
        • Jenkins Setup
        • Ansible Variables
        • Build
        • Post Install Steps
      • release-6.0.0 (Draft)
        • Prerequisites for your own Sunbird ED Instance
        • Infra Provisioning
        • Jenkins Setup
        • Ansible Variables
        • Build
        • Post Install Steps
      • Sunbird ED Portal
      • Sunbird ED Mobile
      • Easy installer (Draft)
    • Updating Sunbird Releases
      • 4.10.1, 4.10.2, 4.10.3, & 5.0
      • 5.0.0 to 5.1.0
      • 5.1.0 to 5.2.0
      • 5.2.0 to 6.0.0 [Draft]
    • Learn More
      • Dependencies
      • Specifications
        • SOFIE
        • SOFIE Implementation
    • Releases
      • Release calendars
        • Release Calendar 4.9, 4.10, 5.0
        • Release calendar 5.0.1, 5.0.2, 5.0.3, 5.1.0 (major), 5.1.1, 5.1.2, 5.1.3 &5.2.0 (major)
        • Release Calendar 6.0.0
        • Release Calendar 7.0.0
      • Planned items
        • 4.9, 4.9.1, & 4.10(major)
        • 4.10.1, 4.10.2, 4.10.3, & 5.0(major)
        • 5.0.1, 5.0.2, 5.0.3 & 5.1 (major)
      • Release notes
        • 6.0.0 (Draft)
        • 5.2.0 (Latest)
          • Release-5.1.2
          • Release-5.1.1
        • 5.1.0
        • 5.0.0
        • 4.9.0, 4.9.1, 4.10.0
        • 4.7.0, 4.8.0
      • Release Artifacts
        • 4.10.1, 4.10.2, 4.10.3, & 5.0
        • 5.0.1, 5.0.2, 5.0.3, & 5.1
      • Demo of released items
    • Telemetry
      • Trackable Collection
    • Minimal forms
    • API's
  • Engage
    • Discuss
  • Contribute
    • Extend / Contribute to Sunbird
    • System Requirements
      • Learning Apps
    • Source Code
      • Architecture - Component Diagram
      • Developer Guide
        • Portal
          • Component Diagram
        • Desktop
          • Component Diagram
        • Mobile
          • Component Diagram
          • sunbird-mobile-sdk
          • Sunbird-mobile-app plugins
          • Configurations to setup mobile app
        • Form service
          • Component Diagram
          • Data model
          • API's
        • Manage Learn
          • ML Core Service
            • Overview
            • User Flow Diagram
            • Component Diagram
            • Data Model
            • Folder Structure
            • API's
            • Deployment Overview
            • Local Service Setup Guide
          • ML Project Service
            • Overview
            • User Flow Diagram
            • Component Diagram
            • Data Model
            • Folder Structure
            • API's
            • Deployment Overview
            • Local Service Setup Guide
          • ML Survey Service
            • Overview
            • User Flow Diagram
            • Component Diagram
            • Data Model
            • Folder Structure
            • API's
            • Deployment Overview
            • Local Service Setup Guide
          • ML Report Service
            • Overview
            • User Flow Diagram
            • Component Diagram
            • Data Model
            • Folder Structure
            • API's
            • Deployment Overview
            • Local Service Setup Guide
          • ML Analytics Service
            • Overview
            • Component Diagram
            • Data Model
            • Setup Guide
              • ENV Variables ( Config.ini)
            • Ingestions
            • Folder Structure
            • Report creation and Updation Scripts
            • Deployment Overview
        • UI (User interface) Sunbird-Ed portal
          • Angular Material
          • Component Style Guide Version 1
            • Accordion
            • Buttons
            • Cards
            • Forms
            • Grid & Layout
            • Labels
            • Modals
            • Pagination
            • Rating
            • Search Box
            • Select Box
            • Tables
            • Tabs
            • Toast messages
            • Tooltip
            • Typography
          • SB-Styles: A Comprehensive Design Resource
          • SB-Themes Repository: Unifying Design Across Platforms
            • Classical Theme in Sunbird-Ed portal
            • Joyful Theme in Sunbird-Ed portal:
      • Reference Apps
      • Platform
    • Install Locally
      • SunbirdED Mobile
      • SunbirdED Portal
    • Configuration
      • SunbirdEd Portal
      • Sunbird Mobile
    • Independent Libraries
      • Common Consumption Components
      • SunbirdEd Forms
      • Sunbird Client Services
      • Sunbird Styles
      • Sunbird Themes
      • Sunbird Tag Manager
    • Issue tracker/ Create Issue
    • Contribute to ED
  • Misc
    • Templates
      • Upgrade Sunbird release document
      • Release Notes
    • Archived
      • High Level Capabilities
      • Workflows
      • Where Sunbird ED helps you
      • ED - Mobile App (going to archive)
        • 4.10.3 to 5.0.0
        • 5.0.0 to 5.1.0
      • Setting up Sunbird ED
      • Developer Documentation
      • API Reference Documentation
      • Detailed Documentation
      • Source Code
      • Actors & Actions
      • Detailed Capabilities
      • Data
      • Terminology
      • 5.1.0-hotfix (OCI )
  • Development Resources
    • Misc Pages
      • Portal - Manage Learn - Reports
      • App - Manage Learn - component diagram
        • Projects
        • Observation & Survey
        • Program
      • Portal - Manage Learn - component diagram
      • Mobile form configurations
      • Content Indexing Flow
      • What are multiple databases used for
      • Course completion, reports and certificate issue
      • How to access Flink UI
      • What are all the flink jobs for
      • How does data flow into Druid
      • Minimal build properties
  • Page 1
Powered by GitBook
On this page
  • GitHub Repository
  • Architecture
  • Sunbird ED Portal
  • Sunbird Portal UI
  • Public
  • Core
  • Shared
  • Manage Learn
  • Additional Info:
  • Front-End Libraries
  • Sunbird Portal API Servcies
  • Code Structure
  • User Session Management - Server.js
  • Routes
  • API Whitelisting: Helpers Folder
  • Role check: Proxy Folder
  • EnvVariablesHelper
  • Dependent Sunbird BB`s
  • Sunbird Building Blocks which are being used in ED Portal

Was this helpful?

Edit on GitHub
  1. Contribute
  2. Source Code
  3. Developer Guide
  4. Portal

Component Diagram

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.

PreviousPortalNextDesktop

Last updated 1 year ago

Was this helpful?

GitHub Repository

Architecture

Sunbird ED Portal

The Sunbird ED portal is divided into two folders

App : Contains the Backend code base which used Node.js framework for server-side.

Client : Contains the Forntend code base which used Angular framework for client-side

Sunbird Portal UI

The key module which is used in Sunbird Portal UI

The main objective of this folder is to provide all the public route (i.e. consumers) in one place which can further be leveraged.

This folder contains routing for the modules which can be accessed by everyone and does not have any auth required Ex: guest user/anonymous user.

The main objective of this folder is to provide a static screen component which is present in every route in one place. which can further be leveraged if needed.

The folder contains those components which are statically positioned though data will be dynamic, we integrate the core components at the app level so that they are present in every route and also provides the routes to different modules such as the header, footer, search, main menu, and language dropdown.

The main objective of this folder is to provide all reusable features in one place which can further be leveraged if needed.

The Folder contains all the reusable components across the portal such as the loader, popup, card,sb-data table, alert popup, slick etc...

Manage Learn contains tools or solutions like Observation, projects, and surveys. These tools are used to help the learners to learn in a structured manner.

Additional Info:

Forms

Front-End Libraries

The Purpose of all the libraries is to make the UI more consistent across all the clients who are using this library.

Library Name
GitHub Repo
Description

Common-Consumption

These components are designed to be used in Sunbird consumption platforms ( web portal, offline desktop app) to drive reusability, maintainability hence reduce the redundant development effort significantly.

SB-Forms

This Library expects a configuration and renders form according to the view.

SB-Dashlet

Library used for Reusable charts. Supported by charts has an extensible, general purpose analytical presentation capabilities like graphs, tables, charts etc..

Client-Services

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.

Quml Player

The library which is responsible for rendering questions and question sets created according to the QuML specification.

Collection-Editors

Library which supports to create all type of collections like Book, Course, PlayList & QuestionSet

Video Player

The Video player library is used to play video/audio content in Sunbird ED

PDF Player

The PDF player library is used to play pdf content on Sunbird ED

Epub Player

The Epub player library is used to play epub content on Sunbird ED

Sunbird Portal API Servcies

It leverages a keyCloakHelper file to handle login and logout functionalities while adopting token-based session storage to manage user sessions effectively.

Additionally, the interface integrates multiple API middleware functions to accomplish tasks such as token verification, API whitelisting, and customizing request headers as needed.

Code Structure

It is used in web development for the server-side entry point of a Node.js application.

It acts as the main starting point of the server, responsible for initializing the server, defining routes, and handling incoming requests from clients.

It handles all the API routes. which are triggering from the client side. such as content/*, content/copy/questionset etc.

it contains the set-up method such as decoraterequestHeader, verifyToken, and isApiwhitelisted which validates whether the API request is valid or not with proper role check and auths token.

Dependent Sunbird BB`s

Lots of front-end Libraries and services we are leveraging from the other building blocks

Sunbird Building Blocks which are being used in ED Portal

includes the client source code for the Angular application. This folder includes various components, modules, services, styles, and other assets necessary to build the front end of the application.

In the portal, lots of UI capabilities are generalised in terms of . to reduce the code dependency by decoupling form logic from the portal code.

(without client) Includes backend API interface which is used Node.js framework.

it is used to store the session based on &

Contains all the js files which are used for user and .

Contains the js file which Handles whitelisting and role checks of Portal API(s).

: it contains the resource bundles for internationalization and localization purposes in the application. it is used for translations and provides a seamless way to display the application's user interface in different languages based on user preferences.

It contains the which is responsible for storing the env variable that is required in the portal from DevOps.

Client Folder
Public
Core
Shared
Manage Learn
formConfig
App Folder
User Session Management - Server.js
Anonymous
Logged in User
Routes
API Whitelisting: Helpers Folder
authentication
authorization
API Whitelist
Role check: Proxy Folder
ResourceBundles
EnvVariablesHelper
envHelperFile
Lern
Obsrv
InQuiry
Knowlg
ED
https://github.com/Sunbird-Ed/SunbirdEd-consumption-ngcomponents#readme
https://github.com/Sunbird-Ed/SunbirdEd-forms
https://github.com/Sunbird-Ed/sb-dashlets
https://github.com/Sunbird-Ed/sunbird-client-services
https://github.com/Sunbird-inQuiry/player/tree/release-6.0.0
https://github.com/Sunbird-Knowlg/sunbird-collection-editor
https://github.com/Sunbird-Knowlg/sunbird-video-player
https://github.com/Sunbird-Knowlg/sunbird-pdf-player
https://github.com/Sunbird-Knowlg/sunbird-epub-player
Sunbird ED Portal Architecture
SUnbird Portal UI Architecture
Frontend libraries
API Layer Architecture
Dependent Sunbird BB`s Architecture
GitHub - Sunbird-Ed/SunbirdEd-portal: Web Portal for sunbird software. Provides the web interfaces for all functionality of Sunbird. Find the installation instructions at: https://ed.sunbird.org/use-1/install-locally/sunbirded-portalGitHub
git
Logo