To use the Hub Testing Integration System (HITS), you’ll need the following:
You’ll also need a basic knowledge of SIF REST:
You need to know how to work with a use case in HITS and access the HITS API
If you get stuck: drop us a line at info@nsip.edu.au
Allow schools to securely provide account information to the classroom assessment product of their choice, and also to allow assessment results records to be published to a jurisdictional data hub.
A third party classroom assessment application connects to HITS as a jurisdiction hub, collecting the relevant information and publishing back assessment results records to the centralised system.
The following diagram gives some wider context around school-level interactions for this use case. Note that not all interactions shown here are covered within this technical use case.
Diagrams the interactions between SIF objects for this use case.
The third party vendor is a current supplier of a classroom assessment product in schools or has knowledge of classroom assessment processes in K-12 Schools.
Vendor has mapped the relevant SIF Objects to their systems:
Here is the XSD schema for SIF 3.4.3, and here are the specifications for the grading objects listed above.
Join
Consume
Process
Provide
Assurance
Join:
Vendor-facing (pull); HITS represents the Jurisdiction and is the data source for seed information.
There are two possible ways to obtain the base information through REST service path calls:
The first assumes that all available students, staff, and classes, in all known schools, will be exposed to the third party application, as a single dump of data. This is the path recommended for HITS assurance, as it is simpler to fetch the data and start generating objects for validation. (This is useful to prove that the objects can be consumed and processed, as HITS end points contain customised test data.)
http://.../SchoolInfos
http://.../StudentPersonals
(linked to school via StudentSchoolEnrollment; equivalent to http://..../SchoolInfo/{REFID}/StudentSchoolEnrollments/{REFID}/StudentPersonals
)http://.../StaffPersonals
(linked to school via StaffAssignment; equivalent to http://.../SchoolInfo/{REFID}/StaffAssignments/{REFID}/StaffPersonals
)http://.../TeachingGroups
(linked to a school via SchoolInfoRefId)The second assumes, more realistically, that only certain teaching groups will be exposed to the application, and that any staff and student records exposed should be accessed via their teaching group. You do not need to obtain data this way for HITS assurance: you will end up getting the same data, since at this stage endpoints are customised for the user. But you should be prepared to consume data from SIF APIs in the following way for production environment where the end point contains more than one school’s data:
http://.../SchoolInfos
http://.../TeachingGroups
http://.../TeachingGroups/{REFID}/StudentPersonals
(Note that the same student record may appear under two different teaching groups)http://.../TeachingGroups/{REFID}/StaffPersonals
(Note that the same staff record may appear under two different teaching groups. )Endpoints may support additional queries for retrieving data - refer to Query-by-example or service paths? for HITS guidance on queries.
The third party app uses the consumed data to produce descriptions of classroom assignments, and records of assignment results. The definition and automation of this process is out of scope of HITs.
Steps:
Prior to providing, the third party expresses return information in SIF/XML:
http://.../GradingAssignments
http://../GradingAssignmentScores
Note: The Activity object could be used instead of, or alongside, the GradingAssignment object to describe a classroom task, and gives much more information about the pedagogical context of the task. However although Activity/Points provides the possible score of the task, SIF does not contain an object giving individual students’ performance against the activity.)
The SIF/XML data sent by the third party app to the Jurisdiction Zone for the app must satisfy the following conditions:
In brief:
Schools currently use third-party classroom assessment locally for formative assessment. The seed information for generating accounts on third party apps is held in the School’s Student Information System (SIS), and is usually exported locally to the third party apps with little security. There is an added complication: both student and class membership data are required as seed information, since classroom assessment is typically assigned to a class cohort by the class teacher. Class memberships can change frequently, imposing an additional burden on teachers who must manually update the third-party tools.
As jurisdictions centralise systems, third party vendors have the opportunity to seed their product/s from a quality-assured data hub using automated feeds, rather than manual updates from the school. This allows changes such as new enrolments and changes in class membership to be reflected promptly and accurately in the third party applications. Third party vendors are also expected to provide information directly back to the centralised system through an automated feed, rather than having the information mediated through the school. This enables not only more secure and efficient transfer of information, but also the possibility of extracting business intelligence across the assessment results of multiple schools stored in the same hub.
This use case shows how third party classroom assessment vendors can connect to a centralised data hub to securely access to the required information and publish back the assessment result records to the centralised data hub.
For the purposes of validation, a new GradingAssignment object is well-formed if:
For the purposes of validation, a new GradingAssignmentScore object is well-formed if it satisfies the following requirements:
<SchoolInfo>
<LocalId>{schoolCode}</LocalId>
</SchoolInfo>
<StaffPersonal>
<LocalId>{eNumber}</LocalId>
</StaffPersonal>
<StudentPersonal>
<LocalId>{id}</LocalId>
<PersonInfo>
<Name>
<FamilyName>{familyName}</FamilyName>
<GivenName>{givenName}</GivenName>
</Name>
</PersonInfo>
</StudentPersonal>
<StudentSchoolEnrollment>
<TimeFrame>{type}</TimeFrame>
<YearLevel><Code>{yearlevel}</Code></YearLevel>
</StudentSchoolEnrollment>
<TeachingGroup>
<LocalId>{id}</LocalId>
<ShortName>{name}</ShortName>
[<SchoolLocalId>{school}</SchoolLocalId>]
[<TimeTableSubjectLocalId>{subject}</TimeTableSubjectLocalId>] <!-- TBD -->
</TeachingGroup>
<GradingAssignment>
<TeachingGroupRefId>{refid}</TeachingGroupRefId>
<GradingCategory>{category}</GradingCategory>
<DueDate>{date}</DueDate>
</GradingAssignment>
<GradingAssignmentScore>
<StudentPersonalLocalId>{id}</StudentPersonalLocalId >
<TeachingGroupRefId>{refid}</TeachingGroupRefId>
<GradingAssignmentRefId>{refid}</GradingAssignmentRefId>
</GradingAssignmentScore>