← Back to all products

Multi-Step Wizard

$29

Build multi-step form wizards with state management, progress tracking, and conditional step skipping.

📁 10 files
JSONMarkdownPython

📄 Product Preview

Try the interactive reader and demo tools below, or get the full product with all content unlocked.

📖 Interactive Reader (Free Preview) ⚙ Try Demo Tools 📦 Download Free Sample

📁 File Structure 10 files

multi-step-wizard/ ├── LICENSE ├── README.md ├── examples/ │ └── onboarding_wizard.json ├── free-sample.zip ├── guide/ │ ├── 01_features.md │ ├── 02_cli-reference.md │ ├── 03_programmatic-usage.md │ └── 04_file-structure.md ├── index.html └── src/ └── multi_step_wizard.py

📖 Documentation Preview README excerpt

Multi-Step Wizard

Build multi-step form wizards with state management, progress tracking, and conditional step skipping. Pure Python, zero dependencies.

Part of the [Form Forge](https://form-forge.codevault.dev) toolkit by CodeVault.

Features

  • Multi-step form engine: define wizard flows as JSON, render to HTML or run interactively
  • State management: persist wizard state across steps with JSON session files
  • Progress tracking: visual progress bar and step numbering
  • Conditional step skipping: skip steps based on previous answers
  • HTML rendering: generate complete, styled HTML wizard forms
  • Interactive CLI mode: step-through wizard in the terminal
  • Customizable labels: back, next, submit button text, form action/method
  • Python 3.10+ stdlib only — no pip installs required

Quick Start


# Run the built-in demo wizard
python src/multi_step_wizard.py --demo

# Run interactively from a JSON definition
python src/multi_step_wizard.py --input examples/onboarding_wizard.json --interactive

# Render to HTML
python src/multi_step_wizard.py --input examples/onboarding_wizard.json --render

# Render to an HTML file
python src/multi_step_wizard.py --input examples/onboarding_wizard.json --render --output wizard.html

CLI Reference

FlagDescription
--input FILELoad wizard definition from JSON file
--renderRender the wizard as HTML to stdout
--interactiveRun the wizard interactively in the terminal
--demoRun a built-in demo wizard
--output FILEWrite rendered HTML to a file instead of stdout

Wizard JSON Format


{
  "id": "user-onboarding",
  "title": "Account Setup Wizard",
  "showProgressBar": true,
  "showStepNumbers": true,
  "allowBack": true,
  "nextLabel": "Continue",
  "backLabel": "Go Back",
  "submitLabel": "Complete Setup",
  "action": "/api/onboarding",
  "method": "POST",
  "steps": [
    {
      "id": "personal",

*... continues with setup instructions, usage examples, and more.*

📄 Code Sample .py preview

src/multi_step_wizard.py #!/usr/bin/env python3 """ Multi-Step Wizard — Form Wizard Framework ========================================== Build multi-step form wizards with state management, progress tracking, step validation, and back/forward navigation. Outputs HTML or JSON for integration with any frontend. Part of the Form Forge toolkit by DataNest. License: MIT """ from __future__ import annotations import argparse import copy import hashlib import html import json import logging import os import secrets import sys import time from dataclasses import dataclass, field from datetime import datetime, timezone from enum import Enum from typing import Any logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") logger = logging.getLogger(__name__) # --------------------------------------------------------------------------- # Constants # --------------------------------------------------------------------------- STATE_DIR = "wizard_states" MAX_STEPS = 50 # Sane upper limit SESSION_ID_BYTES = 16 # 32 hex chars class StepStatus(Enum): """Status of a wizard step.""" PENDING = "pending" ACTIVE = "active" COMPLETED = "completed" SKIPPED = "skipped" class FieldType(Enum): """Input types within a wizard step.""" # ... 562 more lines ...
Buy Now — $29 Back to Products