Giter Club home page Giter Club logo

sunbirded-portal's Introduction

sunbird-portal

Circle CI - master branch Circle CI Badge Quality Gate Status Coverage Lines of Code Maintainability Rating


What is Sunbird?

Sunbird is a next-generation scalable open-source learning solution for teachers and tutors. Built for the 21st century with state-of-the-art technology, Sunbird runs natively in cloud/mobile environments. The open-source governance of Sunbird allows a massive community of nation-builders to co-create and extend the solution in novel ways.

What is the project mission?

Project Sunbird has a mission to improve learning outcomes for 200 million children across India. This is a multi-dimensional problem unique to the multi-lingual offline population of India (and other developing countries). It's not a problem of any single organization or stakeholder and it cannot be realistically addressed by individual effort.

Project Sunbird is an open, iterative and collaborative approach to bring together the best minds in pursuit of this audacious goal.

What is the Sunbird portal?

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.

Getting started

To get started with the Sunbird portal, please try out our cloud-based demo site at: https://staging.open-sunbird.org/

Local Installation

You can also install the Sunbird portal locally on your laptop, please follow the instructions below: Have node version 10 and follow the next steps

Pre Installation Steps

Prerequisities

1. Node > 18x
2. Angular 1x
3. Yarn

Sunbird dev has 2 parts

	1. Angular client
	2. Node server

Go to src/app/helpers/ replace environmentVariablesHelper.js

Installing and running Angular client

Step 1: Go to src/app/client folder

yarn install
npm run start
# For Developer's local setup Run below command
./local_setup.sh
ng build --watch=true

Installing and running Node server

Step 2: Go to src/app folder

yarn install
npm run server

Reporting Issues

We have an open and active issue tracker. Please report any issues.


Installing Sunbird Portal

Installing Sunbird requires two primary software components:

  • Sunbird portal or web application
  • Sunbird services stack or the backend API interface

Table of contents


Prerequisites

System Requirements
Operating System Windows 7 and above/4.2 Mac OS X 10.0 and above/Linux
RAM > 16 Gb (Minimum 8Gb)
CPU 2 cores, > 2 GHz
Software dependencies
Node > 16.19.x (Install the latest release of LTS version)
Angular CLI > 14.x.x (Install the latest Angular CLI version)
yarn Latest version of yarn: npm install --global yarn
nodemon Latest version of nodemon: npm install -g nodemon

Project Setup

  1. Clone project

    git clone https://github.com/Sunbird-Ed/SunbirdEd-portal.git

    Note: Stable versions of the sunbird portal are available via tags for each release, and the master branch contains latest stable release. For latest stable release refer

  2. Install required dependencies

    1. Sunbird portal or web application

      1. $ cd {PROJECT-FOLDER}/src/app/client
      2. $ yarn install
    2. Sunbird services stack or the backend API interface

      1. $ cd {PROJECT-FOLDER}/src/app
      2. $ yarn install
  3. Configuring the Environment and Services Stack

    Configure the following system environment variables in the terminal which you have opened

       | Environment Variable      |  Value  | Data Type |
       | :------------------------ | ------- | --------- |
       |  sunbird_environment      | local   |   string  |
       |  sunbird_instance         | sunbird |   string  |
       |  sunbird_default_channel  | sunbird |   string  |
       |  sunbird_default_tenant   | sunbird |   string  |
    

    The initialization of these environmental variables can take place in a common place like in your .bashrc or .bash_profile

  4. Edit the Application Configuration

    To configure your application for local development, rename the file example.env in /src/app folder to .env and enter the values of the following environment variables

       |       Environment Variable              |                   Description                                       |
       | :-------------------------------------- |---------------------------------------------------------------------|
       |  sunbird_default_token                  |   To set the Default Mandatory Token for Anonymous and Logged User  |
       |  cloud_private_storage_secret           |   To set the Cloud Account Key                                      |
       |  cloud_private_storage_accountname      |   To set the Cloud Private Storage Account Name                     |
       |  sunbird_cloud_storage_provider         |   To set the Cloud Storage Provider                                 |
       |  sb_domain                              |   To set the Environment of the Application                         |
    

    For further environment variable reference refer to this confluence wiki link: https://project-sunbird.atlassian.net/wiki/spaces/SP/pages/3353378817/Portal+-+Min+environment+variables

    Once the file is updated with appropriate values, then you can proceed with running the application

Running Application

  1. Sunbird portal or web application

    1. Run the following command in the {PROJECT-FOLDER}/src/app/client folder
    2. $ ng build --watch=true
    3. Wait for the build process to complete before proceeding to the next step
  2. Sunbird services stack or the backend API interface

    1. Run the following command in the {PROJECT-FOLDER}/src/app folder
    2. $ npm run local-server
  3. The local HTTP server is launched at http://localhost:3000

Project Structure

.
├── Sunbirded-portal
|   ├── /.circleci                           #
│   |   └── config.yml                       # Circleci Configuration file
|   ├── /src/app                             # Sunbird portal or web application
│   |   ├── /client                          # -|-
│   |   |    └── src                         # -|-
│   |   ├── /helpers                         # Helpers and Service file
│   |   ├── /libs                            # Sunbird utilities
│   |   ├── /proxy                           # Redirection to respective services
│   |   ├── /resourcebundles                 # Language resources
│   |   ├── /routes                          # Sunbird Backend Routes
│   |   ├── /sunbird-plugins                 # Sunbird plugins for editors
│   |   ├── /tests                           # Test case scripts for helpers and routes
│   |   ├── framework.config.js              # Default framework configuration
│   |   ├── gulp-tenant.js                   # -|-
│   |   ├── gulpfile.js                      # Gulp build configuration
│   |   ├── package.json                     # Contains Node packages as specified as dependencies in package.json
│   |   └── server.js                        # Main application program file / entry file for Sunbird services stack or the backend API interface
└───└── .gitignore                           # git configuration to ignore some files and folder

Testing

  1. Sunbird portal or web application

     1. $ cd {PROJECT-FOLDER}/src/app/client
     2. $ npm run test
     3. With Coverage $ npm run test-coverage
    
  2. Sunbird services stack or the backend API interface

     1. $ cd {PROJECT-FOLDER}/src/app
     2. $ npm run backend-test
     3. With Coverage $ npm run backend-test-with-coverage
    

Dependencies list

