Skip to contents

The objective of rqti is to establish a robust and stand-alone R library tailored for crafting exercises and exams in adherence to the QTI v2.1 standard directly from R. Users have the flexibility to render the exercises either locally (using qtijs) or integrate them seamlessly into the OPAL learning management system. Our primary audience comprises instructors specializing in research methods and statistics who seek to harness the full capabilities of R while aligning with the QTI standard. In particular, instructors utilizing OPAL will find our package especially advantageous, as it capitalizes on OPAL’s robust API.


The rqti package is available on CRAN, ensuring easy installation and access to its features:

Quick start

In RStudio, navigate to File -> New Project and choose rqti Project as the project type. Customize the settings as needed; select ‘YES’ for ‘Create Templates’ to generate Rmarkdown templates for various task types. Once the project is created, open one of the templates (e.g., gap/gap.Rmd) and click Knit. You should see a preview in the RStudio viewer (or a new browser window if you are not using RStudio). Experiment with other templates to explore supported features.

To comprehend how to create sections and tests, refer to the main.R file in the working directory. More information on this topic can be found here: Sections and Tests.

To incorporate additional templates, create a new RMarkdown file. Choose From Template and select one that starts with rqti: …. The simple templates include minimal parameters, while the complex ones demonstrate how to use additional settings. Click the Knit button, and you should observe a rendered exercise in the viewer pane. While the templates are generally self-explanatory, refer to other articles for in-depth details about specific exercise types:

To integrate various exercises into a test, refer to: Sections and Tests

For users of the learning management system Opal, explore the Opal API.

General workflow

The fundamental workflow with the rqti package involves the following steps:

  1. Create exercise files.
    1. Start by generating an Rmd document. You can either initiate from scratch (specify type in the yaml section) or leverage Rmd templates beginning with the prefix rqti.
    2. Develop a section titled # question and construct your interactions (gaps, choices, etc.). Utilize rqti helper functions where applicable.
    3. Specify additional attributes in the yaml section. Detailed explanations for all types are available in the Articles menu on this website (top).
    4. Choose a previewer: Either qtijs (knit: rqti::render_qtijs), for local rendering, or the learning management system Opal (knit: rqti::render_opal). Note that Opal usage requires prior setup: Opal API.
    5. Verify if your task appears as desired. Make adjustments until you are satisfied.
  2. Create sections and tests based on your exercise files.
  3. Write the test (xml) to disk according to the QTI standard and upload the test file to your learning management system.
  4. Download results data from your learning management system and analyze them with the rqti package for statistical insights.

Each step involves specific rqti functions, with the most useful ones illustrated in the following diagram:

Basic workflow to create exercises and tests with rqti

The most effective way to grasp the workflow is to create a simple exercise, such as “Single Choice,” as demonstrated in this article.

Individual articles provide detailed descriptions for each exercise type:

Support and Bug Reports

Should you find any missing features or encounter issues, please do not hesitate to inform us via email or open an issue on GitHub. We will offer support until the project’s funding concludes in September 2024. Following that, we will maintain a stable, usable version, with support for new features provided as time permits.