I have an internal LMS created and it is pretty open to any content type. More and more people are moving away from traditional SCORM/traditional e-learning and towards blended content.

So now a typical course instead of being authored e-learning, is simply web content. The LMS let's authors add a course and as many lessons to that course as they want. The lessons are super flexible and allow any media and the creation of your own web content.

We have had great feedback from the users. The content is clean, it doesn't open in some java or flash window, and it is updated on the fly. The only negative is that users want to know which lessons that they have completed so that they can see their progression of a course.

Now we have that ability. Normally it is done via a "quiz" at the end of each lesson - which just may be 1-2 questions. But as the learning is becoming more bite sized it doesn't make sense to quiz after every lesson.

So how do we mark user progression? Right now we simply have a button at the bottom of the page that says "Mark Lesson Complete". I find that it isn't overly intuitive unless you are used to the workflow on the site.

There is no way for me to mark this automatic because some pages might be a few paragraphs of info, others might be diagrams, others might be a series of videos. They are whatever they are. Only the user really knows if they have viewed the info.

Them clicking on the page should mark that page complete because from a course perspective it takes away what (very) little onus we put on the user to learn the information.

Is there a better way to do this? Better wording than Mark Lesson Complete? A way to style the button to make it clear?

5 Answers 5


In my opinion you should trust your users and let them mark something as complete themselves. In our learning platform we have something called Space with several chapters, chapters can be just markdown text, quiz or assignment. The quiz is completed when you get a 100% score and the assignment needs to be peer reviewed. But the markdown chapter can be completed by clicking a button at the bottom of the page.

Users are in your system to learn something, if they choose to 'cheat' and click the complete button when they haven't actually read it then it's their own responsibility.

So your solution is really good. You could of course use javascript to time how long someone is on the lesson and calculate if that would be enough to read the lesson. But that is also never perfect, some people speed read, some people read really slow, some people leave the lesson open and just go away.

Finally you could of course just mark it complete as they go to the next lesson.

Our flow is like this:

First time you see it: normal

Hover: hover

Click: click

Hover: hover

these examples are from http://www.learningspaces.io


You might think about injecting a little intelligence into your lesson delivery interface. Instead of forcing a user to click a button, you could simply detect that the user has been on the page past a given threshold of time, or that the user has scrolled through at least 90% of the page. I'm not going to get into implementation, but triggering an AJAX call to your website upon meeting these conditions would be fairly trivial.

  • We already have that implemented. Basically implementing it on all pages was heavily vetoed because the user would for instance be marked complete if they scrolled down to bottom of the page and did nothing. Or if timed (which we use for single video pages and a few other examples) which could be them opening the page and doing something else yet never looking at anything. Really it is for the user. If they want to skip the content that's fine - and mark it complete - they will be burnt by a formal test eventually.
    – blankip
    Commented Aug 20, 2014 at 18:30
  • Heavily vetoed by whom? Your content creators? If so, it sounds like you might want to place more control of marking lessons complete in their hands. I don't know how technical these people are, but if you are using something like Markdown you might be able to rig up a construct that lets the lesson creators define "done". Commented Aug 20, 2014 at 18:31
  • Vetoed by management. Both internal learning management and the groups that are being trained. The idea is that we are capturing what users have felt they have done. We would have to have a rather complex script that somehow ensures a user has viewed something to enable the "done" automatically. Remember the most important functionality is that the user sees it is done or not so that they can navigate through their learning progression. Yes from a management perspective we will report on "done" lessons but not really by individual user.
    – blankip
    Commented Aug 20, 2014 at 19:01

Learning is a very demanding task and you have to enhance your design, so that users will notice the button and remember to click it.

My suggestion is the following :


download bmml source – Wireframes created with Balsamiq Mockups

  • I do like the idea of forewarning the user to click the button. From a design perspective it might be hard to integrate into our pages - given that some would have this "warning" and others wouldn't and ultimately the authors would have to put it in - or choose a template that has that. It is an idea to be considered.
    – blankip
    Commented Aug 21, 2014 at 13:41
  • 1
    @blankip Consider combining this answer with a small "recently viewed lessons" box on an overview page. This box shows lessons that users have visited, but that haven't yet been marked Complete. This serves as a second, more general reminder, as well as an easy way to find which lesson they stopped at.
    – Duroth
    Commented Aug 22, 2014 at 13:03

How do users get to the next lesson? Isn't selecting "next" an indication that they completed the lesson - as far as placemarking / bookmarking goes? Users can then see an indication (thermometer, segmented, whatever) showing how far they've gone. The quizzes that you have can show if they know the material up to point.

  • Well that works in some cases but our system is pretty open. So you could be on a lesson and hit next and that might take you to a variety of places. It depends on how you got to the particular content - whether it be search, a pathway, direct link.
    – blankip
    Commented Nov 19, 2014 at 16:38
  • Just to understand - the lesson plan is NOT linear (user goes from lesson 1.1 to lesson 1.2, etc... but instead may jump around based upon his needs?
    – Mayo
    Commented Nov 19, 2014 at 16:47
  • The lesson may be on its own, part of a linear progression, or part of a content set (with no formal order). We just want the user to confirm that they did/know the page. Also if just using "Next" I would be afraid that someone might come and want to browse what they need to do and then find that they have already done it.
    – blankip
    Commented Nov 19, 2014 at 18:13

In a bookmarking system for unordered sets, users only really have two things they need in order to orient themselves:

  1. What have I already seen / Have I already seen this?
  2. What was I looking at last.

Focusing on the problem: "What have I already learned?" is probably a step too far. So long as you tell the user this is content they've already been presented before, they'll know if they've properly learned it by whether or not they understand the material.

The key thing is to make sure that they can tell what is completely new material, what is old material for reviewing, and what is the material they are trying to learn right now.

Those should be needs you can meet with what you know already.

For 1, assuming your users are logged in, you know if they've been shown any given lesson page. So you can just mark them as "seen" in your interface.

To meet 2, you can add a prominent control to your log in/ course selection userflows to return them to the last thing they were looking at.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.