Local Storage customisation

When using the Local Storage extension, course progress data and text input data are stored between sessions using a browser cookie.

The vast majority of the time, we only really need the extension to store text input between sessions, since the LMS and other course features already do a fine job of tracking and displaying progress.

Having the Local Storage extension store progress data can be quite confusing when:

  • Testing different versions of the same course
  • Updating or re-versioning a course on an LMS

Would it be possible to have a toggle to select whether local storage should track progress or only save user’s text inputs/question responses? It would really help reduce confusion!

1 Like

Update:

Had a problem where the newly published SCORM was still showing all the same user progress data as the previous SCORM file. Duplicating the course seemed to get around that. I guess duplicating the course meant it was looking for a cookie with a different ID and ignoring the old one that was still saved in people’s cache.

Would still be much easier if we could specify what should be saved and what shouldn’t! Sharing incase it helps anyone else…

Yes that’s correct, although the data is stored in Local Storage not a cookie. You can actually see the data it’s storing using the browser’s developer tools if you want - and you can also use that to delete the stored data.

In Chrome it’s under the Application section of the developer tools:

You can clear all the data stored against the current domain by right-clicking and selecting Clear (as shown above) or for an individual course by right-clicking the relevant entry (under where it says Key).

The process is pretty similar for Firefox only it’s under Storage in the developer tools.

2 Likes

Reviving this topic in support of @ruppers suggestion!

Would it be possible to have a toggle to select whether local storage should track progress or only save user’s text inputs/question responses? It would really help reduce confusion!

100%!! Please add this as a feature request.

Or alternatively… please create a means to store text input between sessions without needing to use the Local Storage extension.

1 Like

I’m surprised no one else has jumped on board to support @Ruppers feature request here!!

It is such a pain to have to use the Local Storage customisation. The only use we have for it is to save Open Input (i.e. text) answers between sessions, which is essential for our courses.

Using Local Storage leads to frequent support tickets from less tech-savvy learners complaining that they’ve lost their work… due to switching devices when doing the course, using a shared device/browser and not understanding how browser profiles work, clearing local storage inadvertently, etc.

I would rejoice if Evolve could develop either:

  1. @Ruppers suggestion (Would it be possible to have a toggle to select whether local storage should track progress or only save user’s text inputs/question responses?)
    or
  2. My suggestion (… create a means to store text input between sessions without needing to use the Local Storage extension.)

Please jump on board and build up support for this feature request fellow Evolve users!!

@Matt_Leathes Any word on developments that would help with this issue?

The problem is there’s no way of doing this that would allow it to work in SCORM 1.2 because the storage limitations of that format just don’t allow for it.

As SCORM 1.2 is the 2nd most-used publishing option (after publishing to the Intellum Platform) implementation would therefore only benefit a relatively small subset of our customers. Which is not to say it’s a definite ā€˜no’, more just that we’d only consider doing it if a lot of customers were requesting it - as was the case with Interaction tracking.

As for @Ruppers suggestion - can I ask why you feel this would be beneficial? I obviously understand why he asked for it - and provided a workaround that would help in that specific situation. But I don’t understand how it would help in your situation.

Hi @Matt_Leathes, apologies for the slow reply, I’ve been on leave.

I mentioned in my previous reply:

Let me now if you need any clarification, or if what I’m saying doesn’t make sense! (Or feel free to PM). Appreciate the assistance :slight_smile:

Could it be implemented for other publish formats? I mostly use SCORM 2004

Noticed I’d been tagged in this so I’m back!

First off thanks Matt - that was indeed a workaround. I would say it remains a bit of a challenge though - and this isn’t entirely down to any problem with the extension, nor your solution but perhaps more to do with the realities of the implementation workflow within some of the companies we work with. Here’s the challenge:

  1. SCORM file handed over to client with local storage extension active to store text inputs. It is the second version provided to the client after some changes were requested.
  2. SCORM file upload and testing outsourced to a managed service agency by client (relevant only to illustrate that we don’t always have the kind of access necessary to explain workarounds like the one suggested)
  3. Outsourced testers report the module appears complete before they have actually completed it (presumably the same tester is retesting the new version on the same machine). Reports that it is broken and insists it needs to be fixed. They are unwilling to open dev tools and manually reset anything stating it’s outside of the scope of their role and not part of the testing script.

