nrt

package module
v1.0.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 15, 2024 License: Apache-2.0 Imports: 18 Imported by: 0

README

dev-nrt

NRT (Naplan Reporting Tool) is a command-line utility that processes results data from the NAPLAN online testing platform.

NRT takes one or more results-reporting-dataset (often called RRD) xml data files generated by the online platform, and processes them to produce a variety of csv reports that are easier for most users to work with.

There are some 60+ reports available from NRT, and the scope of reports that are run can be configured by the user, either by the use of command-line flags passed to the nrt application, or by editing the report configuration files that can be found in the /config folder of the distribution.

NRT is intended as a direct replacement for the existing nias2 naprrql application.

NRT aims to process results data faster than naprrql, and depending on configuration and input volume typically performs 6x to 50x faster.

basic usage

Download a pre-built binary distribution for your platform (Windows, Linux, Mac), from the releases area of this repository:

https://github.com/nsip/dev-nrt/releases/latest

Unpack the downloaded zip file, and you should see a folder structure like this:

/NRT-Mac-v0_0_1 
	nrt(.exe)
	├── config
	│   	└── internal
	└── testdata

in the folder is

  • the nrt executable (nrt.exe if on windows),
  • a subfolder called /config that contains the configuration files for each report produced by the tool
  • a subfolder called /testdata that has two sample zipfiles of results data
    • n2sif.xml.zip; is the same sample file as accompanies nias2 naprrql
    • rrd.xml.zip; a much larger results file (100 schools, 5k students)

nrt expects results data files that it will process to be placed into an /in folder.

You can either create the folder yourself, or do the following:

Open a terminal window at the folder containing your nrt distribution.

Run nrt for the first time as

> ./nrt

for Linux/Mac or

> nrt.exe 

on Windows

this will produce the following message:

--- Ingesting results data:
2021/02/08 17:06:22 No results data *.zip *.xml.zip or *.xml files found in input folder in

but the folder layout of your installation will now look like this:

/NRT-Mac-v0_0_1 
nrt(.exe)
├── config
│   └── internal
├── in
├── kv
└── testdata

the /in folder has been created as has a /kv folder the app will use internally.

Copy either of the xml.zip files from the testdata area to the /in folder in order to have them processed by nrt.

(nrt will process multiple files so you can copy both if you wish to, it just means processing will take longer).

nrt does read zipped xml files, or you can unzip them (if you do so remember to delete the zipped version or nrt will process both). However, nrt is not able to open password-protected zip files.

now if you invoke nrt again, it will ingest and process the data file/s.

typical output as follows:

| => ./nrt
--- Ingesting results data:

Processing XML File:	(in/n2sif.xml.zip)
   0s [===================================================================>] 100%

	5190 data-objects parsed

2021/02/08 17:11:56 Results data ingest took 1.038s
--- Data stats:

	NAPStudentResponseSet: 1061
	NAPTestScoreSummary: 154
	NAPTestItem: 2310
	NAPCodeFrame: 22
	SchoolInfo: 10
	StudentPersonal: 250
	NAPTestlet: 174
	NAPTest: 22
	NAPEventStudentLink: 1187



--- Running Reports (-QA reports):

 Simple reports:                       0s [====================================================================] 100%
 Codeframe reports:                    0s [====================================================================] 100%
 Event-based reports:                  1s [====================================================================] 100%
 Student-based reports:                1s [====================================================================] 100%

2021/02/08 17:11:59 Report processing took 2.642s
______________________

First nrt ingests the data, and presents a set of summary statistics, then it proceeds to run the core report set, which are the most commonly used.

The indicator '(-QA reports)' shows that qa reports are not included in this set, this changes to (+QA reports) if qa reports have been requested by the user.

All generated reports are output to the /out folder which nrt creates. The folder structure after a full run of data ingest, and all reports would look like this:

| => 
/NRT-Mac-v0_0_1 
nrt(.exe)
├── config
│   └── internal
├── in
├── kv
├── out
│   ├── item_printing
│   ├── qa
│   ├── system_reports
│   └── writing_extract
└── testdata

A description of the various command-line options to configure the reporting output of nrt is available at any time by invoking ./nrt --help:

| => ./nrt --help

