SmarterApp Logo

Source Code

Smarter Balanced has developed the SmarterApp assessment platform to support its own needs and to advance assessment technology worldwide. Each of the following components contains one or more source code repositories located in the SmarterApp organization on GitHub.

Developer Quickstart Guide

Visit the quickstart guide to view the requirements for participating in the development of Smarter Balanced software.
Included in this guide are the best practices for:

Components


TDS - Test Delivery System

Administration and Registration Tools (ART)

Administration and Registration Tools (ART) component enables users to upload and maintain various data pertinent to the SmarterApp system including:

  • Organizational hierarchy
  • Students
  • Accommodations
  • Administrators and Proctors
  • Assessments
  • Eligibility
  • Other functionality including
    • importing of assessments from Test Spec Bank
    • user provisioning and administration
    • integration with Test Delivery, Single Sign On (SSO), and the Data Warehouse
Administrative

The SmarterApp Administrative repository contains administrative scripts for the configuration, installation, maintenance of the SmarterApp system.

CATSimulator

The Computer Adaptive Test (CAT) simulator allows authorized users to configure and simulate tests for a specified number of times for a specified number of opportunities. This software provides a web interface to configure and manage simulations and run simulations asynchronously by spawning worker threads.

Content Uploader

Content Uploader allows the following functions:

  • Upload the test packages to the server file system
  • Publish the content to the Server in appropriate file structure as configured in the itembank db
  • Update the content size
  • Delete the Extraction folder or zip file
Dictionary

Dictionary is the integration of the Test Delivery System (TDS) with the Merriam-Webster dictionary.

Equation Scorer

Application for evaluating answers to mathematics tests.

Item Renderer

Item Renderer is a group of modules that can be used for rendering assessment items during the student tests.

Item Scoring

Item Scoring is a group of modules that can be used for scoring student responses for different item types.

Item Selection Shell

Item Selection Shell is group of modules which can be used for item selection in the Student tests.

Proctor

Proctor includes the following functionality:

  • Create, Pause or Stop a test session
  • Approve or Reject a Student test request
Student

Student application allows users to take tests either as a guest student or using the session ID generated by a Proctor. A student may also log in using a Guest session. If using an actual session ID, a request goes to the Proctor for approval (via the Proctor app). Once the Proctor approves the request, the student can begin the test.

Student Report Processor

Student Report Processor is a JAR which generates student XML reports and submits them to Test Integration System (TIS). It should be set up to run as a background process. It processes records in its queue one by one. The XML reports associated with the test opportunities for those records are sent to TIS and then deleted.

Teacher Hand Scoring System

Teacher Hand Scoring System was designed to be used by Teachers and Proctors of interim tests. It allows for the scoring of student responses and the reassigning of student responses to other proctors or teachers.

Test Delivery System Administration

Test Delivery System Administration allows authorized users to manage students’ test opportunities. This software provides a web interface that allows for the selection of opportunities by SSID and/or Session ID, and apply a variety of functions to those opportunities. These functions include:

  • Extend grace period
  • Extend expiration date
  • Reopen, Restore, Reset, Invalidate, and Change segment permeability of test opportunities
Test Delivery System Data Access

Test Delivery System Data Access is group of shared modules which can be used by other projects to access and manipulate databases. Test Delivery System Data Access contains business level logic of database reads and updates, most commonly perfomed by stored procedures.

Test Delivery System Load Test

Test Delivery System Load Test contains a jMeter test plan used to profile the performance of the Test Delivery System (TDS). The load tests also contain Java code for generating response data for test questions, which is used by the load test, as well as python scripts for generating test seed data.

Test Delivery System Maintenance

Test Delivery System Maintenance component runs daily using cron job. It looks for test opportunities that are not marked completed, their status is not in (“completed”, “submitted”, “scored”, “expired”, “reported”, ‘invalidated’) and their expire timestamp is older than the configured number of hours.

Test Delivery System Regression Test

Test Delivery System Regression Test contains a suite of regression tests for testing various tools, accommodations and features in the Test Delivery System (TDS). The test suite uses the JUnit test framework in conjunction with Spring to load and run the tests. All tests are written in Selenium, as a web browser automation test framework. By default, the regression test framework is built to utilize the Firefox WebDriver for all web interactions.

Test Delivery System Router

Test Delivery System Router is to be used for large installations that need to route Proctors and Students to segmented installations for scalability.

Test Integration System

Test Integration System is responsible for:

  • Receiving a test result from TDS
  • Sending it to THSS (Teacher HandScoring System) for hand scoring of items that require human scoring
  • Receiving item scores back from THSS
  • Inserting item scores into the file received from TDS
  • Scoring the test
  • Sending the scored test to downstream systems via SFT
Test Scoring

Used in the Student component, this module contains classes related to Scorer and ScoringEngine.


RDW - Reporting and Data Warehouse

Reporting Data Warehouse

Reporting and Data Warehouse offers a secure and scalable multi-tenant system that houses student assessment and student registration data and provides tools for data access in HTML, CSV, and PDF formats.

Reporting and Data Warehouse Deployment

Reporting and Data Warehouse deployment information and documentation.


DL - Digital Library

Digital Library

Information and configuration for the Digital Library site.


SB - Secure Browsers

Secure Browser 6.5

Secure Browser 6.5 builds upon the Mozilla Firefox source code and creates a secure browser that is used to deliver student assessments. The Secure Browser implements security features such as not permitting multiple tabs, browsing arbitrary URLs and enforcing a white list of applications.