Portal - Frontend
Plugin Name Plugin Repository npm version NG Version
@project-sunbird/chatbot-client https://github.com/project-sunbird/sunbird-bot-client 4.0.0 NG 13
@project-sunbird/common-consumption https://github.com/Sunbird-Ed/SunbirdEd-consumption-ngcomponents 6.0.0 NG 13
@project-sunbird/common-form-elements-full https://github.com/Sunbird-Ed/SunbirdEd-forms 6.0.0 NG 14
@project-sunbird/sb-content-section https://github.com/Sunbird-Ed/sb-content-module 6.0.0 NG 13
@project-sunbird/sb-notification https://github.com/Sunbird-Ed/sb-notification 6.0.0 NG 14
@shikshalokam/sl-questionnaire https://github.com/shikshalokam/sl-questionnaire-components 2.3.0 NG 12
@shikshalokam/sl-reports-library https://github.com/shikshalokam/sl-reports-library 3.0.1 NG 14

sunbirded-portal's People

Contributors

amantarento avatar anoophm avatar aprajita5 avatar archanakumari01 avatar artisingh23 avatar deveshmantra avatar gouravmore avatar gsbajaj72 avatar itsvick avatar jyotisharma24 avatar loganathan1989 avatar manjudr avatar manojvv avatar nik720 avatar niteshkesarkar avatar pallakartheekreddy avatar poonamsharma3 avatar pradoshkumar avatar prajwal88 avatar rajeevsathish avatar rajeshkumaravel avatar santoshilimi avatar souravdey091 avatar sri-pusuluri avatar vaibhavbhuva avatar vaishnavimanjunath avatar venkatkadiveti avatar vinodkumar45 avatar vinukumar-vs avatar yravinderkumar33 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sunbirded-portal's Issues

Optimal screen resolution

Application should be responsive or clearly define the min screen requirements and block user login in case min requirements are not met.

Need standalone Player Code

Since there is no comments in the code, and there is no independent document for the portal app, If you can help with the finding the player code, which as discussed should be independent and self sufficient.

Since I am exploring, it would be much helpful, if we can have a demo page, which just demonstrates the player, with some hard-coded .ekar file input.

I also tried to explore the mobile source code, as it also uses the web-view of android to load the content, but the entire js file was a bundle, and I was not able to extract the player code.

From my exploration till now, My understanding of player is that there is some bare-bone structure of player code, which downloads the renderer as well along with any other plugin file required.

Since I am planning to modify some of the features of the player, like menu etc. It would be of much help, if I can have access to some of the documentation of flow of data and function in the player.

Console Errors for player. Continuous log of errors approx 3 error logs per second

Whenever the player content is being played, a continuous logging of errors are being done at a rate of approx 3 logs per second. The logging stops when we pause the player.

The source of error is :
https://staging.open-sunbird.org/content/preview/scripts/renderer.script.min.js?ver=408

Uncaught TypeError: Cannot read property 'contentId' of undefined
    at content_renderer.org.ekstep.contentrenderer.initializePreview (renderer.script.min.js?ver=408:3408)
    at postMessageHandler (renderer.script.min.js?ver=408:421)

player-error

SMTP settings

Portal / Org admin should be able to add / update SMTP settings within Administration section.

Error while creating a new batch. #Bodhi

@pranvendra commented on Fri Dec 15 2017

Hi,

I am running instance on Sunbird on my server for the project bodhi. When I try to create new batch for a course, it is not getting reflected on the portal but the entry is visible in Cassandra and ElasticSearch. Below is the error I am getting in the log file of docker. I think this is something to do with my elasticsearch mapping.

{
  "eid": "BE_LOG",
  "ets": 1513330173343,
  "mid": "Sunbird.1513330173343.1055446e-b00d-47bd-acc7-4b940289fa1e",
  "ver": "1.0",
  "context": {
    "pdata": {
      "ver": "1.0",
      "id": "Sunbird"
    }
  },
  "edata": {
    "eks": {
      "stacktrace": "akka.pattern.AskTimeoutException: Ask timed out on [Actor[akka://RemoteMiddlewareSystem/user/RequestRouterActor/searchHandlerActor#1748256267]] after [30000 ms]. Sender[null] sent message of type \"org.sunbird.common.request.Request\".\n\tat akka.pattern.PromiseActorRef$$anonfun$1.apply$mcV$sp(AskSupport.scala:601)\n\tat akka.actor.Scheduler$$anon$4.run(Scheduler.scala:140)\n\tat scala.concurrent.Future$InternalCallbackExecutor$.unbatchedExecute(Future.scala:601)\n\tat scala.concurrent.BatchingExecutor$class.execute(BatchingExecutor.scala:109)\n\tat scala.concurrent.Future$InternalCallbackExecutor$.execute(Future.scala:599)\n\tat akka.actor.LightArrayRevolverScheduler$TaskHolder.executeTask(LightArrayRevolverScheduler.scala:328)\n\tat akka.actor.LightArrayRevolverScheduler$$anon$4.executeBucket$1(LightArrayRevolverScheduler.scala:279)\n\tat akka.actor.LightArrayRevolverScheduler$$anon$4.nextTick(LightArrayRevolverScheduler.scala:283)\n\tat akka.actor.LightArrayRevolverScheduler$$anon$4.run(LightArrayRevolverScheduler.scala:235)\n\tat java.lang.Thread.run(Thread.java:748)\n",
      "level": "ERROR",
      "message": "Ask timed out on [Actor[akka://RemoteMiddlewareSystem/user/RequestRouterActor/searchHandlerActor#1748256267]] after [30000 ms]. Sender[null] sent message of type \"org.sunbird.common.request.Request\"."
    }
  }
}
{
   "eid": "BE_LOG",
   "ets": 1513330143333,
   "mid": "Sunbird.1513330143333.6155cf15-3d25-4e32-8c6f-991d35fb0e74",
   "ver": "1.0",
   "context": {
      "pdata": {
         "ver": "1.0",
         "id": "Sunbird"
      }
   },
   "edata": {
      "eks": {
         "level": "DEBUG",
         "msgId": "80429a23-74ec-49a0-b99d-daef4d3f622b",
         "message": "calling search builder======{\n  \"from\" : 0,\n  \"size\" : 250,\n  \"query\" : {\n    \"bool\" : {\n      \"must\" : [\n        {\n          \"term\" : {\n            \"courseId.raw\" : {\n              \"value\" : \"do_2123943834389299201318\",\n              \"boost\" : 1.0\n            }\n          }\n        },\n        {\n          \"term\" : {\n            \"status.raw\" : {\n              \"value\" : \"1\",\n              \"boost\" : 1.0\n            }\n          }\n        },\n        {\n          \"term\" : {\n            \"createdBy.raw\" : {\n              \"value\" : \"b32fb1b6-e579-4406-881b-79b09609a1e5\",\n              \"boost\" : 1.0\n            }\n          }\n        }\n      ],\n      \"disable_coord\" : false,\n      \"adjust_pure_negative\" : true,\n      \"boost\" : 1.0\n    }\n  },\n  \"_source\" : {\n    \"includes\" : [ ],\n    \"excludes\" : [ ]\n  },\n  \"sort\" : [\n    {\n      \"createdDate.raw\" : {\n        \"order\" : \"desc\"\n      }\n    }\n  ]\n}"
      }
   }
}