Usage of ./nrt:
  -allReports
    	runs every report including qa reports
  -coreReports
    	run core naplan reports (on by default) - (alias for n2 -reports flag)
  -forceIngest
    	always ingest data from files in the input folder (default true)
  -ingest
    	halt processing after data has been ingested
  -inputFolder string
    	folder containing results data files for processing (default "./in/")
  -itemLevel
    	include item-level reports - very detailed (alias for n2 -itemprint flag)
  -itemprint
    	include item-level reports - very detailed (alias for nrt -itemLevel flag)
  -qa
    	include QA reports in results processing
  -report
    	run core naplan reports - (alias for nrt -coreReports flag)
  -showProgress
    	show progress bars in console for report processing (default true)
  -skipIngest
    	don't ingest data again, move directly to processing of reports
  -writingExtract
    	(alias) run writing extract reports; generates writing inputs for marking systems
  -writingextract
    	run writing extract reports; generates writing inputs for marking systems

The -itemLevel/-itemprint flags (aliases of each other, for compatibility with naprrql command-line) are of particular note.

These flags invoke the most performance-heavy reports in the collection, they are output to the out/item_printing folder.

These reports are at the highest level of granularity, producing very large numbers of rows (event-based) and columns (student-based). Event-based generates a row for every item seen by every student in every testlet in every test. Student-based creates a row with columns per student containing personal information, event information, every and every test, testlet and item seen by the student, typically around 1400 columns for each student.

These reports were created through user demand, but if not explicitly needed, performance is far better without them.

Command-line flags can be used together in whatever combination helps most.

The -writingExtract/-writingextract flags if used on their own will result in only the writing extract reports being run. These are typically needed before the full rrd dataset is produced as they export writing results for ingest into external marking systems.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Option

type Option func(*Transformer) error

func CoreReports

func CoreReports(core bool) Option

indicate whether the most-used common reports will be included in this run of the transformer

func ForceIngest

func ForceIngest(fi bool) Option

Even if an existing datastore has been created in the past, this option ensures that the old data is removed and the ingest cycle is run again reading all data files from the input folder. Default is true.

func InputFolder

func InputFolder(path string) Option

the folder contaning RRD xml data files for processing

func ItemLevelReports

func ItemLevelReports(ilevel bool) Option

indicate whether the most heavyweight/detailed reports will be included in this run of the transformer, including these has the largest effect on overall processing time

func QAReports

func QAReports(qa bool) Option

indicate whether qa reports will be included in this run of the transformer

func Repository

func Repository(repo *repository.BadgerRepo) Option

the key-value store cotaining the ingested RRD data

func ShowProgress

func ShowProgress(sp bool) Option

Show progress bars for report processing. (The progress bar for data ingest is always shown) Defaults to true. Reasons to disable are: to get clear visibility of any std.Out console messages so they don't mix with the console progress bars. Also if piping the output to a file the progress bars are witten out sequentially producing a lot of unnecessary noise data in the file.

func SkipIngest

func SkipIngest(si bool) Option

Tells NRT to go straight the the report processing activity, as data has already been ingested at an earlier point in time

func Split added in v1.0.5

func Split(split bool) Option

indicate whether trimmer/splitter will be run on its own in this run of the transformer

func StopAfterIngest

func StopAfterIngest(sai bool) Option

Make transformer stop once data ingest is complete various report configurations can then be run independently without reloading the results data Default is false, tranformer will ingest data and move directly to report processing

func WritingExtractReports

func WritingExtractReports(wx bool) Option

indicate whether the writing-extract reports (input to downstream writing marking systems) will be included in this run of the transformer

func XmlExtractReports added in v1.0.0

func XmlExtractReports(xml bool) Option

indicate whether the XML reports (output of ingested files back as XML, with redaction) will be included in this run of the transformer

type Transformer

type Transformer struct {
	// contains filtered or unexported fields
}

the core nrt engine, passes the streams of rrd data through pipelines of report processors creating tabluar and fixed-width reports from the xml data

func NewTransformer

func NewTransformer(userOpts ...Option) (*Transformer, error)

func (*Transformer) Run

func (tr *Transformer) Run() error

Ingest and process data from RRD files

Directories

Path Synopsis
cmd
nrt
processing of data withitn the context of the codeframe, e.g.
processing of data withitn the context of the codeframe, e.g.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL