AI-powered assessment platform · fact sheet

Select-All-That-Apply, generated and understood by AI.

xiangenSATA generates psychometrically-structured SATA questions on demand across 15 formats, captures how each learner reasons through the interaction, and turns that behavior into diagnostic insight — as a plain Node/Express app with no build step.

15
SATA formats
9
LLM providers
6
API route groups
3
User roles
0
Build steps
01

Theory

The ideas the product rests on — each mapped to a concrete design decision.

Partial-knowledge measurement — psychometrics

A single-best-answer item collapses a learner's understanding to one bit. SATA items expose the boundary of what someone knows — which distractors tempt them, which correct options they miss.

Design → 15 SATA formats, each scored to reward calibrated partial knowledge rather than all-or-nothing.

Metacognition & calibration — self-regulated learning

What a learner does while deciding — hesitating, revising, rating confidence — carries signal that a final score discards.

Design → Confidence-Weighted & Meta-Cognitive formats + behavior capture of selections, changes, hovers and pauses.

Process over product — formative assessment

Assessment should feed back into learning, not just grade it. The interaction trace is the raw material for that feedback.

Design → per-format analysis playbooks (15 docs) that turn behavior signals into diagnostic reads.

Item variety as construct coverage — assessment design

Different response formats surface different cognitive skills: categorizing, ranking, eliminating, reasoning across time or context.

Design → formats grouped in 4 families: Core Selection, Enhanced Response, Adaptive & Progressive, Advanced.
Core Selection · 4 Enhanced Response · 3 Adaptive & Progressive · 4 Advanced · 4
02

Technology

Real stack, real chokepoints — verified against the codebase.

Single LLM gateway

Every model call routes through src/services/llm.js — one dispatch over 9 providers: OpenAI, Azure, Anthropic, Google Gemini, Cohere, Mistral, DeepSeek, Groq, Ollama.

generate · generateJSON · chat — JSON mode strips code fences and retries up to 2× on truncation.

Schema-validated generation

Generated questions are validated with Ajv against a per-type JSON Schema (src/schemas/); types without an explicit file fall back to a shared base schema.

Structure enforced at the boundary, so downstream renderers can trust the shape.

No-build static front-end

Express serves public/ as-authored — no bundler, no transpiler, no CDN. Each format ships a template trio: .html + .css + .js.

Static mount is registered before route handlers; there is no SPA catch-all.

GCS-backed persistence

State is stored as JSON objects in Google Cloud Storage (src/config/storage/gcs.js) — there is no local database of record.

One durable, portable persistence layer for questions, sessions and traces.

xAPI behavior capture

Interaction is recorded as xAPI-style statements; behaviorAnalyzer.js reduces raw events into signals: selection sequence, change count, hover count & time, pauses.

The trace — not just the answer — is what the analysis LLM reads.

Three-tier auth

Roles admin · teacher · student (src/middleware/auth.js), gated with requireRole(). Sign-in is delegated to an external OAuth gateway.

Admins set via ADMIN_EMAILS; new users default to student.
flow

How it works

01 · GENERATE

Prompt → question

Pick type, domain & level; the gateway drafts a schema-valid SATA item.

02 · RENDER

Format template

The matching template trio renders an accessible, interactive UI.

03 · INTERACT

Learner answers

Selections, hovers, revisions & pauses stream as xAPI events.

04 · CAPTURE

Signals to GCS

behaviorAnalyzer reduces raw events into structured signals.

05 · ANALYZE

Diagnostic read

The LLM turns behavior into feedback via per-format playbooks.

03

Applications

Where it fits and who touches it.

Instructors & course teams

  • Generate item banks for any domain in minutes
  • Pick the format that matches the skill being tested
  • Read process-level diagnostics, not just scores

Students & learners

  • Practice with 15 interactive formats, demos need no sign-in
  • Confidence & metacognitive prompts build calibration
  • Feedback grounded in how they actually reasoned

LMS & platforms

  • Embeddable assessments via iframe
  • xAPI statements integrate with learning-record stores
  • Provider-agnostic LLM — bring your own key/model

Assessment researchers

  • Behavior traces as a research dataset
  • Controlled comparison across 15 response formats
  • Per-format analysis docs as a shared rubric

Institutions & admins

  • Role-scoped access (admin / teacher / student)
  • GCS-backed, portable data ownership
  • Self-hosted, no build pipeline to maintain

Test-format designers

  • 15 formats spanning ranking, matrix, temporal & more
  • Add a format as a template trio + analysis doc
  • Schema-first questions keep renderers honest
04

Impacts

What changes for each audience — framed as mechanisms the design produces, not measured outcomes.

For instructors

Because questions are LLM-generated and schema-validated, authoring a varied bank stops being the bottleneck — the mechanism shifts effort from writing items to choosing formats and reading results.

For learners

Because behavior — not just the final selection — is captured, feedback can speak to how a decision was made, which is what makes metacognitive and confidence formats meaningful.

For platforms

Because there is one LLM gateway and no build step, the app is provider-portable and cheap to self-host — swapping models or embedding assessments is a config change, not a rewrite.

For researchers

Because every interaction is an xAPI statement in GCS and formats are a synchronized set, the platform yields a structured, comparable trace across all 15 response types.