Wizard-style, sectioned assessment composition and execution.
End-to-end assessment builder with type management, section and step orchestration, form/question composition, and optional question-to-task-template automation mapping.
import { useState } from 'react';
import { Wizard, Stepper, RadioButtonGroup, RadioBoxGroup, Slider, RangeSlider, BellCurve, RadarChart, Collapsible } from '@cleen/cleen-components';
import { useAssessment, useResponseSet } from '@/hooks/useAssessment';
export function AssessmentRunner({ assessmentId }) {
const { assessment, sections } = useAssessment(assessmentId);
const { responses, save, submit, results } = useResponseSet(assessmentId);
const [step, setStep] = useState(0);
if (!assessment) return null;
const section = sections[step];
return (
<Wizard
step={step}
onStepChange={setStep}
header={<Stepper steps={sections.map((s) => s.title)} current={step} />}
>
{section.questions.map((q) => (
<Collapsible key={q.id} title={q.title} defaultOpen>
{q.type === 'choice' && <RadioButtonGroup options={q.options} value={responses[q.id]} onChange={(v) => save(q.id, v)} />}
{q.type === 'card' && <RadioBoxGroup options={q.options} value={responses[q.id]} onChange={(v) => save(q.id, v)} />}
{q.type === 'scale' && <Slider min={1} max={10} value={responses[q.id]} onChange={(v) => save(q.id, v)} />}
{q.type === 'range' && <RangeSlider min={0} max={100} value={responses[q.id]} onChange={(v) => save(q.id, v)} />}
</Collapsible>
))}
{results && (
<section className="results">
<BellCurve data={results.distribution} value={results.score} />
<RadarChart data={results.factorScores} />
</section>
)}
</Wizard>
);
}Internal code areas in the licensed Full-Stack codebase that back this module.
ApiAssessmentA quick visual of how Assessments and Surveys participates across the CleenUI stack, alongside the named operations it adds to the API surface.
Each operation maps to an endpoint in the licensed C# Web API surface.
Configure a demo environment in about twenty seconds — theme, spacing, the modules you care about, sample data for your industry — then launch the full dashboard in your browser. Nothing to install, no signup.