Skip to end of metadata
Go to start of metadata

Lesson Builder is now called "Lessons", for version 1.4 and later. Internally the term Lesson Builder is still used, but the user-visible name is Lessons. This is easy to put back, in tool/src/webapp/tools/sakai.lessonbuildertool.xml.

Lessons is a way to structure content. Use cases include

  • Online courses, which often want to structure material by unit or week. It must be easy to link to quizes and assignments, and to handle common types of content.
  • Online training, which needs to define sequences of material.
  • Online certification, which needs to require certain items to be done, and sometimes to limit access until prerequistes are met.
  • Import of publisher content or content from other systems that support Common Cartridge (import only at the moment)

NOTE: Lessons is now in the main svn tree. The copy in contrib is not being updated, and will be deleted.


1.4 - stable, releases with Sakai 2.9. If you use 1.4, use the most recent code from the 1.4.x branch. Make sure you read the README for instructions on database updates between versions. 

1.5, stable, branch lessonbuilder-1.5.x-fall2013/ - some new features, mostly group ownership for student pages, inline questions, rubrics for student content. Fall production for Rutgers and uMich.

10.0 - development. a few new features, project Ketai, some fixes that require design changes. will be in Sakai 10.0. Lessons version numbers have now by synchronized with Sakai's.

Older versions

1.2 and 1.3 are of historical interest only. Please don't use them.

Building for 2.8.x

For 2.8 and 2.8.1 I recommend 1.4.x or 1.5.x-fall2013. To build on 2.8, edit the main pom.xml file. Change the parent version to match your sakai system, and in the profiles section, move activebydefault from the 2.9 or 2.10 profile to the 2.8 profile.

See the README file for  more detailed installation instructions.

Database upgrades

For new copies, I strongly recommend starting the system with auto.ddl enabled. That will create tables for you. However hbm/src/ddl/mysql/lessonbuilder.sql (equvalent for other databases) has SQL statements that should create the tables. I consider auto.ddl preferred.

If you are upgrading:

To 1.4.x: 

In components/src/ddl/mysql or equivalent, use the necessary scripts,depending upon which version you are coming from: pre29-to29.sql if you're using Lessons before it was released with 2.9, for-2.9.2.sql for versions before 2.9.2, and for-2.9.3.sql for all older versions.

To 10.0:

hbm/src/ddl/mysql/lessonbuilder-2.9.0-trunk.sql and equivalent for other databases will take you from the version released with 2.9.0 to the most recent. Some statements may not be needed, and thus may complain about duplicate index or thngs already existing, depending upon what version you come from. If you're coming from something older than the version released with 2.9.0, also use pre29-to29.sql.

