Proof Of Concept proves SCORM packages can be rendered without the need for a monolith server side rendering LMS. Everything in only Client Side in the browser.
- Registers simple Service Worker
- This app send to Service Worker ZIP url to download
- Service Worker Downloads the ZIP, uncompress the content and analise the imsmanifest.xml file
- Service Worker returns to host information about SCORM version and entrypoint
- Service Worker registers a
fetch
register which returns files from ZIP
self.addEventListener("fetch", async (e) => {
/* return file from ZIP */
});
- The app creates a
iframe
with prefix from Service Worker - All SCORM package files are served from ZIP with Service Worker
flowchart TD
App[Web Appliction] -->|Registers| SW[Service Worker]
App -->|Submit ZIP URL| SW
SW -->|Downloads & uncompress| ZIP
SW -->|Returns SCORM data| App
App -->|Creates| Iframe
SW -->|Registers| FetchListener[Fetch Listener]
Iframe -->|Get files from| ZIP --> |Though| FetchListener