Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Sep 11 2018 10:21

    asahd on v2.5.2

    (compare)

  • Sep 11 2018 10:21

    asahd on v2.5.2

    (compare)

  • Sep 11 2018 10:19

    asahd on master

    Restore nginx.conf.example (compare)

  • Sep 11 2018 10:05

    asahd on v2.5.2

    (compare)

  • Sep 11 2018 10:04

    asahd on feature-symantic

    (compare)

  • Sep 11 2018 10:04

    asahd on master

    Added full document toggle to s… Added post and patch metadata. Updated Metadata to update stat… and 6 more (compare)

  • Sep 11 2018 10:04
    asahd closed #1232
  • Sep 11 2018 09:05
    asahd labeled #1232
  • Sep 11 2018 09:05
    asahd unlabeled #1232
  • Sep 11 2018 08:42
    asahd synchronize #1232
  • Sep 11 2018 08:42

    asahd on feature-symantic

    Fixes statement creations being… (compare)

  • Sep 10 2018 15:07

    happy-machine on Statement_component

    fixed default naming in Stateme… (compare)

  • Sep 10 2018 12:45
    asahd synchronize #1232
  • Sep 10 2018 12:45

    asahd on feature-symantic

    Changes Forwarding UI, updates … (compare)

  • Sep 10 2018 11:45
    ht2 synchronize #1232
  • Sep 10 2018 11:45

    ht2 on feature-symantic

    Start of shareable dashboards u… Removed filter required paramet… Added validation for shareable … and 49 more (compare)

  • Sep 04 2018 16:29
    cutz opened #1246
  • Sep 04 2018 14:20
    samjaved closed #1245
  • Aug 30 2018 22:20
    ryansmith94 assigned #1242
  • Aug 30 2018 16:43

    happy-machine on Statement_component

    working as Map (compare)

Dennis Hall
@hallshouse
New LL v7.1.0 install on Ubuntu 18.04 LTS
LL seems to work fine, but it is not saving statements.
I can load LL and login, visit every page - no issues, but when I write statements to it, no joy.
Using the same application and platform, I can write statements to my other LL v6.0.6 installation, but not v7.1.0
Nothing failing at all in the logs.
Any idea what the issue could be?
Dennis Hall
@hallshouse