@kochhar commented on Sat Dec 16 2017

Could you please give the steps to reproduce this error?

On 15-Dec-2017 5:56 pm, "pranvendra" [email protected] wrote:

Hi,

I am running instance on Sunbird on my server for the project bodhi. When
I try to create new batch for a course, it is not getting reflected on the
portal but the entry is visible in Cassandra and ElasticSearch. Below is
the error I am getting in the log file of docker. I think this is something
to do with my elasticsearch mapping.

{
"eid": "BE_LOG",
"ets": 1513330173343,
"mid": "Sunbird.1513330173343.1055446e-b00d-47bd-acc7-4b940289fa1e",
"ver": "1.0",
"context": {
"pdata": {
"ver": "1.0",
"id": "Sunbird"
}
},
"edata": {
"eks": {
"stacktrace": "akka.pattern.AskTimeoutException: Ask timed out on [Actor[akka://RemoteMiddlewareSystem/user/RequestRouterActor/searchHandlerActor#1748256267]] after [30000 ms]. Sender[null] sent message of type "org.sunbird.common.request.Request".\n\tat akka.pattern.PromiseActorRef$$anonfun$1.apply$mcV$sp(AskSupport.scala:601)\n\tat akka.actor.Scheduler$$anon$4.run(Scheduler.scala:140)\n\tat scala.concurrent.Future$InternalCallbackExecutor$.unbatchedExecute(Future.scala:601)\n\tat scala.concurrent.BatchingExecutor$class.execute(BatchingExecutor.scala:109)\n\tat scala.concurrent.Future$InternalCallbackExecutor$.execute(Future.scala:599)\n\tat akka.actor.LightArrayRevolverScheduler$TaskHolder.executeTask(LightArrayRevolverScheduler.scala:328)\n\tat akka.actor.LightArrayRevolverScheduler$$anon$4.executeBucket$1(LightArrayRevolverScheduler.scala:279)\n\tat akka.actor.LightArrayRevolverScheduler$$anon$4.nextTick(LightArrayRevolverScheduler.scala:283)\n\tat akka.actor.LightArrayRevolverScheduler$$anon$4.run(LightArrayRevolverScheduler.scala:235)\n\tat java.lang.Thread.run(Thread.java:748)\n",
"level": "ERROR",
"message": "Ask timed out on [Actor[akka://RemoteMiddlewareSystem/user/RequestRouterActor/searchHandlerActor#1748256267]] after [30000 ms]. Sender[null] sent message of type "org.sunbird.common.request.Request"."
}
}
}

{
"eid": "BE_LOG",
"ets": 1513330143333,
"mid": "Sunbird.1513330143333.6155cf15-3d25-4e32-8c6f-991d35fb0e74",
"ver": "1.0",
"context": {
"pdata": {
"ver": "1.0",
"id": "Sunbird"
}
},
"edata": {
"eks": {
"level": "DEBUG",
"msgId": "80429a23-74ec-49a0-b99d-daef4d3f622b",
"message": "calling search builder======{\n "from" : 0,\n "size" : 250,\n "query" : {\n "bool" : {\n "must" : [\n {\n "term" : {\n "courseId.raw" : {\n "value" : "do_2123943834389299201318",\n "boost" : 1.0\n }\n }\n },\n {\n "term" : {\n "status.raw" : {\n "value" : "1",\n "boost" : 1.0\n }\n }\n },\n {\n "term" : {\n "createdBy.raw" : {\n "value" : "b32fb1b6-e579-4406-881b-79b09609a1e5",\n "boost" : 1.0\n }\n }\n }\n ],\n "disable_coord" : false,\n "adjust_pure_negative" : true,\n "boost" : 1.0\n }\n },\n "_source" : {\n "includes" : [ ],\n "excludes" : [ ]\n },\n "sort" : [\n {\n "createdDate.raw" : {\n "order" : "desc"\n }\n }\n ]\n}"
}
}
}


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/project-sunbird/sunbird-commons/issues/131, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAGVqllNWXFrSMDAV7gY0-b5mEWUsUbrks5tAmVrgaJpZM4RDank
.


@pranvendra commented on Fri Dec 29 2017

  1. Open the portal as a content creator.
  2. Create some content.
  3. Open the course that has been created.
  4. Now, create a batch for that course.
  5. We get a message on screen saying that the batch has been successfully created.

But while displaying the course it is not getting displayed and in log files above error is displayed.

Inconsistency in labels across Diksha

@Basreena commented on Wed Sep 06 2017

The following changes have to be made across screens and forms in Diksha:
Creating Book:

  1. Label name Title has to be changed to Name
  2. Label name Board has to be changed to Curriculum
  3. Label name Grade has to be changed to Class
    untitled book
  4. Label name Textbook Unit has to be chnaged to Book Unit
  5. Label name Resource has to be changed to Learning Resources
    untitled book 2
    Create Course
  6. Label name Title has to be changed to Name
  7. Label name Resource has to be changed to Learning Resources
    untitled course
    Create Studymaterial
  8. Tile Study Material has to be changed to Learning Resources
    study material 2
  9. Page title Create Lesson has to be changed to Create Learning Resources
    study material 3
    Add Resource
  10. Page Title Add Resource has to be changed to Add Learning Resources
    adding resource
    Uploading Content
  11. Label name "Attribution" has to be changed to "Acknowledgement"
    uploading cntnt 1
  12. Label name "Unit Title" has to be changed to "Unit Name"
    untitled book 3

@kochhar commented on Wed Sep 06 2017

@vrayulu we can move this issue to sunbird-portal repo.

#bodhi cdata and etags.dims

@ajinkya-k commented on Thu Dec 07 2017

Can you clarify what exactly is stored in cdata and etags.dims? Consider the following telemetry event:

