How to load SCORM file from CDN in Moodle - moodle

I am working in LMS application using Moodle 3.8. We are having training with SCORM files. SCORM files are having 500 MB. We are facing issue in loading time when 30k+ user accessing the application. TO improve the performance. Planning to move the SCORM files in CDN. Is there anyway to access the SCORM from CDN? How to configure the course file from CDN?
Regards
Girija

SCORM does not work across different domains as it tries to invoke methods on the parent window/frame. You would need a wrapper frame residing on the CDN's domain that forwards API calls e.g. using window.postMessage but this is not supported by Moodle as far as I know.

Related

Using my own server for uploading files in Outsystem

I am currently working in outsystems. I have an interface there which allows end users to upload files. But its getting uploaded to the Outsystem server, is there a way I can upload files to my own file server
I couldn't find any setting where I can change the server
It all depends on your file server I guess. Personally I upload files to a OneDrive using Microsoft's graph API. With this I am able to send binary data that I've uploaded via the OutSystems widget to this specific OneDrive. This works in traditional, reactive and mobile for as far as my experience goes.
Also, as mentioned before, the FileSystem extension from the forge is generally pretty useful for this kind of stuff.

How to integrate scorm player with Moodle database

I am building a website that uses Moodle APIs,basically a Moodle wrapper. I have gotten to the point where I need to play scorm files. How do I integrate the scorm files to send the tracked data to moodle database using the original moodle source code.
I have tried writing some code that tracks the course but its not sufficient and robust enough, therefore not capturing the course progress very well.
What are the specific moodle source files I need to point to from my front end to capture the course progress?
Here are a couple options:
Option 1 - Quick way to commit SCORM-compliant data to Moodle if the SCO is already loaded in Moodle: mod_scorm_insert_scorm_tracks web service. Here's info. from the Moodle Tracker: Detail on mod_scorm_insert_tracks
The SCORM course/content must already be loaded to Moodle so it has a SCO ID in the Moodle DB - data passed is related to a specific SCO ID.
Option 2: If needing to build a SCORM-compliant course/content experience from scratch:
High level, the content/course experience is typically developed as a SCORM-compliant content package and programmed to communicate SCORM-compliant course progress data to the LMS via the SCORM API. The SCORM API is provided by the LMS (Moodle in this case) and is in javascript.
Your course/content needs to include standard SCORM files like imsmanifest.xml and must be loaded as a SCORM package to Moodle. Once it is loaded to Moodle, you'll have a course ID/SCO ID/etc. that you can use when passing data for it.
The data sent from the content experience/course must conform to the SCORM data model for whatever version of SCORM you choose to use (e.g. 1.2, 2004, etc.)
Here's a good summary of the data models by version, which also gives a good sense of what you can track: SCORM data models
Moodle supports 1.2 and most of 2004: Moodle SCORM support FAQ
The content/course must include code to correctly locate and use the SCORM API JS object(s) that is used to pass/receive data.
The SCORM JS objects are provided by the page in the LMS used to play back the course/content (sometimes called "the player" or "player window"). In Moodle, this is handled by mod/scorm/player.php.
The player.php file in Moodle loads the SCORM JS API when the page is rendered, making it available to the course. The course file then calls the objects/functions/etc. that pass the data.
The exact API object your content will use to send/receive data depends on the SCORM data model version you are using. Content/courses can pass data that is compliant with any version of SCORM, but must use the API object for that version in order to ensure the data is handled correctly.
In Moodle, the objects are available in mod/scorm/datamodels/ - there are also PHP files in there which get/set data and are called by player.php depending on the version of SCORM used by your content.
Here's additional detail on the runtime API: SCORM runtime detail
Alternately, there are course authoring tools like Storyline, Captivate, Elucidat, Lectora, etc. which package content to automatically communicate SCORM data. These are great for many types of content.
Good luck with it!

How to host audio files for a web application

I'm planning to make web application which allows users to upload music/audio files and host them etc, i'm wondering what the best method would be to go about this, i have used cloudinary in previous projects for image hosting but nothing for audio.
What do companies like Soundcloud use if not there own service which i am assuming is the case.
What would you recommend? It will be vital when it comes to building a scalable and reliable service so I don't want to go into this project uneducated.
ps. I will be using meteor and mongodb to build the application.
I'd recommend getting started with edgee:slingshot in your app. It's much lighter on your Meteor server since uploads and downloads go straight to the storage system. There you have several choices including S3, Google Cloud Storage, and Rackspace Cloud. You could also use CollectionFS but slingshot seems architecturally better suited to this class of problem.

Free web servers to publish csv files or other types of data

I am writing an App that requires some kind of outside input which I want the user to be able to update sporadically.
Are there any free web services where one can upload a file e.g. CSV and update it at any stage and then access it via iOS?
What about dropbox? Its free for small amounts and has a desktop and IOS client. It also has a fairly decent API.
http://www.dropbox.com

How do I sync an offline web app (HTML+JS+CSS) with my server?

Do I need to implement my own sync methods in order to make an offline web app (html+css+js) stay up to date with changes made on the server (and viceversa)? I'm using MySQL on the server side.
I read Two-way sync between iPhone application and web application with some pointers but I think they're talking about native applications when they mention CFUUIDCreate and I wander if this is possible for the Web.
Does someone have some code to share or maybe can point me in the right direction?
Thank you!
P.S.: I hope my english is not that rusty ;)
To store static contents on the client-side, as Jethro Larson said, the Application Cache Manifest is the way to go to cache the static contents of your website (HTML, CSS, JS and images).
To handle dynamically generated contents offline, you can use javascript templates. There are several solutions for this.
To sync the two databases, there is a project called persistence.js (persistencejs.org) which is a javascript library which offers a unique API to work with WebSQL databases, Local Storage, etc. They have a plugin for this library called persistence.sync (persistencejs.org/plugin/sync) which syncs the remote database with the server's one. It consists of POST and GET requests to a specific url that you can configure (for example yourapp.dev/sync). They have an example back-end written in node.js and here is one for Rails. It's simple to understand and persistence.sync is well documented.
Look at the offline cache:
http://www.webreference.com/authoring/languages/html/HTML5-Application-Caching/
http://www.google.com/search?q=offline+cache+html5
http://www.slideshare.net/search/slideshow?q=offline+cache