Skip to main content

Overview

The @timeback/powerpath package provides a TypeScript client for the PowerPath API, enabling:
  • Assessments: Create tests, attempts, and submit responses
  • Placement Tests: Determine appropriate grade level
  • Screening: Session management and test assignment
  • Lesson Plans: Course progress and lesson plan operations
  • Test Assignments: CRUD operations for test assignments

Installation

npm install @timeback/powerpath

Quick Start

import { PowerPathClient } from '@timeback/powerpath'

const client = new PowerPathClient({
	env: 'staging',
	auth: {
		clientId: process.env.POWERPATH_CLIENT_ID!,
		clientSecret: process.env.POWERPATH_CLIENT_SECRET!,
	},
})

const level = await client.placement.getCurrentLevel({ studentId: 'student-123', subject: 'Math' })

Assessments

Create and manage assessments, attempts, and responses.

Create Tests

client.assessments.createInternalTest({ studentId, subject, gradeLevel })
client.assessments.createExternalTestOut({ studentId, subject, externalTestId })
client.assessments.createExternalPlacementTest({ studentId, subject })

Manage Attempts

client.assessments.createNewAttempt({ studentId, testId })
client.assessments.getAttempts({ studentId, testId })
client.assessments.resetAttempt({ attemptId })

Questions and Responses

client.assessments.getNextQuestion({ attemptId })
client.assessments.updateStudentQuestionResponse({ attemptId, questionId, response })
client.assessments.finalStudentAssessmentResponse({ attemptId })
client.assessments.getAssessmentProgress({ studentId, testId })

Placement

Manage placement testing and determine appropriate grade levels. All methods take { studentId, subject }:
client.placement.getCurrentLevel({ studentId, subject })
client.placement.getAllPlacementTests({ studentId, subject })
client.placement.getNextPlacementTest({ studentId, subject })
client.placement.getSubjectProgress({ studentId, subject })
client.placement.resetUserPlacement({ studentId, subject })
MethodReturnsDescription
getCurrentLevel()PlacementLevelCurrent placement grade level
getAllPlacementTests()PlacementTest[]All placement tests for student
getNextPlacementTest()PlacementTestNext recommended test
getSubjectProgress()SubjectProgressProgress in subject
resetUserPlacement()voidReset placement to start over

Screening

Manage screening sessions and results.
client.screening.getResults(studentId)
client.screening.getSession(studentId)
client.screening.resetSession({ studentId })
client.screening.assignTest({ studentId, testId })

Lesson Plans

Manage lesson plans and course progress.
client.lessonPlans.get({ studentId, courseId })
client.lessonPlans.create({ studentId, courseId, ...options })
client.lessonPlans.getCourseProgress({ studentId, courseId })
client.lessonPlans.operations({ operations: [{ type: 'complete', itemId }] })

Test Assignments

CRUD operations for test assignments.
client.testAssignments.list({ studentId })
client.testAssignments.create({ studentId, testId, dueDate })
client.testAssignments.get(assignmentId)
client.testAssignments.update(assignmentId, { status })
client.testAssignments.delete(assignmentId)
client.testAssignments.bulk({ assignments: [{ studentId, testId }] })

SDK Integration

When using the full SDK:
import { createTimeback } from '@timeback/sdk'

const timeback = await createTimeback({
	/* ... */
})

const level = await timeback.api.powerpath.placement.getCurrentLevel({
	studentId: 'student-123',
	subject: 'Math',
})

Next Steps