{
    "ver" : "2.1",
    "uid" : "94ebba50-eb1a-4d88-8559-a76a01e23abc",
    "sid" : "foW0VkHhd634DF4gMswdhdyEZPH4SkyE",
    "did" : "308445714621a79331f6e096ca520c61",
    "edata" : {
        "eks" : {
            "stageid" : "",
            "mode" : "play"
        }
    },
    "eid" : "OE_START",
    "gdata" : {
        "id" : "org.ekstep.quiz.app",
        "ver" : "411"
    },
    "cdata" : [ 
        {
            "id" : "do_2123772810629365761693",
            "type" : "course"
        }, 
        {
            "id" : "63c44b40087d643e0e83edbb66be200a",
            "type" : "ContentSession"
        }
    ],
    "channel" : "b00bc992ef25f1a9a8d63291e20efc8d",
    "etags" : {
        "dims" : [ 
            "01231213836359270434", 
            "ORG_001", 
            "b00bc992ef25f1a9a8d63291e20efc8d", 
            "do_2123772810629365761693", 
            null
        ],
        "app" : [ 
            "sunbird.portal"
        ],
        "partner" : []
    },
    "pdata" : {
        "id" : "in.ekstep",
        "ver" : "1.0"
    },
    "ets" : NumberLong(1512562510524),
    "mid" : "OE_23cf1205dcb08039bf77135b9e09529b"
}

What is the first entry in the etags.dims. The second entry is organisation ID but which organisation, the org of the accessor or the org that created the content? The third is channel, the fourth is courseId and and the last one is null which is an error. Please explain


@harishgilimi commented on Fri Dec 08 2017

@ajinkya-k
as per above event data cdata contains courseId and contentId because you are playing content, which is a part of a course
etags.dims are org ids the user belongs including accessor and courseId and batchHashTagId


@ajinkya-k commented on Fri Dec 08 2017

@harishgilimi What do the first(01231213836359270434) and last(null) entry mean? Also that the last entry is null is a bug. Refer to https://github.com/project-sunbird/sunbird-commons/issues/126 for the bug


@harishgilimi commented on Fri Dec 08 2017

@ajinkya-k 01231213836359270434 is sub org under root org ORG_001 and batchHashTagId is sent as null for course not belongs to a batch, the fix will be available in v1.3


@ajinkya-k commented on Fri Dec 08 2017

@harishgilimi v1.3 of what?
Also, could you share the complete specification and documentation of all events with explanation (including OE_x, CP_x and CE_x events) of each field as well? I want to know what is supposed to be saved in each field e.g. In case of dims, what is the order of the dims? What are the possible values


@harishgilimi commented on Fri Dec 08 2017

@ajinkya-k v1.3 is tag after release same code will be available in master branch too,

@kochhar please provide the documentation for events


@ajinkya-k commented on Sat Dec 16 2017

@harishgilimi what is stored in cdata if some content is used in more than one course, also what is stored in etags.dims in this case?

#bodhi Missing EID in Telemetry event JSON created on submitting feedback for content

@ajinkya-k commented on Fri Nov 17 2017

When user submits feedback after viewing content, the value for the key eid in the telemetry event JSON is blank.


@vinukumar-vs commented on Fri Nov 24 2017

Feedback of the content is not generating any event in portal.
Content feedback functionality will work only in mobile(sending feedback telemetry to Genie-SDK)

@harishgilimi @vrayulu @AmiableAnil


@kochhar commented on Mon Nov 27 2017

@harishgilimi what are the next steps for this issue?


@ajinkya-k commented on Mon Nov 27 2017

@kochhar I have narrowed down the error the sendFeedback method in TelemetryV2Manager. It is making a call to createEvent with empty EID which is the first parameter

The sendFeedback method definition:

this.sendFeedback = function(eks) {
        return this.createEvent("", eks);
};

The createEvent method:

this.createEvent = function(eventName, body, consumer) {
        var event = new TelemetryEvent();
        if (consumer == 'PORTAL') {
            event.portalInit(eventName, TelemetryService._version, body, TelemetryService._user, TelemetryService._correlationData, TelemetryService._otherData)
            return event
        } else {
            event.init(eventName, TelemetryService._version, body, TelemetryService._user, TelemetryService._gameData, TelemetryService._correlationData, TelemetryService._otherData);
            return event
        }
};

The first argument of TelemetryEvent.init method is used as EID

this.init = function(eid, version, body, user, gdata, cdata, otherData) {
        if("undefined" != gdata && "undefined" == gdata.ver)
            gdata.ver = "1";
        this.createdTime = getCurrentTime();
        this.name = eid;
        . . . 
}

Thus the eventName being empty causes an event with eid="" to be sent


@kochhar commented on Mon Nov 27 2017

@vinukumar-vs @harishgilimi I believe the correct EID should be "OE_FEEDBACK". Could you please confirm?


@vinukumar-vs commented on Fri Dec 01 2017

@kochhar
As I commented above, Genie-Canvas(ContentRenderer) is not logging any OE_FEEDBACK event(from end page rating). Content player is logging only GE_FEEDBACK when it is playing in mobile.

When the content is playing in portal(using ContentRenderer), there is no event generating feedback(OE_FEEDBACK) from the end-page as of now.

@mathewjpallan @harishgilimi @anujtech46 @AmiableAnil @sferoz


@kochhar commented on Fri Dec 01 2017

@vinukumar-vs thanks for the confirmation that the eid should be OE_FEEDBACK. let's file a GenieCanvas bug.

Password policy

Passwords Must Meet Complexity Requirements

  • Passwords must have at least six characters.
  • Passwords must use at least three of the four available character types: lowercase letters, uppercase letters, numbers, and symbols.
  • Maximum Password Age : 30 days

Errors in console while playing a Epub file

@sujeetkrjaiswal commented on Mon Dec 11 2017

While playing an Epub file on sunbird portal, there are multiple console errors.
Sample link for the Epub: https://staging.open-sunbird.org/private/index#!/content/do_2123250586661191681573/Sample%20epub#content%2Fdo_2123250586661191681573

Following are the 404 Errors:

https://staging.open-sunbird.org/content/preview/OPS/images/cover.png
https://staging.open-sunbird.org/content/preview/OPS/images/logo-feedbooks-tiny.png
https://staging.open-sunbird.org/content/preview/OPS/css/title.css
https://staging.open-sunbird.org/content/preview/OPS/css/main.css

the request for main.css file was done more than 20 times.


@kochhar commented on Mon Dec 18 2017

@sujeetkrjaiswal Thanks for the report. Welcome a PR with a fix.

OE_START events are sending null in etags.dims

@ajinkya-k commented on Thu Nov 30 2017

A number of errors in sending the OE_x telemetry events. When a telemetry POST call is made, the following response is received by Chrome. This is the response body(copied from Chrome Developer Console):