New features in 1.4

  • Rutgers is now using 1.4 in production. New features include 
  • Support for YAFT
  • Assignment 2, Mneme and YAFT are in a separate directory, which is not used by default. That makes building with unmodified source safer (although the code is intended to build and deploy correctly on any system – it checks for optional tools dynamically).
  • Add website - upload ZIP file content
  • Comments tool - allow students to comment, optionally anonymous
  • Student content tool - allows students to create pages, optional; other students can comment, content and/or tool can be anonymous
  • User and site-wide style sheets
  • Common Cartridge Import
  • BLTI interface (requires 2.9 version of BLTI)
  • Moved many of the buttons into a pulldown, to reduce clutter
  • Icons for items
  • Support for 2.9 NEO portal
  • Calls to things source as the resource tool is now done in popups, except for mobile devices. (This is disabled by default in 1.4. Set lessonbuilder.use-new-popups=true in
  • Hold and release dates for subpages
  • References to other tools are fixed up when a site is copied
  • Common Cartridge import is now certified with IMS. paperwork has been done for versions 1.0 and 1.1, but it actually supports 1.2. This required adding some additional error checks.

For details on differences between the versions, and up to date recommendations on what to run, see the release notes:

Get the source from

For specifics on the differences between release and trunk, and various tags, see RELEASE-NOTES in the source. Note however that RELEASE-NOTES do not document every edit to trunk. It documents edits to branches.

Source is currently set for Sakai 2.9 (version 1.4) or 2.10 (trunk). See the README for more information. It should work easily with 2.8 and later, and 2.7 should be possible.

New features in 10.0

  • Inline questions: multiple choice and short answer.
  • Student content pages can be associated with groups as well as individuals. IF they are graded, the grade goes to all members of
  • Rrubrics for student content, so students can evaluate each other.
  • Project Keitai: support for /direct to get contents of pages
  • Toolbar reorganized to put all content tools in "Add Content" pulldown, gear icon for Settings
  • Support for embedded Audio/video has been redone to support HTML5, to use joembed to support many video sharing sites, and all embed codes
  • Multimedia and text items can have prerequisites
  • Redesign of CSS by University of Michigan to make customization easier.

Major features

  • The tool is intended to be present more than once in a site. Each unit or week of a course might be a separate instance, appearing in the left margin.
  • The primary interface for faculty is a page editor modeled conceptually on the Sakai 3 page editor. You can insert any combination of widgets. These include web content (with the usual FCK editor, with CK editor supported in the 1.1 branch and later), resources (either as separate windows or inline in an iframe), and individual tests/quizes (Samigo and Mneme), assignments, and discussion forum topics (from Message Center Discussion or JForum, YAFT in 1.3 and later). We try to use an appropriate player for all multimedia content types. You can reorder pages using a drag and drop reorder tool from the Fluid project. There is introductory documentation builtin. As of rev 72921 you can create and edit quizes, assignments and forum topics from within Lesson Builder. (The tool is called in an iframe.)
  • For tools we don't support, if you can invoke them by a URL, you can insert it, and we'll do the Javascript magic to adjust the size of the iframe properly.
  • In addition to these pages that appear in the left margin, additional pages may be created. These can be either subpages or "next" pages. (The difference is whether breadcrumbs show a return to the current page or whether the new page replaces the current one.) You can also choose to add links to existing pages. You can use a button instead of a link. The most common approaches will probably be (1) a link to a subpage, (2) a "next" button at the bottom of a page going to a new page, (3) a Moodle-style dispatch, with buttons for several pages, labelled as answers to a question. It is possible to create a set of numbered pages at once, e.g. pages called "Week 1" through "Week 20"
  • It is possible to set items to be required. A page is marked as finished when all required items have been done. For tests and assignments you can specify a minimum score.
  • It is possible to set items so that they are not accessible until all required items above them have been done.
  • Lesson Builder is group-aware. Students will not see quizzes, assignments and forums that are associated with groups in which they are not members. Once an object has been added to Lesson Builder, it is safest to make changes in groups through Lesson Builder. Resources will be made group aware shortly. (This feature is not in 1.2.)
  • It is possible to hide an instance, and to release on a specific date. Currently we can't hide individual pages, but only the set of pages that appear as a single entry in the left margin. When an instance is hidden, you can optionally hide all the tests, quizes and assignments that appear in the instance. (To be compatible with the way we do selective release, this is done by creating a group for the quiz or assignment, initially with no one in it, and making the quiz/assignment released to that group. When an item is marked as not available until other items have been completed, the same group is used, with people being added to the group as they complete the prerequisites.)
  • Scores can be reported to the gradebook. The configured value is reported if the user has completed the page, otherwise 0.
  • We think the tool is fully internationalized. Spanish and French localizations are included.
  • I have made an attempt to make it accessible, but I'd appreciate reviews by actual users of assistive technology.

For 1.3 and later:

  • You can allow students to comment on pages, and you can allow to create their own pages, on which other students can comment. Pages and comments can be set to be anonymous. In 1.4 and later student pages and comments can be graded.
  • The ability to upload content in a ZIP file.
  • You can supply a style sheet. System administrators can also supply a default style sheet.
  • Import of content from Common Cartridge. Import of resources, pages, quizes (Samigo and Mneme), question banks, Forum topics (Message Center; jforum not done yet). Note that page will not link directly to quizes, because of the way Samigo and Mneme are built. In Samigo quizes become "core assessments." You should review the assessment and then publish it. In Mneme assessments become question pools. (They have no API to import assessments.) You'll need to create an assessment from the pool and publish it.
  • Basic LTI support integrated.


In general you should be able to build it and restart Sakai. In addition, you'll need to add two permissions to the roles you want to use it:

  • - to all roles
  • lessonbuilder.update - to maintain roles and any others that you want to be able to change the content.

For more information, see the README file in the source.

If you have auto.ddl enabled you don't have to do anything with the database to install Lessons. If you have auto.ddl disabled, and in some upgrade scenarios, you will have to create tables and/or do a few upgrades. See the README.

There are some patches to Samigo that will be needed for best effect before Sakai 2.8.1, although you'll have no trouble trying it out without them.

There are some patches to site-manage and the kernel to allow site copy to work smoothly. Most of these are present in 2.8.1 and later.

jQuery buttons don't work in Firefox 2. I've done a browser-specific fix that fakes the buttons. I haven't found any other issues with FF 2. I test on the latest FF, but a quick check of 3.0 looked OK.

Requires IE 8 or later, for fairly recent Firefox and Safari.

Screen shots

Screen shots reflect the code as of Sept 6, 2010. (Icons changed recently. Only the main page and student view are updated.)

Creating a page and adding content

Screen shots

The following image shows the main page editor. The student sees the same thing without the edit buttons and tool bar. Obviously you won't put all these things on the same page. This shows several things:

  • A text box, using FCK
  • Two subpages (Camden and New Brunswick)
  • A discussion topic (we support jForums and Message Center)
  • A multimedia thing, in this case an Iframe for a web site. Can also be any standard movie type, flash, etc
  • A Moodle-style choice that will lead students to two different pages. There can be more text after the buttons.

The following image shows a JForum topic called from a lesson. We support Assignments, Samigo, JForum and Message Center forums. Of course other tools could also be inserted with a URL.

The following image shows one of the dialogs for the Edit button. The buttons almost all create dialogs in the same style.


Lesson Builder is being built at Rutgers by

Eric Eric Jeney - program design and implementation. (Eric is no longer actively developed Lessons.)
Charles Hedrick - specifications, help with design and implementation

If you have questions, please send them to Charles Hedrick.

  • No labels