I'll prefix this with: I don't much about SCORM.
I'm the maintainer for a training video delivery platform. It shows videos but doesn't test users. Clients of the company can download SCORM modules (that is a zip) which contains a link to the video on our server.
Some clients are now asking for reporting so that they know their LMS users finish watching a video. At the moment, they just know if the user loads the module but nothing else.
As for working out if the current user has watched the film, I can do that. It's just a bit of javascript to interact with the video player. Fine.
But how do I communicate that event back to the LMS? Do I post it to their server? How do I know where it is? What if it's behind a firewall? Do they poll my server? In both cases how do I identify a user from the LMS in a way that when the results go back, they line up in the LMS?
What is the standard way of a learning management system finding out the completion status of an external module like ours?
The SCORM API is what you're looking for. It enables active communication of completion status (among many other things) between the SCO (your module) and the LMS.
At runtime, a discovery algorithm (written in JS) is used to locate the API handle, which is just a JS Object. You, as the content developer, work with that API handle, and it does all the client-server communication, so you don't have to. :-)
You can find a technical overview of how to locate and use the SCORM API here.
I'm more of the "learn by example" type, so I'd also recommend downloading one of Rustici's golf (pause) courses. Check out their Basic Run-Time Calls Course to see how they are accessing and interacting with the SCORM API. They'll be doing exactly what you're looking to do.
The official SCORM docs can be found on adlnet.gov, and they have an entire book dedicated to the RTE, but I doubt you'll need to dive that deep.
Good Luck!
Related
Hope all are doing well,
I wanted to know if the below scenario can be achieved.
We have a SCORM package that we wanted to have it on our Own web server and specify the link
to it in LMS(blackboard,moodle).
When User logs into LMS, it should perform a Single sign on (with LTI) and show the scorm content
from our web server.
Can SCORM in our web server access details of logged in User(UserID,Score details etc..).
I have searched and found some details below
http://scorm.com/scorm-solved/scorm-cloud-developers/how-to-get-started-with-the-scorm-cloud-api/
but this api is not free.
Your own web server utilizing another, then dealing with user credentials, assignments, and launching of courseware would be a tough one. These systems essentially have a Runtime API that manages the student attempt SCORM Interacts with.
There are a few parts of SCORM support that you'd obtain from Rustici's SCORM Engine that are actually worth paying for.
100% SCORM Compatibility (1.2, 2004)
I believe they have a .NET and Java implementation (uncertain about PHP) that you can plug into your platform. If you don't use those languages I'm sure they'd be grateful to answer any questions you have on further support.
You're covered on importing PIF/ZIP Content Aggregation Model packages. Even the robust ones.
SCORM Cloud hosting could negate the need for the SCORM Engine (#2)
The main reason you can't find much free in this space (with the exception of moodle) is mainly that is a epic amount of work, and another main reason you find many platforms with mixed support of SCORM. There is also the legacy space, and aged antiquated stuff that also comes to that end.
In the end you have the Runtime, Content Package Parsing, and if your using SCORM 2004 all the sequence and navigation rules. Those 3 things don't sound like much, but they are an exhausting amount of work from scratch.
Hope that all made sense,
Mark
I'm in the early stages of designing an RSS app, and I'd like to include syncing to an online RSS feed service as a feature. Most such apps make use of Google Reader's feed/syncing features, but Google is now moving sync out of its Reader service, and also its API remains undocumented. Are there any alternatives to Google Reader that offer online syncing of feeds with a desktop client, and which have a documented API?
There should be an answer to this question, but I don't think there is.
I think we got lazy. Maybe it's time to roll up our sleeves and get to work.
What about Newsblur?
http://www.newsblur.com/
Don't know anything about them, but they appear to have a reasonable facsimile of a product in this vein.
Here are their API docs. http://www.newsblur.com/api
They are a subscription service, but you can have up to 64 feeds for free.
A couple suggestions, the original web RSS Reader BlogLines is still around, though now under new management since MerchantCircle purchased the service late last year.
The APIs maybe still functional:
Or they may be deprecated/turned off, haven't tried the APIs myself.
If BlogLines API is no longer around a better bet is LiveDoor Reader (along with it's open sourced version is called FastLadder).
Livedoor Reader is a Japanese service, but FastLadder pages and documentation are available in english and Japanese.
Downloadable Open sourced versions for running on your own machines be they windows, Mac OSX, or Linux from here
There's also a FastLadder Google source Code page.
There are RSS apps for both IOS and Android that sync with LiveDoor Reader/FastLadder instances. Just search for LDR in their respective app stores.
I don't think there's a ready answer yet, but I think Brent Simmons has a rough spec of what could be a start:
http://inessential.com/2010/02/08/idea_for_alternative_rss_syncing_system
Basically, imagine a server that manages feed subscription lists and captures annotations for feed items. Those annotations for items would be things like (un)read, starred, shared, saved, deleted, or whatever else an app might want to attach to a feed item. It should stay simple and not fetch or process feeds themselves - other apps and libraries do that fine already.
Feedlooks looks close too with no ties to Google Reader - not sure about the API, though
http://www.feedlooks.com/
Years back, I'd used a self hosted Open Source app called Gregarious - It appears to have gone missing recently.
Here's the Gregarious Archive from 2010
http://web.archive.org/web/20100925221312/http://gregarius.net/
Another contender for the do-it-yourselfer might be utilizing SimplePie.org
Short Version (tl;dr):
Is there an open source or commercial engine that provides embeddable collaboration and microblogging functionality?
Long Version:
I am creating a niche application that has need of this functionality and do not want to reinvent the wheel. The following are must have requirements:
Data API only. My application is SaaS, and I want to build the functionality around the data. This eliminates most of the offerings out there (facebook, salesforce chatter, yammer, present.ly, teambox)
Does not require use of a built-in front end. I really just want an engine that will take care of the storage and events, and gives me a means of querying. Requiring the use of a specific front end renders it useless for embedding into my app. This eliminates everything else I have found (status.net, Yonkly, Jaiku)
Beyond standard updates and replies, can handle custom events. For example, if I were embedding this into an logistics application, I could have the engine handle events like "shipped", "received", and "cancelled".
Beyond this, there are several nice to have features that a framework would have:
Should not require a specific platform or server technology to run (i.e. something like a RESTful API would be nice)
Should be message based so that commands that affect its state can come from any source
Should encapsulate its own storage so that external resources are not necessary (i.e. no database needed)
Should have pluggable extendable UI components/widgets for web, mobile, and desktop clients
Should have search and retrieval APIs available for many languages/platforms
It seems that someone out there should have this already, or at least be in progress with it. Please point me in the right direction.
Since nobody had any answers and continued research did not find anything, I created a solution on my own called Collabinate. Updates can be found on Twitter, and the project itself is hosted on GitHub.
I am working on a website and this website contains games and this games will need to submit score to the website so the website will handle saving the user game score in the database.
So i am asking about the standards and common techniques to do this communications between the website and the flash games, is it better to let the flash files call javascript functions or call server side code? i have no idea how this can be done
Note: i can ask the flash games creator to edit the flash files to call some functions.
Also may be 'not sure yet' i will need to send from the server to the flash some variables.
It would be better for you if you create some javascript api that the game creators can hook into. Then it is entirely up to you what you do with it: ajax calls to webservices springs to mind.
This would protect you from having to learn Flex or Action script and if you can get the agreement of the game developers on the api, then you have abstracted this interface and your implementation in the browser will be de-coupled from what happens in Flash.
Well, the way I'm used to it, is that firstly, you design an API for the service the game developers should use. Obviously, you have to actually implement the service. :)
The next step is to provide an SDK, that further encapsulates the API and makes working with it easy, bridging the semantic gap between the API and the client, and sparing the developers the dull work of marshalling calls and parsing return values.
You can provide the SDK for use as a runtime shared library, so that you can provide bug-fixes and other interal changes without requiring recompiles and updates.
The reason, why I cannot really agree with Daniel is, that I don't really see a benefit in introducing an intermediary layer. It is just one more source of errors and security issues. From my experience, the most dramatical changes I know to APIs is deprecation of calls, change of call signatures or structure of returned data. Since you're writing this from scratch, it is very likely to happen.
In conclusion, the best practices for me are:
a well designed API
documentation
an SDK
developer support
greetz
back2dos
I have been assigned a task to find a decent spell checker (UK English) preferably the free one for a project that we are doing.
I have looked at Google AJAX API for this. The project contains some young person's (kids less than 18 years old) data which shouldn't allow exposing or storing outside the application boundaries. Google logs the data for research purpose that means Google owns the data whatever we send over the wire through Google API. Is this right? I fired an email to Google regarding the privacy of data and storage but they haven't come back. If you have some knowledge regarding this please share with me.
At this point our servers might not have access to external entities that means we might not be able to use Web API for this over the wire. But it may change in the future. That means I have to find out some spell checker alternatives that can sit in our environment and do the job or an external APIs.
Would you mind share your findings and knowledge in this regard. I would prefer free services but never know if you have some cracking spell checker for a few quid’s then I don't mind recommending to the project board.
Technology using ASP.NET 3.5/4.0, MVC, jQuery, SQL Sever 2008 etc
Cheers,
Naren
GNU aspell might be suitable for your needs.
Yandex provides one. It is mainly targeted to Russian-speaking auditory, but it contains a dictionary for the English as well.