{
    "id":"ekstep.telemetry.validate",
    "ver":"1.0",
    "ts":"2017-11-30T10:40:47+00:00",
    "params": {
        "resmsgid": "26f76d4785a02e05383a33d0ee1f48153ace626d", "msgid": "", "status": "failed", "err": "VALIDATION_ERROR", "errmsg": "schema validation error"
    }
    ,
    "errors":[ {
        "event": {
            "cdata":[ {
                "id": "do_2123772810629365761693", "type": "course"
            }
            ,
            {
                "id": "46d8a66d03a244f0c7214f34c7f33a92", "type": "ContentSession"
            }
            ],
            "channel":"b00bc992ef25f1a9a8d63291e20efc8d",
            "did":"308445714621a79331f6e096ca520c61",
            "edata": {
                "eks": {
                    "mode": "play", "stageid": ""
                }
            }
            ,
            "eid":"OE_START",
            "etags": {
                "app": ["sunbird_portal"], "dims": ["01231213836359270434", "ORG_001", "b00bc992ef25f1a9a8d63291e20efc8d", "do_2123772810629365761693", null], "partner": []
            }
            ,
            "ets":1.512038407361e+12,
            "gdata": {
                "id": "org.ekstep.quiz.app", "ver": "411"
            }
            ,
            "mid":"OE_8942cd70a8fb89f5658325050f60ffbd",
            "pdata": {
                "id": "in.ekstep", "ver": "1.0"
            }
            ,
            "sid":"gcZirv2MXyB2hwDVpyTpXglw1BMMFS6n",
            "uid":"94ebba50-eb1a-4d88-8559-a76a01e23abc",
            "ver":"2.1"
        }
        ,
        "EID":"oe_start",
        "errors":[ {
            "field": "etags.dims.4", "error": "Invalid type. Expected: string, given: null"
        }
        ]
    }
    ,
    {
        "event": {
            "cdata":[ {
                "id": "do_2123772810629365761693", "type": "course"
            }
            ,
            {
                "id": "46d8a66d03a244f0c7214f34c7f33a92", "type": "ContentSession"
            }
            ],
            "channel":"b00bc992ef25f1a9a8d63291e20efc8d",
            "did":"308445714621a79331f6e096ca520c61",
            "edata": {
                "eks": {
                    "extype": "", "id": "next", "pos": [], "stageid": "2bd904c9-6c1e-4c89-a593-1c8bd4c46c27", "subtype": "", "tid": "", "type": "TOUCH", "uri": "", "values": []
                }
            }
            ,
            "eid":"OE_INTERACT",
            "etags": {
                "app": ["sunbird_portal"], "dims": ["01231213836359270434", "ORG_001", "b00bc992ef25f1a9a8d63291e20efc8d", "do_2123772810629365761693", null], "partner": []
            }
            ,
            "ets":1.51203844284e+12,
            "gdata": {
                "id": "org.ekstep.quiz.app", "ver": "411"
            }
            ,
            "mid":"OE_4707fd6bef8990d7b4bcb331f85eeca8",
            "pdata": {
                "id": "in.ekstep", "ver": "1.0"
            }
            ,
            "sid":"gcZirv2MXyB2hwDVpyTpXglw1BMMFS6n",
            "uid":"94ebba50-eb1a-4d88-8559-a76a01e23abc",
            "ver":"2.1"
        }
        ,
        "EID":"oe_interact",
        "errors":[ {
            "field": "etags.dims.4", "error": "Invalid type. Expected: string, given: null"
        }
        ]
    }
    ,
    {
        "event": {
            "cdata":[ {
                "id": "do_2123772810629365761693", "type": "course"
            }
            ,
            {
                "id": "46d8a66d03a244f0c7214f34c7f33a92", "type": "ContentSession"
            }
            ],
            "channel":"b00bc992ef25f1a9a8d63291e20efc8d",
            "did":"308445714621a79331f6e096ca520c61",
            "edata": {
                "eks": {
                    "itype": "", "stageid": "2bd904c9-6c1e-4c89-a593-1c8bd4c46c27", "stageto": "d617108e-a555-460d-b2a4-d5d6ee11aaab", "type": ""
                }
            }
            ,
            "eid":"OE_NAVIGATE",
            "etags": {
                "app": ["sunbird_portal"], "dims": ["01231213836359270434", "ORG_001", "b00bc992ef25f1a9a8d63291e20efc8d", "do_2123772810629365761693", null], "partner": []
            }
            ,
            "ets":1.51203844293e+12,
            "gdata": {
                "id": "org.ekstep.quiz.app", "ver": "411"
            }
            ,
            "mid":"OE_8942d02fa730f9addac9d88768ffaae9",
            "pdata": {
                "id": "in.ekstep", "ver": "1.0"
            }
            ,
            "sid":"gcZirv2MXyB2hwDVpyTpXglw1BMMFS6n",
            "uid":"94ebba50-eb1a-4d88-8559-a76a01e23abc",
            "ver":"2.1"
        }
        ,
        "EID":"oe_navigate",
        "errors":[ {
            "field": "etags.dims.4", "error": "Invalid type. Expected: string, given: null"
        }
        ]
    }
    ,
    {
        "event": {
            "cdata":[ {
                "id": "do_2123772810629365761693", "type": "course"
            }
            ,
            {
                "id": "46d8a66d03a244f0c7214f34c7f33a92", "type": "ContentSession"
            }
            ],
            "channel":"b00bc992ef25f1a9a8d63291e20efc8d",
            "did":"308445714621a79331f6e096ca520c61",
            "edata": {
                "eks": {
                    "extype": "", "id": "previous", "pos": [], "stageid": "d617108e-a555-460d-b2a4-d5d6ee11aaab", "subtype": "", "tid": "", "type": "TOUCH", "uri": "", "values": []
                }
            }
            ,
            "eid":"OE_INTERACT",
            "etags": {
                "app": ["sunbird_portal"], "dims": ["01231213836359270434", "ORG_001", "b00bc992ef25f1a9a8d63291e20efc8d", "do_2123772810629365761693", null], "partner": []
            }
            ,
            "ets":1.512038444856e+12,
            "gdata": {
                "id": "org.ekstep.quiz.app", "ver": "411"
            }
            ,
            "mid":"OE_067e58b49e6efebb8875a39a92e53737",
            "pdata": {
                "id": "in.ekstep", "ver": "1.0"
            }
            ,
            "sid":"gcZirv2MXyB2hwDVpyTpXglw1BMMFS6n",
            "uid":"94ebba50-eb1a-4d88-8559-a76a01e23abc",
            "ver":"2.1"
        }
        ,
        "EID":"oe_interact",
        "errors":[ {
            "field": "etags.dims.4", "error": "Invalid type. Expected: string, given: null"
        }
        ]
    }
    ,
    {
        "event": {
            "cdata":[ {
                "id": "do_2123772810629365761693", "type": "course"
            }
            ,
            {
                "id": "46d8a66d03a244f0c7214f34c7f33a92", "type": "ContentSession"
            }
            ],
            "channel":"b00bc992ef25f1a9a8d63291e20efc8d",
            "did":"308445714621a79331f6e096ca520c61",
            "edata": {
                "eks": {
                    "itype": "", "stageid": "d617108e-a555-460d-b2a4-d5d6ee11aaab", "stageto": "2bd904c9-6c1e-4c89-a593-1c8bd4c46c27", "type": ""
                }
            }
            ,
            "eid":"OE_NAVIGATE",
            "etags": {
                "app": ["sunbird_portal"], "dims": ["01231213836359270434", "ORG_001", "b00bc992ef25f1a9a8d63291e20efc8d", "do_2123772810629365761693", null], "partner": []
            }
            ,
            "ets":1.512038444936e+12,
            "gdata": {
                "id": "org.ekstep.quiz.app", "ver": "411"
            }
            ,
            "mid":"OE_f56fff5f93c1d3fd84cec57790cb86af",
            "pdata": {
                "id": "in.ekstep", "ver": "1.0"
            }
            ,
            "sid":"gcZirv2MXyB2hwDVpyTpXglw1BMMFS6n",
            "uid":"94ebba50-eb1a-4d88-8559-a76a01e23abc",
            "ver":"2.1"
        }
        ,
        "EID":"oe_navigate",
        "errors":[ {
            "field": "etags.dims.4", "error": "Invalid type. Expected: string, given: null"
        }
        ]
    }
    ,
    {
        "event": {
            "cdata":[ {
                "id": "do_2123772810629365761693", "type": "course"
            }
            ,
            {
                "id": "46d8a66d03a244f0c7214f34c7f33a92", "type": "ContentSession"
            }
            ],
            "channel":"b00bc992ef25f1a9a8d63291e20efc8d",
            "did":"308445714621a79331f6e096ca520c61",
            "edata": {
                "eks": {
                    "extype": "", "id": "next", "pos": [], "stageid": "2bd904c9-6c1e-4c89-a593-1c8bd4c46c27", "subtype": "", "tid": "", "type": "TOUCH", "uri": "", "values": []
                }
            }
            ,
            "eid":"OE_INTERACT",
            "etags": {
                "app": ["sunbird_portal"], "dims": ["01231213836359270434", "ORG_001", "b00bc992ef25f1a9a8d63291e20efc8d", "do_2123772810629365761693", null], "partner": []
            }
            ,
            "ets":1.512038445703e+12,
            "gdata": {
                "id": "org.ekstep.quiz.app", "ver": "411"
            }
            ,
            "mid":"OE_272cf9b5b88c2bd5f34a918190ef092c",
            "pdata": {
                "id": "in.ekstep", "ver": "1.0"
            }
            ,
            "sid":"gcZirv2MXyB2hwDVpyTpXglw1BMMFS6n",
            "uid":"94ebba50-eb1a-4d88-8559-a76a01e23abc",
            "ver":"2.1"
        }
        ,
        "EID":"oe_interact",
        "errors":[ {
            "field": "etags.dims.4", "error": "Invalid type. Expected: string, given: null"
        }
        ]
    }
    ,
    {
        "event": {
            "cdata":[ {
                "id": "do_2123772810629365761693", "type": "course"
            }
            ,
            {
                "id": "46d8a66d03a244f0c7214f34c7f33a92", "type": "ContentSession"
            }
            ],
            "channel":"b00bc992ef25f1a9a8d63291e20efc8d",
            "did":"308445714621a79331f6e096ca520c61",
            "edata": {
                "eks": {
                    "itype": "", "stageid": "2bd904c9-6c1e-4c89-a593-1c8bd4c46c27", "stageto": "d617108e-a555-460d-b2a4-d5d6ee11aaab", "type": ""
                }
            }
            ,
            "eid":"OE_NAVIGATE",
            "etags": {
                "app": ["sunbird_portal"], "dims": ["01231213836359270434", "ORG_001", "b00bc992ef25f1a9a8d63291e20efc8d", "do_2123772810629365761693", null], "partner": []
            }
            ,
            "ets":1.512038445759e+12,
            "gdata": {
                "id": "org.ekstep.quiz.app", "ver": "411"
            }
            ,
            "mid":"OE_c6b380bc50f9c7945c91d4430c11388e",
            "pdata": {
                "id": "in.ekstep", "ver": "1.0"
            }
            ,
            "sid":"gcZirv2MXyB2hwDVpyTpXglw1BMMFS6n",
            "uid":"94ebba50-eb1a-4d88-8559-a76a01e23abc",
            "ver":"2.1"
        }
        ,
        "EID":"oe_navigate",
        "errors":[ {
            "field": "etags.dims.4", "error": "Invalid type. Expected: string, given: null"
        }
        ]
    }
    ,
    {
        "event": {
            "cdata":[ {
                "id": "do_2123772810629365761693", "type": "course"
            }
            ,
            {
                "id": "46d8a66d03a244f0c7214f34c7f33a92", "type": "ContentSession"
            }
            ],
            "channel":"b00bc992ef25f1a9a8d63291e20efc8d",
            "did":"308445714621a79331f6e096ca520c61",
            "edata": {
                "eks": {
                    "extype": "", "id": "previous", "pos": [], "stageid": "d617108e-a555-460d-b2a4-d5d6ee11aaab", "subtype": "", "tid": "", "type": "TOUCH", "uri": "", "values": []
                }
            }
            ,
            "eid":"OE_INTERACT",
            "etags": {
                "app": ["sunbird_portal"], "dims": ["01231213836359270434", "ORG_001", "b00bc992ef25f1a9a8d63291e20efc8d", "do_2123772810629365761693", null], "partner": []
            }
            ,
            "ets":1.512038446616e+12,
            "gdata": {
                "id": "org.ekstep.quiz.app", "ver": "411"
            }
            ,
            "mid":"OE_b6f90e1ef54d9d6603ac4402cb383a26",
            "pdata": {
                "id": "in.ekstep", "ver": "1.0"
            }
            ,
            "sid":"gcZirv2MXyB2hwDVpyTpXglw1BMMFS6n",
            "uid":"94ebba50-eb1a-4d88-8559-a76a01e23abc",
            "ver":"2.1"
        }
        ,
        "EID":"oe_interact",
        "errors":[ {
            "field": "etags.dims.4", "error": "Invalid type. Expected: string, given: null"
        }
        ]
    }
    ,
    {
        "event": {
            "cdata":[ {
                "id": "do_2123772810629365761693", "type": "course"
            }
            ,
            {
                "id": "46d8a66d03a244f0c7214f34c7f33a92", "type": "ContentSession"
            }
            ],
            "channel":"b00bc992ef25f1a9a8d63291e20efc8d",
            "did":"308445714621a79331f6e096ca520c61",
            "edata": {
                "eks": {
                    "itype": "", "stageid": "d617108e-a555-460d-b2a4-d5d6ee11aaab", "stageto": "2bd904c9-6c1e-4c89-a593-1c8bd4c46c27", "type": ""
                }
            }
            ,
            "eid":"OE_NAVIGATE",
            "etags": {
                "app": ["sunbird_portal"], "dims": ["01231213836359270434", "ORG_001", "b00bc992ef25f1a9a8d63291e20efc8d", "do_2123772810629365761693", null], "partner": []
            }
            ,
            "ets":1.512038446679e+12,
            "gdata": {
                "id": "org.ekstep.quiz.app", "ver": "411"
            }
            ,
            "mid":"OE_88b47179f5566e9ac0093b81269ad0eb",
            "pdata": {
                "id": "in.ekstep", "ver": "1.0"
            }
            ,
            "sid":"gcZirv2MXyB2hwDVpyTpXglw1BMMFS6n",
            "uid":"94ebba50-eb1a-4d88-8559-a76a01e23abc",
            "ver":"2.1"
        }
        ,
        "EID":"oe_navigate",
        "errors":[ {
            "field": "etags.dims.4", "error": "Invalid type. Expected: string, given: null"
        }
        ]
    }
    ,
    {
        "event": {
            "cdata":[ {
                "id": "do_2123772810629365761693", "type": "course"
            }
            ,
            {
                "id": "46d8a66d03a244f0c7214f34c7f33a92", "type": "ContentSession"
            }
            ],
            "channel":"b00bc992ef25f1a9a8d63291e20efc8d",
            "did":"308445714621a79331f6e096ca520c61",
            "edata": {
                "eks": {
                    "extype": "", "id": "next", "pos": [], "stageid": "2bd904c9-6c1e-4c89-a593-1c8bd4c46c27", "subtype": "", "tid": "", "type": "TOUCH", "uri": "", "values": []
                }
            }
            ,
            "eid":"OE_INTERACT",
            "etags": {
                "app": ["sunbird_portal"], "dims": ["01231213836359270434", "ORG_001", "b00bc992ef25f1a9a8d63291e20efc8d", "do_2123772810629365761693", null], "partner": []
            }
            ,
            "ets":1.512038447464e+12,
            "gdata": {
                "id": "org.ekstep.quiz.app", "ver": "411"
            }
            ,
            "mid":"OE_c00dc71ba8bbfbe284f0d1388867e252",
            "pdata": {
                "id": "in.ekstep", "ver": "1.0"
            }
            ,
            "sid":"gcZirv2MXyB2hwDVpyTpXglw1BMMFS6n",
            "uid":"94ebba50-eb1a-4d88-8559-a76a01e23abc",
            "ver":"2.1"
        }
        ,
        "EID":"oe_interact",
        "errors":[ {
            "field": "etags.dims.4", "error": "Invalid type. Expected: string, given: null"
        }
        ]
    }
    ]
}