On occasion, we have also had reports back to say it does not ā€˜reset the progress data’ when the course is ā€˜reset’ on their LMS - by that I assume they mean the topic progress on the menu when they re-open it on the same machine.

In hindsight, I think my request would be to make sure local storage could be affected by an LMS-level course progress ā€˜reset’ and that if used, each new version published were unaffected by the locally stored data associated with the previous version.

Regarding text input mentioned by @ShaunP I have to agree that storing only the text in the suspend data or something like that would be valuable, but I do appreciate the limitations of that suspend data. As for the challenge I was personally experiencing, saving the text is less of the issue than doing something to prevent those testing it getting confused.

1 Like

For Text Input components - yes, this is definitely something I would like to add and will raise though I can’t confirm when this might happen as we’re currently very busy working on big improvements to the authoring UX/UI

For Open Input components - maybe. Although the storage in SCORM 2004 is much more generous, it would still be relatively easy for that limit to be exceeded if we included support for storing the learner’s input for these components.

1 Like

@ruppers thanks for the detailed reply, I can totally see why that would be a problem (and as you know I’m very familiar with the situation you’re describing!)

One possible solution for this specific situation - in the Local Storage extension you might try enabling this setting in the version you send for testing:

I know the help text says ā€˜This has no effect if the course hosted on an LMS’ - but I’m fairly certain the reason for that is because normally when the local storage data is cleared Evolve will use the suspend data from the LMS instead. But if you have reset that, it should be fine… (I haven’t actually tested this though). It might be the case that you have to load the course, click cancel in the bookmarking dialog, close the course then reload it?

Thanks Matt. On a related note - we use Open Input components for short reflections (a few sentences). Would using another component (e.g. Text Area) be more suitable? The documentation does not really describe the differences /use cases for those components well.

The Open Input component is best for that. The Text Area component is really more for use with Logic - it allows for saving the learner’s input to a Logic Variable.

1 Like

I recently encountered a long-standing issue related to the use of Local Storage for tracking course progress, which has been causing challenges for support teams for years. Here’s the scenario:

When a user taking a course contacts support for help, the agent often needs to ā€œact asā€ (or masquerade as) the user in the Learning Management System (LMS) to investigate the issue. However, if Local Storage is used, the agent isn’t taken to the user’s current location in the course. Instead, the LMS references the agent’s own browser storage, starting them at the beginning.

For example, if a user is on page 9/10 of a course and can’t progress to page 10, the agent logging in as the user would have to manually click through 9 pages of content-locked activities to reach the problem. If Local Storage weren’t used, the LMS could pull progress from the database, placing the agent directly at the user’s current location (e.g., page 9/10), saving significant time.

The tradeoff, however, is that without Local Storage, text responses in Open Input components are lost every time a user takes a break and exits the course. This is particularly problematic because customers often revisit courses to study, only to find their previous work gone. Many assume it’s a glitch, leading to frustration and a poor user experience.

A potential solution would be to separate the functionalities of the Local Storage plugin: one for tracking course progress (via the database) and another for saving text input (locally). This would resolve the support team’s issue while preserving the user experience.

@ShaunP so, the way Evolve works when the Local Storage extension is used in a SCORM course is that it tracks the data twice over: saving data to the LMS as it normally would - but also saves a more comprehensive version of tracking data to Local Storage.

When the course is next launched it will try to load data from Local Storage first but, if there’s nothing there, it willl use the data from the LMS as a fallback.

I’ve just tested this myself in SCORM Cloud by launching a course with Local Storage enabled in Chrome, working part of the way through it, closing the course, switching to a different browser and launching the course again - all components I’d previously completed still showed as completed and the bookmarking dialog took me back to the last completed component.

I guess one possible issue is if the support agent has previously run that same course on behalf of a different user they could have Local Storage data stored from that session which won’t match that of the user they are logged in as. To avoid that possibility they should either do a complete ā€˜Delete browsing data’ before launching the course - or start the course in Incognito/Private browsing mode.

2 Likes

Thanks for the response Matt. I think you’ve hit the nail on the head here! This is what is happening. Thanks for the workaround tip. It’s a bit of a pain though - having the option to NOT track progress via Local Storage at all would be great.

Or perhaps replicate the current Local Storage extension, but have it save text input only (not progress) and name it ā€˜Local Text Storage’? A feature idea to consider :slight_smile: