learninglocker / learninglocker Goto Github PK
View Code? Open in Web Editor NEWLearning Locker - The Open Source Learning Record Store. Started in 2014.
License: GNU General Public License v3.0
Learning Locker - The Open Source Learning Record Store. Started in 2014.
License: GNU General Public License v3.0
At the moment we are including the latest dev builds, however, when we release v1.0 - our first stable release - make sure all the packages we require are stable versions, not latest dev.
Hi Couple of cut and paste errors I have noticed lines 756 and 766 both have $$context I think should be $context,
also validateactor fails if objecttype is not set
Where controller methods have validation requirements, move out of the controllers and into the model.
From what I've seen, other LRS provide the endpoint address with a slash on the end. For consistency we should do the same. So at learninglocker/public/lrs/xxxxxxxxxxxxxxxx/endpoint 'http://localhost/learninglocker/public/data/xAPI' should be 'http://localhost/learninglocker/public/data/xAPI/'
I have installed Learning Locker on my Xampp machine, I have tried to run the Golf and Tetris samples from the Tin Can Prototypes and am getting the following on both samples 'There was a problem communicating with the Learning Record Store, 400 when using statementid or voidedstatementid, the only other parameters allowed are attachments and or formats'
Problem Steps
Outcome
User2 is added to user1's Learning Locker as an observer role. If user2 then logs in they cannot see any LRS's so doesn't seem like they are really an observer on user1's LRS. User1 can see user2 as a member of their Learning Locker.
Similar to GA goals - provide a mechanism for people to set up goals they wish to track statements / outcomes against.
When a user is deleted, transfer ownership of any LRSs they were the admin of to a super admin.
Check,debug and fix any issues across a range of browsers and devices.
If a user selects password reset, it sends the reset email but the view is not rendering. Instead you just see reminder.sent in the browser.
Hi,
I managed to get Learning Locker installed on my laptop this lunchtime, but I've run into two issues:
Any ideas what I could have done wrong?
Andrew
p.s. these instructions were very helpful: http://williamjxj.wordpress.com/2012/06/04/install-mongodb-with-windows-xampp/
As per the spec
https://github.com/adlnet/xAPI-Spec/blob/master/xAPI.md#retstmts
Hello there,
I am just starting out with LearningLocker. Based off the documentation, I believe it is installed correctly. I installed via Composer and also did the MongoDB installation and PHP client on Ubuntu 12.10 (PHP 5.4).
After the install, I tried to register at the dev URL here...
http://lrs.dev.epimedia.com.au/learninglocker/public/register
...and got the detailed error attached. I am not sure where to go from here. What might be wrong?
Looking at the contextActivities requirements... https://github.com/adlnet/xAPI-Spec/blob/master/xAPI.md#requirements-11
'contextActivities' should be sent in and stored as an array of activity objects. They should then be returned as such. Unsure if we should reject if the relevant contextActivity is not an object (with a required key of ID).
This also has implications on how we query the contextActivities, especially in reference to related_activities.
Super admins can change users' role via the manage user interface. This is not working, instead it just changes the role of the logged in user which is dangerous as it will mean a super admin can lose their privileges.
Where controller methods have validation requirements, move out of the controllers and into the model.
I was wondering if the setSince function should run of stored instead of updated_at? In locker/repository/document/EloquentDocumentRepository
Validation in this sense is Laravel validation of user inputs.
Learninglocker does not accept statements with an empty score raw, score max or score min, but these should be accepted. See #106
Interestingly, it does accept statements where the score values are in quotes. These are rejected by Wax but accepted by Watershed (http://tincanapi.com/public-lrs/). Watershed then returns the statement without quotes. I assume that Wax is technically correct, (I wouldn't expect anything less from @fugu13) but I'd prefer to follow Watershed on this one and accept the statements, correcting the syntax as they come in. Learning Locker currently returns them with quotes, making it incompatible with Wax.
I guess TinCanJS should be validating this, but I also need to update my statement crafter. cc @brianjmiller
When installing Learning Locker, instead of showing the login page, show the registration page.
This was something we had to put in, as a bit of legacy, to just show the presentation of data.
At the moment statements are accepted individually. Build functionality to accept multiple statements.
Hi,
I don't seem to be able to get statements into my LL. I have set up on Ubuntu on Azure and can log in at http://learninglocker.cloudapp.net
I have set up an LRS with credentials but when I try to send statements it isn't working. I tried using the Tin Can statement generator but it says "There was a problem communication with the Learning Record Store. (0 | )
Sorry to ask for help but I have got to the end of my ideas and I can't see where else to go.
Stuart
I would prefer timestamp to be required but as it is not, where it is not present, set to stored.
For POST and GET
I have been trying to send in json, GIFT.json, and I cannot get it to accept the post.
the curl statment I have been using is
"$ curl -X POST --data @GIFT.json -H "Content-Type: application/json" --user c4f548a04f45fbb556267d42e180578f71e49ac6:e98bda84974fe8013e8c83832a34decbad096304 -H "x-experience-api-version: 1.0.0" http://localhost/learninglocker/public/dat
a/xAPI/statements"
and the json is a simple one i found from the standard xAPI standard on the validation.
"{
"id": "12345678-1234-5678-1234-567812345678",
"actor":{
"mbox":"mailto:[email protected]"
},
"verb":{
"id":"http://adlnet.gov/expapi/verbs/created",
"display":{
"en-US":"created"
}
},
"object":{
"id":"http://example.adlnet.gov/xapi/example/activity"
}
}"
The result I get when i try to do the post is a lot of html and some javascript. I am not sure if i am doing something wrong or if the post just isnt working. Ib was able to generate a statement from the site though.
At the moment we are using stored to graph statements. Clearly this is not ideal as graphing should really represent the actual time the learner undertook the particular action and the statement was generated. However, with timestamp only being optional - this is not reliable.
I would love to see timestamp become required in the spec. What do others think?
I get the following error when sending statements from http://garemoko.github.io/tinStatement/tinstatement.htm at http://localhost/learninglocker/public/data/xAPI/ without completing any of the result fields. These statements work with other LRS e.g. Wax
[warning] There was a problem communicating with the Learning Record Store. (400 | {"success":false,"message":"Result must be an array and can't be empty."})
The Result property of the statement is optional, so the statement should be allowed. Adding something to the result allows the statement to be sent successfully (my first statement to LL on my local machine!)
I am attempting to test sending events from Sakai CLE to LL. I have setup my admin user and added a new LRS.
Sakai code currently adds a trailing slash to /data/xAPI so the statement is sent to /data/xAPI/. This results in a 301 because of the .htaccess file.
When I modify Sakai code to not add a trailing slash, I receive a JSON-encoded error that starts like this:
{"error":true,"message":"","code":404,"trace":[{"file":"/opt/learninglocker/vendor/laravel/framework/src/Illuminate/Routing/Router.php","line":1021,"function":"match","class":"Illuminate\Routing\RouteCollection","type":"->","args":[{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}]}
The welcome message says
Thank's for signing up ...
Should be
Thanks for signing up ...
'Cannot send message without a sender address' with a fully qualified email address in the to: input box.
This was on HT2 test environment
I am just trying to send a post but it wont accept it because it is not an accepted version of xAPI. I am not sure if it is something I am missing or what.
This is the message I am getting about the post:
{"success":true,"message":"This is not an accepted version of xAPI."}
This is the json i am trying to send:
This is the curl statement I am using:
curl -X POST --data @GIFT.json -H "Content-Type: application/json" --user 3e2a066b083942d73b358fb104f1661db27a32c3:db9a261b801d000cd289f409e48d6070f543d787 -H "x-experience-api-version: 1.0.0" http://localhost/learninglocker/public/data/xAPI/statements
Allow multiple statements to be POSTED into the LRS via one query
Still need to wire up the ability to turn the Learning Locker API on / off for an install.
The spec requires queries that would include a Statement A (if it had Statement B's stored attribute) to include Statement B with object StatementRef to A (and the rule applies to statements included by the rule), and as far as I can tell this isn't implemented.
Have used the latest updates to successfully run the Tin Can prototypes but cannot run my Lectora content.
Returns [warning] There was a problem communicating with the Learning Record Store (400 | {"success":false,"message":"A statement ID is required to PUT."})
Not sure if I have the right end of the stick but my understanding was that if there was no Statement ID provided then the LRS should generate one.
Replace the hardcoded analytics (and maybe statement explorer) with a one page app. We just hardcoded in a couple of option as a demo - these will all be removed.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.