@kochhar commented on Mon Dec 18 2017

Thanks for the report @ajinkya-k. Welcome a PR with a fix.

Console Errors while navigating after login

The navigation is working properly and links are Okay, but whenever I am navigating for. eg. #/home to #/learn, or vice versa, I am getting the following error:

url-errors

external.min.js:23 Uncaught Error: Syntax error, unrecognized expression: #!/learn
    at Function.fa.error (external.min.js:23)
    at fa.tokenize (external.min.js:23)
    at fa.select (external.min.js:23)
    at Function.fa [as find] (external.min.js:23)
    at n.fn.init.find (external.min.js:23)
    at new n.fn.init (external.min.js:23)
    at n (external.min.js:23)
    at external.min.js:1327
    at dispatch (external.min.js:24)
    at r.handle (external.min.js:24)
fa.error @ external.min.js:23
fa.tokenize @ external.min.js:23
fa.select @ external.min.js:23
fa @ external.min.js:23
find @ external.min.js:23
n.fn.init @ external.min.js:23
n @ external.min.js:23
(anonymous) @ external.min.js:1327
dispatch @ external.min.js:24
r.handle @ external.min.js:24
hashchange (async)
k.url @ external.min.js:88
h @ external.min.js:156
(anonymous) @ external.min.js:160
$eval @ external.min.js:186
$digest @ external.min.js:183
$apply @ external.min.js:186
l @ external.min.js:140
N.onload @ external.min.js:145
XMLHttpRequest.send (async)
(anonymous) @ external.min.js:146
p @ external.min.js:141
(anonymous) @ external.min.js:139
(anonymous) @ external.min.js:172
$eval @ external.min.js:186
$digest @ external.min.js:183
$apply @ external.min.js:186
(anonymous) @ external.min.js:199
f @ external.min.js:86
(anonymous) @ external.min.js:89
setTimeout (async)
k.defer @ external.min.js:89
e @ external.min.js:199
(anonymous) @ external.min.js:409
dispatch @ external.min.js:24
r.handle @ external.min.js:24
external.min.js:23 Uncaught Error: Syntax error, unrecognized expression: #!/home
    at Function.fa.error (external.min.js:23)
    at fa.tokenize (external.min.js:23)
    at fa.select (external.min.js:23)
    at Function.fa [as find] (external.min.js:23)
    at n.fn.init.find (external.min.js:23)
    at new n.fn.init (external.min.js:23)
    at n (external.min.js:23)
    at external.min.js:1327
    at dispatch (external.min.js:24)
    at r.handle (external.min.js:24)

