Tracks
This page describes tracks, which are the foundation of Instruqt.
A track is a series of challenges that help learners achieve a learning goal. Where a challenge is an interactive track step a learner needs to understand to achieve the learning goal of the track. For example, your learning goal for a track could be that learners learn how to work with a web app. In that case, a track explains the steps in working with the web app.
Because learners have to solve the challenges, tracks are a hands-on learning experience. For example, a challenge could be that a learner enters and saves data in an app.
Tracks are the foundation of the Instruqt platform and run in a sandbox. Learners play tracks using only a web browser. And track plays have a flow like this:
- 1.The sandbox in which the track runs is created.
- 2.The first challenge is created and shown to the learner.
- 3.The learner reads the challenge instructions or watches an introduction video.
- 4.The learner solves the challenge, which can be followed by these optional steps:
- 1.A pre-defined script checks whether the learner solved the challenge.
- 2.The learner gets feedback on whether the challenge is solved.
- 5.The following challenge starts or the track finishes.
Building tracks
- Self-paced tutorials
- Virtual instructor-led training
- Demos and POCs
- Workshops and events
- Customer and partner onboarding
- Internal training
- Knowledge sharing
Tracks can contain the following resources:
- The Sandbox has one or more hosts like containers, virtual machines or website services with which the learner interacts.
- One or more Challenges the learner has to solve.
- Scripts that set up the sandbox hosts to bring them to a certain state. You can define scripts for:
- Setting up the host
- Cleaning up the host
Check these topics in Concepts for more information about the track resources:
🌐 Web UI
💻 Instruqt CLI
In the Web UI, a track appears as:
%20(3).png?alt=media&token=7b8b2893-9e79-48c4-bf9d-258d07ea7bbc)
In Instruqt CLI, a track appears as a set of directories with configuration files:
sandboxcontainer
├── 01-creating-a-directory
│ ├── assignment.md
│ ├── check-container
│ └── solve-container
├── config.yml
└── track.yml
Each track has a main directory. In this case,
sandboxcontainer
. And every challenge has its own subdirectory with several configuration files. In this case, the 01-creating-a-directory
with the configuration files in lines 3 to 5.You specify a track by setting the track properties. For example, the
description
property lets you specify the track description shown to the learner. You set the track properties through the Web UI or Instruqt CLI. For Web UI, you will find the properties as fields on the Track details page. For Instruqt CLI, you will find the properties in the configuration file track.yml as in this example:
YAML
slug: mytrack
id: baekpuxv2m5g
type: track
title: MyTrack
teaser: Get started quickly with just one container-based sandbox host.
description: Get started quickly with a container-based sandbox host. Choose a container
when you need a fast, lightweight Linux system.
icon: https://cdn.instruqt.com/assets/templates/ubuntu.png
tags: []
owner: myteam
developers:
maintenance: true
show_timer: true
skipping_enabled: true
timelimit: 3600
idle_timeout: 600
The following table shows the track properties:
🌐 Web UI field list
💻 Instruqt CLI property list
Field | Description | Type | Required |
---|---|---|---|
Track name | The title of the track. | string | Required |
Track URL | A URL-friendly identifier of a track.
You can use a slug only once in the same team. | string | Required |
Track icon | The URL of the icon that is to be shown with the track.
The size of the icon should be 48x48 pixels. | string | Optional |
Description | A full description of the track. | string | Optional |
Time limit | The maximum time (in seconds) allowed to complete the track.
Setting a track time limit will override any time limits set per challenge.
If you don't set a time limit here, you can add time limits to each challenge. The total of all challenge time limits will be the time limit for the track. | int | Optional |
Tags | A list of strings that represent tags associated with the track. | list | Optional |
In maintenance | Whether the track is in maintenance.
When true , the track can only be started by track developers. It remains visible to other users but will show a maintenance banner. | boolean | Optional |
Show countdown timer | Whether to show a timer during the track play.
When true , this timer will show how long the learner has left before the track playtime expires. | boolean | Optional |
Allow skipping | Whether to enable learners to skip challenges. | boolean | Optional |
Time out idle users, limit | Configures the amount of time in seconds a learner can idle for before the track will be stopped automatically.
2 minutes before the timeout is reached, the learner will be presented with a warning and a prompt checking if they're still there.
The value must be at least 300 (5 minutes) | int | Optional |
Show your product behind assignment | This will make it so your assignment will float above the content of your tab. | boolean | Optional |
Starting position | Your assignment can be shown on the left or right of the screen | | Required |
Starting width | You can set your assignment to a specific width of the screen | | Required |
Property | Description | Type | Required |
---|---|---|---|
title | The title of the track. | string | Required |
type | | string | Optional |
slug | A URL-friendly identifier of a track.
You can use a slug only once in the same team. | string | Required |
icon | The URL of the icon that is to be shown with the track.
The size of the icon should be 48x48 pixels. | string | Optional |
teaser | A short description of the track, which is shown in the track list. | string | Optional |
description | A full description of the track, which is shown in the track details. | string | Required |
timelimit | The maximum time (in seconds) allowed to complete the track.
Setting a track time limit will override any time limits set per challenge.
If you don't set a time limit here, you can add time limits to each challenge. The total of all challenge time limits will be the time limit for the track. | int | Optional |
level | The expected experience level of the learner for the track:
• Beginner
• Intermediate
• Expert | string | Optional |
tags | A list of strings that represent tags associated with the track. | list | Optional |
id | Server-generated (do not edit) | string | Optional |
challenges | A list of challenges that belong to the track.
Only applicable to legacy/version 2 tracks. | list | Required |
owner | The slug of the team that owns this track. | string | Required |
developers | A list of developers that can maintain the track.
Developers are called Track authors in Web UI. | list | Optional |
maintenance | Whether the track is in maintenance.
When true , the track can only be started by track developers. It remains visible to other users but will show a maintenance banner. | boolean | Optional |
show_timer | Whether to show a timer during the track play.
When true , this timer will show how long the learner has left before the track playtime expires. | boolean | Optional |
skipping_enabled | Whether to enable learners to skip challenges. | boolean | Optional |
idle_timeout | Configures the amount of time in seconds a learner can idle for before the track will be stopped automatically.
2 minutes before the timeout is reached, the learner will be presented with a warning and a prompt checking if they're still there.
The value must be at least 300 (5 minutes) | int | Optional |
Assignment display options | These settings are only available through the UI.
Support for CLI coming soon | | |
Last modified 1mo ago