Back to TOC

User Manual

Content - Courses, Classes, Agents and Activities

While Veracity Learning LRS is primarily a Learning Record Store for xAPI data, we do have a few basic Learning Management System features. Because xAPI an replace some functions previously handled by an LMS, you might no longer need one at all! Still, you will want a place for learners to find and take content. Veracity Learning can host your content, and manage Learner accounts. These features are relatively basic, but may serve for some simple use cases.

Table Of Contents

Each of these "content" types has an associated edit page. You can find them on the left side menu, or from the "All Management Tools".


An Agent is an account that exists within each LRS. They allow you to create credentials for a person to log into your LRS's Learner Portal. Here, they can view content you've listed for them, self-assert performance data, or review their own data.

Agents and xAPI

An Agent in Veracity Learning LRS is closely related to an xAPI Agent. In xAPI, an Agent is an identifier that is used within a statement to assert the "subject" part of the subject, verb, object structure. In xAPI, an Agent can be an individual or a group. In Veracity Learning LRS, an Agent is linked to a single xAPI Agent (which cannot be a group). This link is used to map xAPI data statements to logins on the Learner Portal. It is vital that these identifiers match correctly. The administrator could expose data for the wrong person by incorrectly entering these values.

The system assigns an xAPI Agent identity to a new Veracity Agent automatically. You can manually override this value to link other xAPI data to the account.

Creating Agents

You create Agents from the "Agents" page under the "Content" menu. On this page, you'll see a listing of all Agents, plus some options to create new ones.

To search for agents, click the expand icon under the title.

This will display a form where you can search Agents by several fields. Click Search to search. To reset and view all Agents, click "Clear".

To create a new Agent, click the large green "Create Agent" button. This will display a form where you can enter details about the Agent.

This form presents a few fields. Fill these out, and click "Create New Agent". You'll return to the Agents page, and a new Agent will be present. You can also create multiple agents at once by uploading a spreadsheet. Click the "Upload CSV" tab to place the form in the CSV upload mode. This mode allows you to choose a Comma Separated Value (CSV) file that contains information about multiple Agents. If you need an example CSV file, click "Download a sample CSV file". This fill will show you the proper column names required.

Agents must verify their email address. Because Veracity Learning does not yet send emails for new Agents, you'll need to verify the email address manually. To do this, once the Agent is entered, find the "Edit" icon in the upper right of the agent panel, and choose "verify email."

Discovering Agents from xAPI

If you already have a body of xAPI statement, Veracity Learner LRS can scan these statements and discover Agents. Clicking "Discover Agents" will launch a background process that reads over all xAPI statements and builds Agents. The system does its best to discover first and last names, email adresses, and actor values. You'll have to manually fill in additional details.

Linking to an actor

If you left the "Actor" field in the create Agent form blank, the system will assign one. The actor value will look something like this:

    "name":"Rob Chadwick",

This is the value of the Actor field that should be used in the xAPI when making statements about this Agent. You can change this value to any valid xAPI Agent JSON structure.

Managing Agent passwords

The edit menu in the top right of each Agent also allows you to set or reset the Agent password.

  • Get Password Reset Key - a unique code is generated. When the Agent logs in with this code, they will be logged in then prompted to reset their password. Because Veracity Learning LRS does not store the plaintext of the password, the administrator is not able to recover it to send the user. This method allows the user to set up a password that the administrator never sees.
  • Set Password - The administrator can also set the password directly to some value. Again, we don't store the plain password, so if you are creating one for a user, be sure to sent it to them before entering it into the system.


An Activity in Veracity Learning LRS is a piece of content that a learner can experience. Activities can be used to both add additional metadata to xAPI Objects, or to list content for the Learner Portal. Like Agents, Veracity Learning LRS Activities are linked to xAPI Activities by an ID. Since the xAPI specifies a single "id" value for xAPI Activities, this link is simpler than for Agents: it's just a single value instead of a JSON object.

You can create Activities from the Activities page. The activities page lists all the activities in this LRS, and allows you too search for or edit them, or create new ones.

Like Agents, you can show a search form by clicking the expand button.

This will display a form where you can search by several different fields. Click "Search" to search, or "clear" to clear the search and return to a list of all Activities.

Creating Activities

You can create new Activities in several ways.

Linking to External Activities

Activities can be remote resources. These resources live on a different server from the LRS, and can be displayed in a popup window, a bit like a traditional LMS. To register an external link as an Activity, click the large green "Register a Link" button. This will show a form like this:

  • ID - This is the identifier that is used to link up this activity to xAPI statements. When we see an xAPI statement where the object.id value is this value, Veracity Learning LRS understands that the statement is about this Activity. If you leave this value blank, we'll assume it is the same as the Launch URL. Due to the xAPI specification, this must by a fully formed URI.
  • Launch URL - This is the web address where the content can be found. We assume that browsing to this location will begin the learning activity.
  • Title - Used only for display purposes.
  • Description - Used only for display purposes.
  • Public Key - If the content supports xAPI Launch in the encrypted mode, place the public key for the content in x.509 format here.
  • Max Session Length - if the content supports xAPI Launch, the session will be closed after this time, even if the content does not explicitly terminate.
  • Supports xAPI Launch - If the content supports xAPI Launch, check this box. xAPI Launch is an ADL specification for an LRS to make a handshake with a Learning Record Provider(LRP) in order to exchange credentials.
  • Supports Tincan Launch - Similar in purpose to xAPI Launch, but somewhat less secure
  • *Track xAPI Session - Even if this content does not support either launch service, record xAPI statements when it begins and ends. The Learner Portal will create xAPI statements when the content is launched and when the content is closed by the learner. Use this only if the content is not xAPI aware.
  • Activity Type - additional metadata about the xAPI Activity. Veracity Learning LRS can use this value to make some display decisions.
  • Launch Type - Open in a popup window by default. We can also redirect the user in a new window. Popup is required in order for the the system to "Track xAPI Session", since we can't monitor the Agent's browser window when they leave our site.
Upload a ZIP File

If you have content, but have nowhere to host it, then you might want Veracity Learning LRS to serve the content for you. You can upload a .zip archive file, and we will serve the file contents. Data uploaded as a ZIP file counts against the data storage allocation for the LRS.

An uploaded archive can also include an XML document that describes the title and description. Many authoring tools can export a course to a zip file which automatically includes this metadata. Veracity Learning LRS will detect this, read the file, and set up the values for you. We can also detect if an uploaded package supports Tincan Launch.

Uploaded files are removed when you delete the associated Activity from the Activities page.
To upload a zip file, choose the green button called "Upload A ZIP File". This will display a

All required configuration values for an Activity are generated automatically when a file is uploaded. The file upload size may be restricted by the webserver.

Discovering Activities from xAPI Statements

If the LRS has xAPI statements, Veracity Learning LRS can scan them to discover Activities. The system will do its best to discover the title, description, ID and activity type. These Activities are treated as external links.

Activity Display

The panel for each activity shows important information. The icons let you know how popular and frequently used the Activity is. You can also see the number of files and the amount of data storage used.

You can even upload a thumbnail image from the upper right menu. This image will be displayed on the Learner Portal.


A class is a group of Agents. Currently, it serves only to help scope the Class/Course dashboard, but in the future will serve basic LMS functions. You manage classes from the "Classes" page under "Content" on the left side menu.

Create a Class

To create a new Class, click the green "Create a New Class" button. This will open a simple form in a dialog box. When you accept the title and description, a new panel will appear.

Editing a Class

Agents can be placed into multiple classes, but each Agent can only be in a Class once. To add an Agent to a Class, click the icon next to "Total Agents". This will pop up a search dialog.

You can enter a search string, or browse a list of all Agents in the LRS. Once you've located the Agent you'd like to add, just click on them. This will add the Agent to the Class.

Changes to a Class must be saved. Whenever there are unsaved changes to a Class, a green "Save" button will appear. Click this button to make the changes permanent.

You can also assign an instructor for the class. This has no function at present, but in the future will allow that Agent some administrative functions from the Learner Portal. Click the icon next to "Instructor" and follow the same process as adding an Agent.


Classes can be assigned Courses. These Courses will be displayed to the member Agents as assignments on the Learner portal. To add an assignment, click on the icon next to "Assignments". This will open the Assignment Editor dialog.

You can click on "Find Courses" to find Activities from this LRS. Click on the Course card to add it to the assignment list.

When you select a course, it will appear in the assignments list. You can remove it by clicking the green "x" in the upper right. Once you've assigned or removed Courses, click "Ok" to accept the changes. Like adding Agents, you must save the Class.


Like Classes, Courses currently only exist to inform the Class/Course dashboard. In the future, Courses will help scope what Activities are presented on the Learner Portal. You can manage Courses from the Courses page under "Content" on the left side menu.

Courses are a sequenced collection of Activities. To create a new Course, choose the green "Create Course" button on the Courses page.

This will pop up the create course form. While "title" and "description" are for display purposes only, there are a few other interesting fields.

  • ID - this is the unique ID for the Course. It corresponds to the xAPI contextActivities.parent.id value, and therefore must be a full URI.
  • Title - for display purposes only.
  • Description - for display purposes only.
  • Activity Type - Corresponds to the xAPI contextActivities.parent.definition.type value, and therefore must be a full URI.

Click OK to create the new Course and return to the Course list. Your new course will be shown in a panel, and will contain no Activities.

To add an Activity, click the large "+" icon.

The plus icon will change into a choice of ways to add an Activity. This give you the choice of three methods for adding an Activity to the Course

From left to right, the options are

  • Plus - Register a new external link.
  • Upload - Upload a new .zip file of content.
  • Browse - Choose an existing Activity.

Registering a new external link, or uploading a .zip file, both open the same forms you can find from the Activity page. When you complete the form, the Activity will be created, then added to the Course.

The Browse button opens a dialog that should look and operate much like the "Find Courses" dialog from the Class page. Like Classes, Courses need to be saved after they have been edited. Click the green "Save" button at the bottom of the Course.

You can remove an Activity form a Course by clicking the little green "x" in the upper right. Note that this does not delete the Activity, it only removes it from the Course. To delete the Activity permanently, delete it from the Activities page.

Likewise, you deleting a Course does not delete the associated Activities. You can delete a Course by clicking on the icon at the upper right of the Course panel, then choosing "Delete"