Issue when fetching a plugin in the player

@sujeetkrjaiswal commented on Sat Dec 02 2017

When the player is trying to access

http://localhost:3000/content/preview/coreplugins/org.ekstep.toaster-1.0/renderer/libs/toaster.min.js??411&_=1512221710779

when /content/preview/* is proxied for 'https://staging.open-sunbird.org'
Getting the following errors:

<Error>
  <Code>AccessDenied</Code>
  <Message>Access Denied</Message>
  <RequestId>5F5613E608784F57</RequestId>
  <HostId>
    G0efMZCbVW2QdT4at7xX8N/WADhQjU7gMDhmZs9yibt7py7lN3rUIitx9e8mpdSHehkD3qLQ1TU=
  </HostId>
</Error>

Can someone help with the reason for this error and how to fix this?


@kochhar commented on Thu Dec 07 2017

@harishgilimi please take a look


@kochhar commented on Fri Dec 08 2017

@vinukumar-vs please seems like there is an error in loading plugins.

from @harishgilimi

file name inside plugin manifest and actual file name are different so it is not loading


@vinukumar-vs commented on Fri Dec 08 2017

There is an issue in ContentRenderer while bundling the plugins. We will address this issue in this Dec release.

While loading org.ekstep.toaster plugin dependencies it will fail to load. But this library is bundled in externalJs script file.

@kochhar @harishgilimi


@kochhar commented on Fri Dec 08 2017

@vinukumar-vs is there an interim workaround? please share a bug link here.


@kochhar commented on Mon Dec 18 2017

@vinukumar-vs could you please share a bug link here?


@vinukumar-vs commented on Tue Dec 19 2017

@kochhar
https://github.com/ekstep/Genie-Canvas/issues/1563

#bodhi "org.ekstep.quiz.app" is being sent in gdata instead of contentId

@ajinkya-k commented on Thu Dec 07 2017

@sferoz According to our discussion, gdata must contain the contentId value but Sunbird is sending org.ekstep.quiz.app as gdata.id in the OE_x telemetry events. See example below:

{
    "ver" : "2.1",
    "uid" : "94ebba50-eb1a-4d88-8559-a76a01e23abc",
    "sid" : "foW0VkHhd634DF4gMswdhdyEZPH4SkyE",
    "did" : "308445714621a79331f6e096ca520c61",
    "edata" : {
        "eks" : {
            "stageid" : "",
            "mode" : "play"
        }
    },
    "eid" : "OE_START",
    "gdata" : {
        "id" : "org.ekstep.quiz.app",
        "ver" : "411"
    },
    "cdata" : [ 
        {
            "id" : "do_2123772810629365761693",
            "type" : "course"
        }, 
        {
            "id" : "63c44b40087d643e0e83edbb66be200a",
            "type" : "ContentSession"
        }
    ],
    "channel" : "b00bc992ef25f1a9a8d63291e20efc8d",
    "etags" : {
        "dims" : [ 
            "01231213836359270434", 
            "ORG_001", 
            "b00bc992ef25f1a9a8d63291e20efc8d", 
            "do_2123772810629365761693", 
            null
        ],
        "app" : [ 
            "sunbird.portal"
        ],
        "partner" : []
    },
    "pdata" : {
        "id" : "in.ekstep",
        "ver" : "1.0"
    },
    "ets" : NumberLong(1512562510524),
    "mid" : "OE_23cf1205dcb08039bf77135b9e09529b"
}

@harishgilimi commented on Fri Dec 08 2017

@vinukumar-vs it seems telemetry generated in renderer is incorrect please look into it


@kochhar commented on Mon Dec 18 2017

@vinukumar-vs any update on this?


@vinukumar-vs commented on Tue Dec 19 2017

@kochhar We have taken this as part of Dec release and pushed to QA.


@kochhar commented on Fri Feb 02 2018

@ajinkya-k please verify in the new release.

User account

Both phone and email should not be mandatory when creating a user. Only one of them should be enough to create an account.

Ability to de-enroll

Learner should be able to "de-enroll" themselves for "self enrollment" courses

#bodhi timeStamp issue in OE_START and OE_END

@ajinkya-k commented on Sat Dec 16 2017

In the sunbird-portal telemetry, when OE_START is created and a corresponding OE_END is pushed to the TelemetryV2Manager._end queue, the time that is stored as ets in OE_START is different from the time that is stored in the queue OE_END event that is used to calculate the edata.eks.length when the OE_END event is actually fired. As a result, the actual time spent on the content is miscalculated. Ideally, OE_START ets must match with the startTime used for calculating OE_END edata.eks.length


@kochhar commented on Mon Dec 18 2017

Thanks for the bug report @ajinkya-k. Could you please submit a PR for the fix? Thanks!

SunBird Laptop Manual Installation- Editing environmentVariablesHelper.js and connecting to SunBird Portal

@SMYALTAMASH commented on Thu Jan 11 2018

i'm trying to launch a SunBird App by following the documentations in the "http://www.sunbird.org/developer-docs/installation/installing_sunbirdon_laptop/" but i'm unable to connect to sunbird Portal, can you provide some details as to what needs to be configured in environmentVariablesHelper.js file and how do i connect to SunBird Portal with it by providing Some Sample Data, Below is the Document which shows that it is not connected to SunBird
help


@rjshrjndrn commented on Wed Jan 17 2018

@harishgilimi can you please check this?


@harishgilimi commented on Fri Jan 19 2018

@SMYALTAMASH please run your app on port 3000 , let me know if you still face issue


@SMYALTAMASH commented on Fri Jan 19 2018

I ran the app on port serverIP:3000 itself.

On 19 Jan 2018 2:55 pm, "harishkumar gangula" [email protected]
wrote:

@SMYALTAMASH https://github.com/smyaltamash please run you are app on
port 3000 , let me know if you still face issue


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/project-sunbird/sunbird-commons/issues/139#issuecomment-358911141,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Ac4hUmGF9uXNGmk7RfEPjQovPuqVdyDQks5tMF9xgaJpZM4Ralvy
.

#bodhi What is contentSession in cdata?

@ajinkya-k commented on Tue Dec 19 2017

In the CP_IMPRESSION telemetry data, the cdata contains an object with the key-value pair, {"type":"contentSession", "id":"1a7be4fcbce0aa9078fff5bb91aa2d74"}

refer to:


  "ver": "2.1",
  "uid": "94ebba50-eb1a-4d88-8559-a76a01e23abc",
  "sid": "9vYE_vVWVgrI2BNdzYA_Xyl_iLZ-t88W",
  "did": "308445714621a79331f6e096ca520c61",
  "edata": {
    "eks": {
      "qid": "do_30034283",
      "maxscore": 1,
      "params": [],
      "score": 0,
      "pass": "No",
      "resvalues": [],
      "uri": "",
      "qindex": 2,
      "exlength": 0,
      "qtitle": "Who am I",
      "qdesc": "",
      "mmc": [],
      "mc": [],
      "length": 3
    }
  },
  "eid": "OE_ASSESS",
  "gdata": {
    "id": "org.ekstep.quiz.app",
    "ver": "411"
  },
  "cdata": [
    {
      "id": "do_2123772810629365761693",
      "type": "course"
    },
    {
      "id": "1a7be4fcbce0aa9078fff5bb91aa2d74",
      "type": "ContentSession"
    }
  ],
  "channel": "b00bc992ef25f1a9a8d63291e20efc8d",
  "etags": {
    "dims": [
      "01231213836359270434",
      "ORG_001",
      "b00bc992ef25f1a9a8d63291e20efc8d",
      "do_2123772810629365761693",
      null
    ],
    "app": [
      "sunbird.portal"
    ],
    "partner": []
  },
  "pdata": {
    "id": "in.ekstep",
    "ver": "1.0"
  },
  "ets": 1512385117542,
  "mid": "OE_d0256f06bda332c47b5cfd383157db95"
}

What is contentSession. Also I could not find any specification/guide/documentation for properly understanding cdata and etags. Please provide the same

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.