So After some tries to write statements, I've found my first error traces - or at least a starting point:
2021-09-23 21:05:29:525 - ^[[31merror^[[39m: Failed Mongo connection: no primary found in replicaset or invalid replica set name
2021-09-23 21:05:30:535 - ^[[31merror^[[39m: Failed Mongo connection: no primary found in replicaset or invalid replica set name
2021-09-23 21:05:31:544 - ^[[31merror^[[39m: Failed Mongo connection: no primary found in replicaset or invalid replica set name
2021-09-23 21:05:32:550 - ^[[31merror^[[39m: Failed Mongo connection: no primary found in replicaset or invalid replica set name
2021-09-23 21:05:32:551 - ^[[31merror^[[39m: 32f0e76c-3363-4bf6-9971-a6b3b7e503b2: jscommons handled - A server error occurred
{ message: ^[[32m'Too many retries'^[[39m,
stack:
^[[32m'Error: Too many retries\n at Object.<anonymous> (/usr/local/learninglocker/releases/ll-20210923-ac0803ea165dd49ad74e059a294f5635708d3b80/xapi/node_modules$

Any idea why this would be when Mongo and LL seem to be working in the webapp side? I'm certain mongoDB is talking to LL since I can login and configure LL error-free.
I'm also only using a local mongo install.

Josh Ryan
@joshryan

If the system that a learning locker instance is forwarding statements to has an outage, is there a decent way to re-retry all statements that didn't successfully forward?

If nothing else, at a glance it looks like one might be able to just edit some values in mongo and the queues might pick things up again?

mrfish55
@mrfish55

Anyone having issues with statement forwarding?

I get an error message: "message": "ForwardingRequestError: Unable to connect to \"https://websitename.com/actions/public-api/papi/lrs-completion\"

Started happening beginning of this month...

DiemTrinh1513636
@DiemTrinh1513636

Hi everyone,
I start Learning locker by docker (https://github.com/michzimny/learninglocker2-docker)
I follow to this video (https://www.youtube.com/watch?v=LiIl_0TF_eE) to add a statement
POST /data/xAPI/statements
But I receive the response
{ "more": "", "statements": [] }

And I saw the log that is the GET method. I don't understand, anyone could help me? Thanks

John-McClane
@John-McClane

Hello to all.
I have installed LL v7.1.0 on Ubuntu 18.04 with the deployll.sh script, but I am facing several issues.
The installation script completes successfully without errors, just some warnings, and MongoDB, NginX, PM2, Redis, Nodev10 are all installed successfully, and all daemons are up and running normally.
Afterwards, NginX and MongoDB are running normally, the UI is working and I am able to login, add users, etc, MongoDB is working and behaving normally, but not much else. xAPI is not working.
Redis is installed successfully and its daemon working normally, but is unable to connect to anything, spawns and kills sub-processes too frequently and throws errors.
I have researched every one of the issues but I am unable to find a solution, so I would need your help.
Thanks in advance.
The most serious issues are:

/usr/local/learninglocker/releases/.pm2/pm2.log
PM2 | Error: EACCES: permission denied, open '/var/run/api-0.pid'
PM2 | Error: EACCES: permission denied, open '/var/run/ui-1.pid'
PM2 | Error: EACCES: permission denied, open '/var/run/ui-2.pid'
PM2 | Error: EACCES: permission denied, open '/var/run/scheduler-3.pid'
PM2 | Error: EACCES: permission denied, open '/var/run/xapi-4.pid'
PM2 | Error: EACCES: permission denied, open '/var/run/xapi-5.pid'
/var/log/learninglocker/api_stderr-0.log
0|API | [ioredis] Unhandled error event: Error: connect ECONNREFUSED 127.0.0.1:6379
0|API | at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
0|API | 'Error: Unauthorised\n at _default (/usr/local/learninglocker/releases/ll-20211025-ac0803ea165dd49ad74e059a294f5635708d3b80/webapp/api/dist/server/webpack:/learninglocker/webapp/lib/errors/BaseError.js:5:18)\n at new _default (/usr/local/``learninglocker/releases/ll-20211025-ac0803ea165dd49ad74e059a294f5635708d3b80/webapp/api/dist/server/webpack:/learninglocker/webapp/lib/errors/Unauthorised.js:4:17)\n ...
/var/log/learninglocker/scheduler_stderr-3.log
3|Schedule | [ioredis] Unhandled error event: Error: connect ECONNREFUSED 127.0.0.1:6379
3|Schedule | at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
3|Schedule | Error: ENOENT: no such file or directory, chdir '/usr/local/learninglocker/current/webapp'
/var/log/learninglocker/xapi_stderr-5.log
5|xAPI | 2021-10-21 23:31:25:953 - error: 3ceebe3e-fe71-4994-9979-504f3c7842ca: jscommons handled - A server error occurred
5|xAPI | 'Error: Too many retries\n at Object.<anonymous> (/usr/local/learninglocker/releases/ll-20211018-ac0803ea165dd49ad74e059a294f5635708d3b80/xapi/node_modules/jscommons/src/mongoRepo/utils/connectToDb/retryConnection.ts:8:11)\n at step (/usr/local/``learninglocker/releases/ll-20211018-ac0803ea165dd49ad74e059a294f5635708d3b80/xapi/node_modules/jscommons/dist/mongoRepo/utils/connectToDb/retryConnection.js:32:23)\n ...
5|xAPI | 2021-10-21 23:33:35:924 - error: Failed Mongo connection: no primary found in replicaset or invalid replica set name
5|xAPI | Error: ENOENT: no such file or directory, chdir '/usr/local/learninglocker/current/xapi'

Dennis Hall
@hallshouse
@John-McClane
I cannot answer to all your issues, but I can answer to "Afterwards, NginX and MongoDB are running normally, the UI is working and I am able to login, add users, etc, MongoDB is working and behaving normally, but not much else. xAPI is not working."
Edit your /usr/local/learninglocker/current/xapi > .env file and remove the "?replicaset..." query part of line so it only reads "MONGO_URL=mongodb://localhost:27017/learninglocker_v2"
John-McClane
@John-McClane

@hallshouse
Thanks for your immediate response.
Edited .env file and the warnings regarding the Mongo replicaset have disappeared.

In addition to the errors above, I forgot to mention that I am seeing errors in api_stdout-0.log
2021-10-27 14:55:35:149 - ^[[32minfo^[[39m:
==> 🌎 API is running on port 8080
==> 💻 Send requests to http://undefined:8080

Where should the "undefined" be defined?

uciica
@uciica
Hi everyone,
does anybody have tried using TinCan.Net in unity and deployed it to HoloLens/UWP??
Jesus M Bianco T
@jbiancot_twitter
Hi folks, we are experencing high demand on our site, I was wondering if I ran a pm2 ls, it shows 2 xAPI, I can scale to 4 xAPI, and from 1 worker to 2 workers? will the systems work properly?
Jesus M Bianco T
@jbiancot_twitter
Is anybody reading this? We have LRS v3.18, I would like to upgrade, could we migrate from 3.18 to 4? then to 5 then 6, etc... of we could jump from v3.18 to 5 or 6, then 7?
gamahachaa
@gamahachaa
@jbiancot_twitter I think you can jump the apps, it is the mon go db that you will have to update by .2 increment.
Khalid Yousif
@khalidreemy
hello
Khalid Yousif
@khalidreemy

After I installed LL and by mistake i put the admin password as "1" . It was weak password. I am unable to login. how can I reset it ???????
I used createSiteAdmin.js but it shows an error :
createSiteAdmin.js:1
import logger from 'lib/logger';
and long message lines.

could any one figure how to solve this issue or find a way to reset password

is there a channel on slack for learninglocker
Chetan Sachdev
@cksachdev
@khalidreemy Any particular reason for using LearningLocker?
Khalid Yousif
@khalidreemy
@cksachdev am using it as an LRS because it is open source
PJ Palomaki
@AVTPJ
Hey, when I use 'statement.result.success' as a column entry for a CSV export, it shows the column as empty, though there are results?
Also, how do I add extension with an URI to the export query? I.e.
"context": { "extensions": { "https://www.paediatriccoughapp.com/extension/nickname": "FightingCough", "https://www.paediatriccoughapp.com/extension/specialty": "MyNick", "https://www.paediatriccoughapp.com/extension/country": "Germany"
PJ Palomaki
@AVTPJ
And is there any way to amends existing statements on the LRS?
Khalid Yousif
@khalidreemy
I have a question plz.
In an xAPI statement, I am using the "result" property. Inside it I use "completion", "success", {"score": raw,max,min,scaled}.
My question is how represent it in the xAPI profile. I have search some profiles in "Github ADL xapi" profiles but I didn't find an example to that.
@AVTPJ am not expert in LRSs but I think you have to go through mongodb collections and edit it from there.
Khalid Yousif
@khalidreemy

Hello all. I have installed LL on my ubuntu machine and every thing is ok. But when I try to send an xAPI statements to the LRS, I find that the statements are not sent. The browser debugger shows the following err:
'POST http://localhost/data/xAPI/statements 500 (Internal Server Error)
ADL.XHR_request @ xapiwrapper.js:1525
XAPIWrapper.sendStatement @ xapiwrapper.js:331
sendStatement @ interaction.js:41
onclick @ index.html:39'

I tried using SCORM LRS , there everything goes well.
Help plz

Haakon Meland Eriksen
@HaakonME
@ht2 The Learning Locker Aggregation API documentation does not say anything about the MongoDB pipeline stages $merge nor $out. How do I get a LearningLocker dashboard to show the result of an aggregation done using the API?
Khalid Yousif
@khalidreemy

Hi All

I have a Q plz. In tincan which activity type best describes a course units. For example, If I have a course containing 5 units and I want to track to learner's progress by measuring the units he completed. Which "ActivityType" better describes these units.

Thanks

gamahachaa
@gamahachaa
@khalidreemy this really depend on what you define as unit. the tincan registry lists all the basic activity types. For something usable in a curriculum and that contains different sub-content "http://adlnet.gov/expapi/activities/course" fits well. Look at https://registry.tincanapi.com/ to get inspired.
Marco Dal Colle
@marcodalcolle_twitter
Hi @khalidreemy, if you want some help for statement design, take a look here: https://www.linkedin.com/in/nicolamastrorilli
schwibach
@schwibach
Hello, I would like to send my students from M365 to a test consisting of various H5P elements (hosted on a wordpress or moodle site, maybe) and ultimately analyse the results in M365. So, I'm wondering if I need to go through an LRS like LearningLocker to get the results from H5P and send them as an HTTP Post to M365, or if there is an easier way to accomplish that.
Khalid Yousif
@khalidreemy
@gamahachaa , @marcodalcolle_twitter
I mainly use "http://adlnet.gov/expapi/activities/course" as a reference but I couldn't find an "ActivityType" that matches a "Unit" of a course.
gamahachaa
@gamahachaa
@khalidreemy then http://adlnet.gov/expapi/activities/module "A module represents any "content aggregation" at least one level below the course level. Modules of modules can exist for layering purposes. Modules are not content. Modules are one level up from all content." sounds like it no ?
Khalid Yousif
@khalidreemy
@gamahachaa . you are right. I think I will use "module"
Haakon Meland Eriksen
@HaakonME
The Learning Locker Aggregation API documentation does not say anything about the MongoDB pipeline stages $merge nor $out. How do I get a LearningLocker dashboard to show the result of an aggregation done using the API?
gamahachaa
@gamahachaa
Hi there. The docs says Node version should be V10. I am upgrading my servers and V10 is deprecated. Which version are you guys running ? any one has experience running LL with V12 ?
Haakon Meland Eriksen
@HaakonME
Previous dialogue about xAPI profiles suggest these are not supported as something you can apply using LL directly by pointing to a file or URL, or it may be supported under an older term of "recipes", I am not sure - see http://docs.learninglocker.net/guides-inserting/#create-recipes . Yet Analytics LRS Pipe at https://github.com/yetanalytics/xapipe/ seems to be a way to specify an existing xAPI profile and then filter incoming or outgoing / forwarded statements through it to ensure the data conforms to the xAPI profile. This would be a handy improvement of LL, which could be applied to prevent none-conforming statements from entering LL, during processing inside LL as part of a pipeline, or during export / forwarding. Is something like it planned or in the works?
Haakon Meland Eriksen
@HaakonME

I need to filter by seconds and minutes, rather than hours.

It can be done in the code view of the Data > Source > Query Builder / Statement Explorer by dropping $dte from the query, e.g. the below query, which gives statements within the same second at millisecond precision.

Are there plans to include minutes and seconds in the UI?

Also, it is a bit of dark art to find out how $dte really works, as it seems to not like short periods of time. The same query as below with $dte will briefly flash a pink error message. Z-index is wrong, so partially obscured at the top of the UI.

I found the error message in the browser console: ' Cast to date failed for value "Invalid Date" at path "timestamp" for model "Statement" '. I suspect the reference to "model" is down to the Mongoose model, and the short time interval fails validation?

Is there some documentation of what $dte and other operators allow?

{
"$and": [
{
"$comment": "{\"criterionLabel\":\"A\",\"criteriaPath\":[\"timestamp\"]}",
"timestamp": {
"$gte": "2021-12-29T11:28:27.922Z",
"$lt": "2021-12-29T11:28:27.999Z"
}
}
]
}

Finally, is there a way I can ask for NOW or currentMoment minus some timeframe, e.g. NOW minus 10 seconds? Thank you for any help on this. :-)

Aleksandra
@leksi37
Hi, I am running a docker instance and I haven't run it in a while. When I am trying to login I get 504 gateway timeout and the following error is shown: There was an error communicating with the login server.
I am running v2.8.2. I am getting the following from nginx docker instance: nginx_1 | 2022/01/08 12:15:25 [error] 8#8: *26 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 172.19.0.1, server: localhost, request: "POST /api/auth/jwt/password HTTP/1.1", upstream: "http://172.19.0.7:3000/api/auth/jwt/password", host: "localhost", referrer: "https://localhost/login"
I am sorry, I am new with xAPI and lrs and I am not sure how to solve it..
Aleksandra
@leksi37
I fixed it by following the following steps:
  1. docker-compose down
  2. Clear the $DATA_LOCATION directory
  3. docker-compose up -d mongo and then observe docker-compose logs -f mongo, and wait until it gets ready
  4. docker-compose up -d to bring up all the other services
    https://github.com/michzimny/learninglocker2-docker/issues/7#issuecomment-490565792 .
Dominik Rosehnal
@lincore81
Hi. I set up a multiple response survey for a client and successfully tested 1. posting the statement, 2. getting its id and 3. patching metadata on a local LL instance. The client is using enterprise though and I do not have access to their account (only base auth). I can post statements, but I can not get the id I need to patch the metadata: "message":"Privileges not sufficient for this operation" (request/response). Is this something the clients needs to set up in the web client or is the XHR flawed?
Dominik Rosehnal
@lincore81
To answer my own question: The client scope was limited to write access, after enabling read access it works as intended.
Jesus M Bianco T
@jbiancot_twitter
Hi folks, I am running some old Learning Locker v 3.18 or so, and Mongo 3.6. For an upgrade path: can we upgrade to version 4 then 5 then 6, or can we upgrade to a version 6 or 7 more direct approach?
njimkolp
@njimkolp
Hello, We are using Storyline 3.10 on Learning Locker v6.4.0. When the update for Storyline 3.11 was available. Our Learning Locker stopped writing the xAPI statements to the Mongo database. Has anyone else had this issue? Is it how Storyline 3.11 is publishing the courses? Or, do we need to update Learning Locker?
njimkolp
@njimkolp
I have an update. I looked at the changes made to Storyline 3.11. One of the changes was adding a second "identify the launch file". Is there somewhere in Learning Locker that the file is set?
gamahachaa
@gamahachaa
@jbiancot_twitter For Mongo you need to upgrade by .2 version step by step first, then upgrade your node (to 10) then LL with Pm2.
njimkolp
@njimkolp

Hello,

We have Learning Locker v6.4.0 "{"X-Experience-API-Version":"1.0.3","version":["1.0.3"]}". It does not seem to work well with the newest version of Articulate Storyline. Is Learning Locker able to work with bootstrapper.min.js? If so, what version?

torashid
@torashid
Hi Guys, I am trying to set up LearningLocker latest release v7.1.1. I have Node10 installed but while running npm build all getting an error and see most of the packages are deprecated. I need help, can you guys guide me how to setup this?
torashid
@torashid
image -error.png
image (8).png
torashid
@torashid
What would need Node Version to install the latest release 7.1.1 of LearnigLocker https://github.com/LearningLocker/learninglocker/releases
Florian Tolk
@FlorianTolk
Are you sure you are using node 10? It is a fairly old version of nodejs, and has recently been deprecated.
I am in the process of trying to get it to run in a docker container with 12 and am running into the same problem. node-gyp has a number of odd requirements, like make and python being installed.
Robert Kraemer
@numismae
Hi, referring to "Statement Forwarding", is there anything like a "State Forwarding" feature? Or how can states be forwarded to another LRS?