All files in this repository are licensed under Apache 2.0. For a full description of the license click this link.
NAPLAN Integration As A Service.
This is a Golang version of the NIAS open-source components. This version incorporates NAPLAN validation and post-processing functionality, as well as the generic functionality of NIAS.
If you are using NIAS for the purposes of NAPLAN validation or postprocessing, you do not need to build the NIAS application from scratch. Download the latest binary release applicable to your operating system. For guidance on how to use NIAS for NAPLAN, see
- NAPVAL Readme (NAPLAN registration data validation)
- NAPVAL User guide
- NAPRRQL Readme (NAPLAN reporting data UI, GraphQL endpoint and CSV exporter)
- NAPRRQL User guide
- NAPRRQL CSV and Reporting Output Outline
- NAPCOMP Readme (Audit of registration data against reporting data)
NIAS is a suite of open-source components designed to enable as many different users as possible to quickly and easily solve issues of system integration using the Australian SIF Data Model for school education.
The product was developed by harnessing existing open source middleware components, including the NATS streaming queues.
Over these components, two main modules have been built:
- The SIF Store & Forward is an opinionated message queueing system, which ingests very large quantities of data and stores them for delivery to clients. XML messages on the system are assumed by default to be in SIF. The SSF service builds an education-standards aware REST interface on top of the NATS message queues, and provides a number of utility services to ease SIF-based integrations.
- The SIF Memory Store is a database that builds its internal structures from the data it receives, using RefIds both as keys to access stored messages, and to map out a network graph for SIF objects.
The software also uses these components as architecture to support Test Administration Authorities' interaction with NAPLAN Online:
- napval validates NAPLAN registration records, in either SIF/XML or CSV format.
- naprrql post-processes the NAPLAN results & reporting dataset, including generating local reports, and aligning Year 3 Writing results to the codeframe.
This product delivers the following high level functions:
- Validation of NAPLAN CSV and SIF XML files for student registration
- Generation of CSV and Fixed-File reports for use by Test Administration Authorities based on the NAPLAN Results and Reporting database (RRD)
- Generation of writing extracts for NAPLAN, for external marking
- Markup sanitisation of writing extracts
- Filtering of the NAPLAN RRD XML file
This product only acts as middleware. It does not provide integration with the back ends of products (although this can be provided by combining NIAS with the SIF Framework). It is not intended to deliver business value to end consumers, or to compete with existing market offerings.
The product does not incorporate authentication or authorisation.
-
The product is released with the SIF-AU 3.4+ XSD schema, and validates against it. Other schemas can be used, but may require re-coding of some modules.
-
The key-value database in the product needs to be able to process a large number of open files; if you will be running NIAS on Mac/Linux with production-scale numbers of students in the results & reporting file, you will need to increase your
ulimitsetting; we recommend 2048.- For Mac, see https://gist.github.com/tombigel/d503800a282fcadbee14b537735d202c
- For Linux,
ulimit -n 2048
- go version 1.8+
go get github.com/pwaller/goupx
Manually unzip file directory in the zip go-nias and put it in c:
Then run gonias.bat file from the nias subdirectory
Install golang. Making sure you have a working
$GOPATH etc (common mistake is to skip the src/ directory after $GOPATH)
In $GOPATH/src/github.com/nsip do:
git clone https://github.com/nsip/nias2
./build.sh
Separate executables are run to process NAPLAN data; see NAPVAL readme, dev-nrt readme, dev-nrt-splitter readme
See also dev-nrt readme, NAPVAL readme
unit_test_files/
- Contains files used in unit/integration testing of the code. Currently restricted to CSV files input into the validation module.
build.sh, build/, release.sh
build.shbuilds all NIAS2 executables for the various supported platformsbuild_napval.shbuilds the NAPVAL applicationbuild_naprrql.shbuilds the NAPRRQL application
The builds for each platform are built inbuild/{PLATFORM}/{APP}/.
- Mac OSX
- Windows 64 bit
- Linux 64 bit
bin/
Contains the scripts and batch files to start and stop running NIAS. These are copied into the builds for each platform:
gonias.sh: launch NIAS (OSX, Linux)gonias.bat: launch NIAS (Windows)stopnias.sh: stop NIAS (OSX, Linux)stopnias.bat: stop NIAS (Windows)
tools/
Contains utilities for managing NIAS2
release.gocreates a new release of the NIAS2 code on github.
app/
Contains the code to run executables within NIAS as single pieces of software, along with necessary configuration files, and test executables. The configuration fields are copied into the binary distributions of NIAS.
napval/: NAPLAN Registration records validationnaprrql/: NAPLAN Results and Reporting post-processingnapcomp/: Comparison of students between NAPLAN Registration and NAPLAN Results and Reporting (included innaprrqldistribution)
napval/
NAPLAN Registration records validation
naprrql/
NAPLAN Results and Reporting post-processing
xml/
Golang structs corresponding to SIF XML objects relevant to executables. Currently limited to NAPLAN-specific objects.
lib/
Library code shared between all executables:
config.go: read configuration files (in toml format)encoding.go: encode NIAS messagesnats.go: create NATS connections and process chainsniasmessage.go: message wrapper typesserver_connections.go: standardised NATS server access moduleservice.go: service interface to handle message requeststransactiontracker.go: transaction status reporting structure