Discover



Design documentation and brainstorming for Sunbird



Recent updates


Index of pages

Space Index

0-9 ... 3 A ... 23 B ... 7 C ... 57 D ... 67 E ... 30
F ... 10 G ... 5 H ... 7 I ... 19 J ... 0 K ... 10
L ... 17 M ... 17 N ... 7 O ... 14 P ... 23 Q ... 6
R ... 20 S ... 59 T ... 25 U ... 17 V ... 10 W ... 0
X ... 0 Y ... 2 Z ... 0 !@#$ ... 0    

0-9

Page: 2019-02-27 Retrospective
Fill in retro details in the table below. Type /date to quickly add the date and @mention participants to help them find the page. Date Team Anand, Ayub, Kartheek, Anil, Mahesh, Chitranshu, Asha, Vinaya, Participants Background Provide context on the pro
Page: 3.8.0.0 Sprint2 Retrospective - 2021-04-09
Fill in retro details in the table below. Type /date to quickly add the date and @mention participants to help them find the page. Date Team Participants Background Provide context on the project or initiative the team is discussing in this retro Retrospe
Page: 3.9.0.0 Sprint2 Retrospective - 2021-05-06
Fill in retro details in the table below. Type /date to quickly add the date and @mention participants to help them find the page. Date Team Participants Background Provide context on the project or initiative the team is discussing in this retro Retrospe

A