Secure Browser 7

Secure Browser 7 builds upon the Mozilla FireFox source code and creates a secure browser that is used to deliver student assessments. The Secure Browser implements security features such as not permitting multiple tabs, browsing arbitrary URLs and enforcing a white list of applications.

Mobile Secure Browser - Android

Mobile Secure Browser for Android ensures a common, secure online testing experience by preventing users from switching to other applications and from performing certain hardware actions such as taking screenshots.

Mobile Secure Browser - Chrome

Mobile Secure Browser for ChromeOS ensures a common, secure online testing experience by preventing users from switching to other applications and from performing certain hardware actions such as taking screenshots.

Mobile Secure Browser - iOS

Mobile Secure Browser for iOS ensures a common, secure online testing experience by preventing users from switching to other applications and from performing certain hardware actions such as taking screenshots.


AP - Assessment Production

Item Authoring and Item Pool

Item Authoring and Item Pool facilitates the process of writing new assessment items, reviewing them, and adding accessibility features.

Test Authoring

The Test Authoring Component is responsible for test (assessment) design, construction, and publishing.

The authenticated and authorized user can define subjects, computation rules (scoring functions), item selection algorithms, and build publication relationships, all of which are then used to author tests (assessments).

Authoring of a test involves construction and configuration of segments, blueprints, test item import, forms, scoring rules, performance levels, reporting measures, and finally going through an approval workflow from users with appropriate authorization to perform approvals. The result is a test specification that can be published to Test Specification Bank (TSB) and made available further downstream for Administration and Registration Tools (ART) and Test Delivery (TDS).

Test Item Bank

The Test Item Bank component manages the importing and exporting of test (assessment) items. Major features include:

  • OAuth-based security
  • RESTful API
  • Multi-tenant support

IM - Identity Management

OpenAM

Contains ForgeRock OpenAM source code and any scripts necessary to create an OpenAM Single Sign On system.

OpenDJ

Contains ForgeRock OpenDJ source code and any scripts necessary to create an OpenDL identity repository.


SS - Shared Services

Core Standards

CoreStandards enables users to serve standards publications. The UI includes the following functionalities:

  • Create Publication From Spreadsheet
  • View Existing Publication
  • Download Publication Spreadsheet Instructions
  • Download Sample Publication Spreadsheet

The API grants programmatic access to standards. Smarter Balanced loads its instance of Core Standards with the Common Core State Standards and with the Smarter Balanced Test Blueprints.

Monitoring and Alerting

Monitoring and Alerting component aggregates Logging, Metrics, and Notifications

Monitoring and Alerting Client

Monitoring and Alerting Client is the central UI for viewing the aggregates of Logging, Metrics, and Notifications.

Permissions

Permissions enables users to create Components, Permissions and Roles, and map component permissions to roles. It includes the following functionalities:

  • Manage Components (create, view and edit components)
  • Manage Component Permissions (create, view and edit component permissions)
  • Manage Roles (create, view, and edit roles, their allowable hierarchy levels and their restricted role status)
  • Map Roles to Component Permissions (create and manage mappings between roles and component permissions)
Portal

Portal has two basic functions. For non-logged-in users, it provides generic information regarding Smarter Balanced assessments, including links to download the Secure Browser. For logged-in users, the portal provides links to only the components for which the logged-in user has permissions, in the private pages. Some links may also be available on public-facing pages - but those are left to the discretion of the deploying entities. Portal’s main features include:

  • SSO Integration
  • Private and Public pages
  • Built on the popular Wordpress platform
Program Management

Program Management Component is responsible for configuration management and UI custom branding.

Program Management Client

Program Management Client Component is responsible for configuration management and UI custom branding. The Program Management Client allows other applications to interface with the Program Management Component in order to retrieve bootstrap initialization parameters and to interrogate tenancy-related information.

REST API Generator

A tool for generating REST API Code.

Shared Build

Shared Build has three modules:

  • shared-build-parent: a POM (Project Object Model) artifact that holds the configuration for the build plugins and the code quality profile
  • quality-tools-config: a JAR (Java ARchive) that holds the resources (xml configuration) for the code quality profile in the parent
  • shared-dependencies: a POM that holds the declarations for the major shared dependencies for the SmarterApp development effort
Shared Code

Contains code to be used across all SmarterApp projects.

Shared Multi Jar

Shared Multi Jar is group of shared modules that can be used by other projects for common functionality.

Shared Security

Shared Security contains reusable components for authentication and authorization.

Test Specification Bank (TSB)

The Test Specification Bank (TSB) component is responsible for test (assessment) specification storage, searching, and initiation of packaging. The authenticated and authorized user can search for test specifications that were published from Test Authoring, view the actual specification XML, and initiate a packaging of that specification which will bundle the XML with all related Test Item data to be compressed and stored in a remote Secure FTP host location.


Technology Readiness Tool

In 2012 the Smarter Balanced Assessment Consortium and the Partnership for Assessment of Readiness for College and Careers (PARCC) jointly commissioned a Technology Readiness Tool to support state and local education agencies to evaluate and determine needed technology and infrastructure upgrades for the new online assessments to be launched by the two consortia in the 2014-15 school year. The tool supports surveying inventories of computing devices and associated network infrastructure and reporting on the collected data. As of June 2015 source code for the tool is available on GitHub at Technology Readiness Tool.



Creative Commons License Unless stated otherwise, all content on SmarterApp.org is licensed under a Creative Commons Attribution 4.0 International License.