Page: A/B testing available framework evaluation
Overview Jira Ticket: As part of implementation of A/B framework, we have evaluated 4 frameworks' that are available for A/B testing. Planout (by Facebook), Wasabi (by Intuit), Alephbet & sixpack (by seatgeek) We will list down the salient feature and com
Page: A/B Testing framework design
Overview When new usability feature need to be launched or we need to re-vamp/change the current usability dramatically, we cannot go full fledged testing out the idea across the whole audience. To collect the data and feedback on such usability features,
Page: Ability to provide review comments to a content at the page level
Background: Currently, Sunbird supports adding review comments by a content reviewer while rejecting a content. Comments can only be given at the content level. Problem statement: Ability to provide review comments to a content at the page level. Proposed
Page: Access to Sunbird datasets via APIs
Business Requirement Sunbird provides the capability to generate various datasets for reporting purposes. Some of these can be downloaded by users via the UI (the Course progress exhaust, for example), whereas others are used by the Sunbird portal to gene
Page: Access User private data in masked form in search based on roles
Problem Statement Currently when a user is searched, only the basic data is being returned, User's private data is restricted to user only. However User with certain role would like to access user's private data in masked form when searching for other use
Page: Account Recovery workflow in Portal
Overview: Currently, Sunbird uses account recovery flow of Keycloak with minimal customization. Keycloak provides secure account recovery flow, that accepts primary account identifier(Phone or Email) to recovery account. If the user doesn't have access to
Page: Add a course as a resource in the course editor
Background As a content creator, when creating a course I should be able to add another course Solution:- Enabled root node with add child node & add a resource option Config:- "nodeDisplayCriteria": { "contentType": [ "Course", "CourseUnit", "Collection"
Page: Add plugins outward relation with plugins, which has used in the content
Ref: Problem statement: Presently to identify the plugins which are used in the content, we have to parse the complete body object & identify the id of the plugin exist in the plugin-manifest of the content. To do this, we have to run some java/node scr
Page: Adding user to an organisation
Overview : There is a need in sunbird platform to identify user and org based on their external id and provider, instead of identifying them using there ids. Problem statement : Ticket Ref: SC-879 https://project-sunbird.atlassian.net/browse/SC-879 As
Page: Additional Metadata required in Textbook
Overview In view of providing better experience for devices which run on a low configuration and/or low bandwidth, to the offline modes- mobile and desktop apps, the following is decided : 1. Addition of hierarchy.json file inside the ecar, which consists
Page: Adoption of Sunbird DIAL Context
This document explains implementation/adoption of Sunbird DIAL context. Document details about 3 areas. How to extend the Sunbird DIAL Context Vocabulary? Why - Each sunbird adopter wants to update the specific information in the DIAL code context(JSON re
Page: Allow user to specify framework-id while updating framework fields
Overview Currently user is shown the framework fields, associated with root-org channel to which user belongs. As part of the story, we want to allow the user to select the framework, and pass the framework fields accordingly. Changes in existing API For
Page: Allow users to declare their State & District via their profile
Problem statement: As a sunbird user, one should be able to do declare their District (Choose State -> Choose District). Proposed solution 1: Storing the location of the user in separate table & separate API for updating location Pros: Implementation
Page: Announcement Page Route Handling
Background Announcement feature contains pages like Compose,Outbox,Inbox,View Announcement etc. At Present we are handling the child route url changes of announcement with respect to the context of parent page. For example, 1. if user clicks on announceme
Page: API for Metrics Summary
Requirement Ref: Scope is : 1. This will expose one end point to show all metrics summary 2. Internally it will make call to analytics team and merge both static data and data got from analytics team. 3. Since Analytics data will change once in 24 hours,
Page: API throttling
Problem statement To enhance the better use of resources, the system needs API based throttling for self signup where the signup calls can be restricted based on phone number and throttling needs to be time based which translates to something like for a p
Page: API to get user types
Overview As part of user search result enhancements, we will require user to be able to filter based on user-type. For that, we need a way to fetch the available user-types. Approach 1 Create a look-up table within database, and return it from there. Pros
Page: Architecture
Page: Assessment
Irrespective of Assessment feature application gives a feature to create Users and Groups Groups are more than one user added together. Till release 1.7.0 The assessment was available to a user who takes the course or lesson on the last page of the cours
Page: Assessment Report - Total scores of the assessment
Introduction This wiki explains that how to calculate the Total score of assessment. Background Currently total score is dependent on telemetry from the player. Listing the telemetry for each assessment for that content and doing the sum of max score for
Page: Assessment scores in courses and certificates(SB-21228 and SH-1368)
Overview This document explains the assumptions and implementation design to provide assessment score related details and its usage in provide merit(progress + assessment) certificates. This includes changes in existing APIs related to course progress and
Page: Association of badge to course
Problem statement: As a sunbird system, it should have capability to associate/disassociate badge to/from course. Whenever any course batch is created, the batch inherits the associated badge. And the participant of the batch gets the same badge on compl
Page: Auto merge in SSO
Overview: Currently, Any user initiating a first time SSO login using an identifier that already exists in the custodian org - causes an auto migration of the account from custodian to the state tenant it can cause erroneous migration to avoid it user's a

B

Page: Backend API request and response formats
REQUEST: { "request": { "content": { "name": "test event", "code": "1234", "startDate": "01/03/2021", "endDate": "01/03/2021", "startTime": "11:00", "endTime": "13:00",
Page: Background Network Queue Sync Service
Introduction and Problem Statement Intro: This documents describes the proposed design for tackling data sync over http for mobile client. Problem: Mobile client collects, aggregates and persists data that periodically gets sync’ed to the server. This dat
Page: Badge assertion to user upon batch completion
Problem Statement:- Whenever a participant completes a course-batch, active badge associated with the course at the time of completion should be asserted to the user. As a sunbird system, how would we achieve that? Proposed Solution :- We already have bad
Page: Brainstroming font issues
Brainstorming on expected UX and performance issues after more languages comes on board. As more languages will get added to the portal, few anticipated challenges will need to be figured out before they surface - Challenges expected - More languages wil
Page: Bulk Upload - Content
Problem Statement Related Jira Task - Bulk Content Upload is to be supported in Sunbird, with 3 operation modes API to be made available to check the real-time status of the bulk content upload process API to be made available to list the statuses of pro
Page: Bulk Upload Service
Content Upload
Page: BulkUpload Service download results
Overview User can use bulk upload service for various artifacts like User, Organization, Location etc. Currently, user can access the results of upload through upload/status api, where in user gets all the records uploaded in json format. This can be diff

C

Page: Cache Implementation Design
Overview : Cache is an important aspect of an application to improve the api response time. For any heavily used system we need to have a mechanism to cache some of the data , which is not going to change very frequently. As of now Su
Page: Cache resolve in sunbird content plugins.
Introduction: This wiki explains the design and implementation of resolving sunbird-content-plugins cache. Background: Currently, If any fix/feature goes to contributed plugins other than the core plugins, The developers are publishing the plugins without
Page: Caching read API using Redis
Overview Use of caching for sending Response for the API which are most used and have least frequency of update of underlying data. Benefits : It will reduce the load on database and also improve response time. Will able to keep up all the supported API
Page: Capturing Sign-in Type and User Role of users in Pipeline
Overview : Need to add the fields in telemetry User role and Sign In type for further breakdown of "No of Unique Users Count by district" Problem Statement: Stamp user role in telemetry Stamp Sign In type in telemetry Design: Stamping User Role - Approac
Page: Capturing usage of features for analysis
Introduction In this wiki, we will discuss an approach to compute usage of various features across different components. The usage of features can be captured using telemetry events and then subsequently used for analysis of different feature usage. We wi
Page: Cassandra Audit Logging for Different Data Types
The purpose of this document is to test Cassandra Trigger and ecAudit logging with different data types to evaluate their support. Table schema on which we have performed operations. CREATE TABLE practice.trigger_audit_log ( id int PRIMARY KEY, bolbtype b
Page: Cassandra date columns datatype migration from string to timestamp
Overview In cassandra data store used by course progress monitoring, few columns which are having date in string format. This results in date and timestamp mismatches when comparing with timezones. Thus, in order to maintain standards and to address the d
Page: Cassandra horizontal scaling
Overview This document provides the insights of horizontally scaling cassandra cluster with the observations and recommendations from benchmarking different scenarios. Tests and Observations To test the scenarios, a keyspace with replication factor of 3 a
Page: Cassandra migration and cql to respective component repos
Introduction Currently, all the migration scripts for all the services/repos (sunbird-lms-service, group-service, sunbird-notification-service, and sunbird-course-service) are packaged with the cassandra-migration module jar. And all the migration informa
Page: Cassandra trigger
Problem Statement:- How to record any insert/update/delete i.e.(write) operation in cassandra as an event? Proposed Solution 1 Cassandra trigger can be used for this purpose. We need to create trigger on particular table which will write into another tabl
Page: CBSE Question Bank Solicitation Format
Context: In an effort to seed the question and answer data, as a part of the EQB, CBSE is reaching out to its affiliate schools, asking them for data (questions, answers, marking scheme etc...). Following was the schema that was shared by CBSE. Schema Cl
Page: CDN Approach for design system
Problem Statement Currently, each channel ( Portal, Editors, Players, Keycloak, Static site, Help center, etc ) has its own CSS codebase and therefore following challenges occur - To keep design consistency across all the channels, the team has to do chan
Page: Certificate: Attach to a batch
Introduction: This document describes how to issue/assign the certificate to a batch of the specific course. Background: Jira Issues UI designs: https://project-sunbird.atlassian.net/browse/SH-641 https://project-sunbird.atlassian.net/browse/SH-641 Relate
Page: Certificate: Dynamic rules support
Introduction: This document describes how to add/show certificate rules dynamically based on the certificate type Background: Jira Issue https://project-sunbird.atlassian.net/browse/SH-993 https://project-sunbird.atlassian.net/browse/SH-993 Problem Statem
Page: CF R-1.14 Sprint 3
Page: Changes to course progress calculation for videos/youtube and pdf content
Background:- The majority of the support tickets indicate that users have a problem with course progress. They report that they have played the video or viewed the document multiple times but the progress is stuck. Issue link:- https://project-sunbird.atl
Page: Chatbot KT
Session Topic Details 1 Chatbot Repos(Sunbird & partner-private) Deployments 2 Configuration changes - Deployments 3 Chatbot client 4 Chatbot router 5 Rasa Session 1: Topic: Chatbot Repos for backend and client Details: Repository Backend repository https
Page: Chatbot on Sunbird
About This document details the chatbot architecture principles and the functional use cases addressed via chatbot. Use Cases Chatbot on Sunbird is positioned as: a capability which can help users with the discovery of relevant content on the platform vir
Page: CI/CD Processes
Only modified or added branch will be built and updated to the staging and prod instances. To include or remove any of the version - widgets.json file will need to be updated (Not in release 1.9) if removed - the robots.txt file will have to be updated Ea
Page: Collaboration for content creation
Overview: Adding collaborators to the content in sunbird. when added as a collaborator to the content the collaborator will have rights to edit the content. And at a single instance only one person should be able to edit the content. collaborators support
Page: Collection Hierarchy Generalisation
Overview: Collection hierarchy structure should support different type of objects as children. Current Behaviour: A Collection hierarchy supports Content with visibility Default and Collection with visibility as Parent and Default as children. Child Colle
Page: Collection Player Design
Problem statement For the adaptors to experience the collections which are part of knowLG building block there is a need to build a player which will render them, So there is a need to build a collection player which supports all types of collections. Sin
Page: Collections - structure optimization
Introduction: This wiki explains the current structure for collections and the proposed structure changes for optimization and scale. Background & Problem statement: The textbook is realized by Collection node in the Knowledge Platform. The textbook with
Page: Common Reusable Classes
Class Description Margins All Directions m-0 adds margin 0 in all directions m-5 adds margin 5px in all directions m-10 adds margin 10px in all directions m-15 adds margin 15px in all directions m-20 adds margin 20px in all directions Margin Only Top dire
Page: Config Service JS client sdk - Implemenetation design
Existing Solution: The existing implementation of config service integrations in portal are available as helper methods as part of the portal code which is tightly bounded to portal module.So if we want to implement it for content service it requires rewr
Page: Configurable Portal Dashboards Reports Architecture
Introduction This wiki details out the architecture of the configurable reports for portal dashboard and also serves as an implementation guide to configure and set up a report. Overview Currently, the data team generates the data for the weekly reports i
Page: Configuration
Page: Configuration service
Target release 1.10 Epic Document status Document owner Gouri Shanker Bajaj Designer Lead designer Developers Lead developer QA Lead tester Background Managing configurations is an important concern in any solution deployment involving several services. S
Page: Configure profile fields to be editable
Overview As sunbird platform gets deployed by different users, they may have specific requirement around which profile fields they want to allow user to edit, which fields re mandatory, what is display name for fields etc. Currently we have the ability to
Page: Configuring Sunbird Email Notification in Content service
Background: Currently, Sunbird email service is used to send the notification to the user on different actions in review workflow. Sunbird uses same default email templates for all workflow actions such as publish, request changes. Problem statement: Emai
Page: Consuming DeviceRegister API in mobile app
Introduction: This wiki explains how DeviceRegister API will be consumed in mobile app Background: DeviceRegister API is used for capturing the IP address details and the device specifications on both mobile and web platforms. Problem Statement: DeviceRe
Page: Consumption Architecture
Architecture Diagram consumption_architecture_2.png Component Diagram consumption_block_diagram.png
Page: Consumption Metrics
This document details the setup processes required to get consumption metrics report generation scripts installed and running on a Virtual Machine. This document is split in two stage: a one time setup and maintenance tasks. One Time Setup Git Fork the br
Page: Container - Design
Introduction The container for the OpenRAP 2.0 has been developed on top of ext-framework. The additions on top of ext-framework are: SDK's like Global, Settings & Download Manager While the ext-framework has been designed to add plugins within a single a
Page: Content
Page: Content - external store data restructuring
Introduction: This wiki explains the current structure of external store data for content and the proposed changes in the structure to bring consistency. Background & Problem statement: Content-Type Identifier in Neo4J Identifier in Cassandra Version 0 Ve
Page: Content attribution to Organisations
Target release 1.10 Epic Document status Implementation Document owner Shailesh Kochhar Designer subu palamadai Developers Vinaya Kumar B Manzarul Haque Harish Kumar Gangula QA Lead tester Goals Create incentives for multiple organisations to collaborate
Page: Content Copy API specification - For supporting CurriculumCourse
Overview Content Copy API supports two types of copy: 1. Deep Copy and 2. Shallow Copy As per the current requirement Content has to be copied with same TOC but with different contentType. For Supporting this, we are proposing below request structure to s
Page: Content DB Migration
Background: Problem Statement : For existing users, already content DB is created so, categories filed will not be there and we are using content.category1 so, it will throw undefined error Key Design Problem: Update content DB keys BMGS to category1, cat
Page: Content deletion
Background There is a need to provide the option for content delete in the desktop app so that the user can manage the space in his machine and it should be designed such a way that the deletion should be performed in async fashion so that app main threa
Page: Content Discard API specification
Overview Content Retire API retires the Live as well as Draft version of content. It is actually soft delete. The requirement is to discard the edited version of content, but persisting the live version. Content Discard API DELETE - content/v3/discard/{co
Page: Content Meta data filters
At present if want to filter content based on its meta data in sunbird portal,we have set those filters (like mimeType,contentType,createdBy) from portal/client side itself. In certain context content meta data filters should be set outside of client side
Page: Content Player 2.0
Introduction This documents list the design approach which we are taking to rewrite the content player such that For users: Faster load times, great user experience and leaves less memory footprint on the browser. For Developers: parallel development, dec
Page: Content, Itemset and Question Relationship Refactoring
Introduction: Item set should be a collection of questions where questions will have hasSequenceMember relationship with the member questions. Content should have association relationship with Item set. Background & Problem statement: Currently content ha
Page: Content-Player: NPM Package build
Introduction: This document details the content-player npm package build process Background Content-Player is common module/product used to preview/play the content/question in Portal, Mobile, offline desktop, Editors & Question(editors). The build proces
Page: content-player: Telemetry event details for NCERT quiz - PlaySession
Jira Story: Telemetry information to track a play session Instructions A new "play session id" should be created as and when a user starts playing a content. Student/user should able to fill his details before taking the quiz. Instead of introducing new s
Page: Course batch permission design
Overview: Sunbird course batch api is built to manage batches of courses available. There are two type of batch ( Open , invite only). For open batch there is no mentors and is for self enrollment. For invite only batch creator need to add mentors and par
Page: Course Consumption Modalities
Introduction Use-Cases Use Case Description Problem (The problem this use case will solve for the user) User Persona Why (Why users will choose your product to solve their problem, and what differentiates you from alternatives)
Page: Course Dashboards
Course Enrollment Report Background Purpose of this report is to show the course wise enrollment numbers. Users from any tenant can enrol into an open course batch. In this report only include teachers who belong to the same tenant ID as the report viewer
Page: Course Infra - Async Jobs - Implementation Design
Current Design: course-batch-current-design.png Below are the key design problems: Remove ES for user enrolment data and use only Cassandra table. Computation of metrics at Course and CourseUnit Level. Implementation logic to generate AUDIT events. Report
Page: Course Infra - AUDIT Telemetry
Common AUDIT Event Structure: { "eid": , "AUDIT", "ets": , 1592803822, "ver": "3.0", "mid": , "LP.AUDIT.1592803822" "actor": { "id": "<userid>", "type": "User" }, // Context of the event "context": { "channel": "<default_value>", "pdata": { "id": "org.sun
Page: Courses
Page: Courses Infra - Design
Current Design Courses Infra Current.png Following are the key problems with the current design: Writing progress updates and completion percentage to ES is not able to scale to the required needs. ES is not build for massive writes similar to Cassandra.
Page: Courses mentors should be able to administer closed (invite-only) batches across Orgs within a tenant.
Background: Courses mentors should be able to administer closed (invite-only) batches across Orgs within a tenant. Problem Statement: The Content creator organisation should be able to invite the members of the partner organisations to take the course. Pr
Page: Creation of Self Assessment from Workspace
Introduction: This document is an approach not from content framework to solve the creation of self-assessment from the user’s workspace Background: Jira issue: https://project-sunbird.atlassian.net/browse/SB-17128 https://project-sunbird.atlassian.net/br
Page: Credits and attributions
Target release 1.11 Epic Document status Document owner Surendrasingh Sucharia Designer Prajna Hegde Developers Lead developer QA Lead tester Goals Allow a creator to give credit to multiple other people registered or not registered on the system Allow a
Page: CSP Configurations - LERN Details
Objective LERN Building block services can be configured different storage services based on the configurations. Config Service name Config name Data products store in model-config Data-pipeline (flink jobs) cert_cloud_storage_type cert-service CLOUD_STO

D

Page: Dashboard Metrics
API for Metrics Summary Static data - JSON format
Page: Dashboard Table configuration
Problem Statement The admin dashboard type of reports should be dependent on the tenant. In the admin dashboard Table, all fields are in string formate when fetched from the JSON even though their datatype is number or Date. Because of this, the sorting o
Page: Dashlets Design Doc
Title Dashlet Selector <sb-dashlet> Use Case Dashlets are reporting widgets that can be embedded in any contextual workflow - whether on a consumption, creation or administration screen. Any solution that needs to use dashlets can configure the dashlet wi
Page: Dashlets Page-Wise Configuration Design Brainstorm
Title Dashlet Page Wise Configuration. Problem Statement Ability to inject dashlets widgets into any page via configuration. Solution is divided into 3 phases :- Create Configuration for the Dashlets <CREATION> Linking the page id to the Dashlets Configur
Page: Data migration across tenants
Overview As part of the ticket - SB-9803 https://project-sunbird.atlassian.net/browse/SB-9803?oldIssueView=true, we are required to merge user/content of 2 tenants into 1. Earlier the state had created 2 tenants, both have users as well as content. There
Page: Data Persistence while processing events using kafka/ queues.
What is Data Persistence ? Persistent data in the field of data processing denotes information that is infrequently accessed, not likely to be modified and should be not lost before processing valuable information from it. Why we need Kafka Queues for pro
Page: DataScience AMJ Road Map
1. Use Case: Profanity Filter Problem: Detect profanity words and flag such Content. RoadMap: Feasibility Track (effort: one week) review https://github.com/vzhou842/profanity-check existing methods: look-up based and model-based create positive and negat
Page: Deep link support in Android 12 devices
Background: Deep links help us provide a seamless experience between the Sunbird portal and the mobile application. Assuming the application is installed, when a user taps a link from an email client or WhatsApp, we want the Android device to route the re
Page: Default Profile Visibility Configuration
Introduction This wiki explains the background, problem statement and design to make default profile visibility settings configurable in sunbird Background Default profile visibility settings is set for all users at the time of user creation. The fields w
Page: Deletion of inactive user/Org accounts
Overview : There are multiple user accounts created by states that have never been used/ been inactive for extended periods for time. As states move to officially onboard users (SSO, self sign up etc.), there is a need to clean up these legacy accounts.Th
Page: Dependent Filter
Page: Dependent Filter Design
Page: Deployment Steps for Keycloak User Federation
Jira Link : https://project-sunbird.atlassian.net/browse/SC-911 https://project-sunbird.atlassian.net/browse/SC-911 Design Doc : Encrypting data stored within keycloak Note: Take back up of keycloak database. Steps : Checkout https://github.com/project-
Page: Design Document: Notify users on critical actions for trackable collections.
This document will help us to achieve the implementation of the notification feature for any specific activity on groups workflow. Background: As per the ticket https://project-sunbird.atlassian.net/browse/SB-24361 https://project-sunbird.atlassian.net/br
Page: Design - Relational metadata to asset linked to a collection
Introduction: Relational metadata that can be added to the relation between an asset and the folder to which it is linked. These attributes have to be stored as part of the relation between the asset and the folder to which it is linked. Some examples for
Page: Design Brainstorm: Migrating all the content's previewUrl to streamingUrl based on the mimeType
Introduction: Video file of all the content with mimeType:video, is streamed and uploaded into cloud store. The streamed file url is getting updated into streamingUrl field of content metadata. Background & Problem Statement: As part of video streaming im
Page: Design Discussion Template
Introduction: Introduction to this wiki page. The blocks this wiki page contains Background: Explain the background or existing structure/design and implementation for this feature/problem. Problem Statement: Explain the problem for which we are preparing
Page: Design document: Activity dashboard
This document will help us to implement the activity dash board for groups Background As per ticket https://project-sunbird.atlassian.net/browse/SB-24224 https://project-sunbird.atlassian.net/browse/SB-24224 we need to show the activity dashboard to the a
Page: Design for a lightweight healthcheck api in portal and content service.
Problem Statement Currently, the health check API is checking that the dependent service is healthier or not to determine that this service is healthy ex: In the portal, the health check is trying to determine that the following service is up and running.
Page: Design for adding org name for 'my courses'
Problem Statement User in sunbird system can see the courses he is enrolled into however it does not reflect the organisation name in the list. There should be enhancement to enable for showing the org name with the courses. Proposed Solution 1 Currently
Page: Design for automated reports from Druid
Introduction: This document describes the design to generate the data for the portal dashboards from Druid OLAP data store and export the report data to cloud storage. This mainly consists of following modules Configure Report API - This API will be used
Page: Design for course batch stats
Approach 1 Nested participant object in one documents Create an index and add settings curl -X PUT http://localhost:9200/cbatchstats/ -H 'Content-Type: application/json' -H 'Postman-Token: a39bca1e-1412-45f2-bf3a-814109bd31c3' -H 'cache-control: no-cache'
Page: Design for easy way to update content
Problem Statement Currently to update the content implementation team needs to make multiple calls, which makes it a difficult process. Additionally there is no auditing in place to track as content was updated by whom. There should be an easier way to up
Page: Design for getting batch status inside my enroll course.
Overview We need to include Batch Status attribute in response of API to fetch user enrolled courses (/course/v1/user/enrollment/list/{‌{userId}‌}). /course/v1/user/enrollment/list/{‌{userId}‌}?batchDetails=[fields comma separated ]&orgDetails=name,email
Page: Design for One time password (OTP)
sendotp.png Problem statement: As a sunbird system it should have capability to generate and validate generated OTP. As per current requirement OTP can be generated for mobile number or email. Proposed Solution 1: Sunbird will expose a new end-point to
Page: Design for verify OTP
Problem statement: As a sunbird system it should be able to do the verification of generated OTP. Proposed Solution: Sunbird will expose new api to verify OTP. Both Generate OTP and Verify OTP can be a single micro-service. New api structure will be
Page: Design Systems
Page: Design to get list of ongoing and upcoming open batches.
Problem statement : Consumer want to show count of upcoming and ongoing open batches for a course. Since course is stored under learning platform and created batch from course are stored under sunbird-LMS. There are two different system and they don't
Page: Design: Last access time for collection & resources
Overview To organise the any order of tractable collection w.r.t user’s last access date and time on the user enrolment list . We have two solution approach. Referenced ticket: https://project-sunbird.atlassian.net/browse/SB-26283 https://project-sunbird.
Page: Design: Addition information on certificate QR scan
Introduction Currently, upon scanning the QR code on the certificate only the user name, course completed by the users plus the completion date is shown to the user. This needs to be enhanced to show the users' profile information so that it can help admi
Page: Design: Display the page wise comments for content editor
Background The page wise reviewer comments for a resource content should be displayed in the content editor. Key design problems Show the reviewer's comments, name, reviewer's profile icon and date for each stage. 3.png Solution 1: Read all the Comment o
Page: Design: Question and QuestionSet - Lifecycle
Introduction: The sunbird platform enabled the content creators to create questions and select multiple questions and create an assessment content using them. But, there is no lifecycle management and review workflow for question object to enable crowed s
Page: Design: Separation of question-set & collection editor
Introduction This document describes the key design problem statement and design for the separation of the question set and collection editor. Jira LINK: Background Currently, both collection & questionSet editors are using a single code base. All the BB’
Page: Desktop app functional automation testing
Introduction: Desktop App testing should be automated by writing integration tests. The benefits of this are the following: Faster Feedback Accelerated Results Testing Efficiency Improvement Higher Overall Test Coverage Reusability of Automated Tests Ear
Page: Developer's Doc - How to set up and use the portal chatbot client library
This document will help you to how to set up and use a portal chatbot client library. Background: This is built as an Angular library. Where this angular library can be integrated into any Angular application(like sunbird portal). Once we integrate this l
Page: Developer's Doc: How to set-up and use Discussions-UI library
This document will help to set up and use the Discussion-UI library. Background: Discussion-UI library is an angular base library that will help any platform to configure and use a discussion forum. In the Sunbird use case, any of the learning sections ca
Page: Developer's Doc: How to setup and use Discussions-middleware
This document will help the developer ( or third-party vendors ) to set up and use Discussion-middleware. Background: This discussions-middleware works like an API proxy. All the discussions-forum related APIs will go via this proxy. Git Repository: https
Page: Dialcode context
Introduction: This document describes how to get the DIAL code context information. Background: At present, the dial-service is not storing any information/context about the DIAL code linked to what(ex Textbook, Textbook unit, etc). So if we want to get t
Page: DIK-4503: Certificate re-issue script
Steps: Download the below script and csv file. chmod +x ./cert-re-issue.sh Fetch authToken(keycloak token) and bearer key Run the below command. ./cert-re-issue.sh <csvfile.csv> <authToken> <bearerkey>
Home page: Discover
Design documentation and brainstorming for Sunbird Browse by topic Index of pages
Page: Discussion Forum
This document describes about Discussion Forum architecture Background: Problem Statement: Key design problems: How to create an independent widget that will be having end-to-end functionality How to use existing user service/DB instead of creating new us
Page: Discussion Forum context object configuration
Introduction https://project-sunbird.atlassia