LUIS BOTELHO.

Case study / Lab

Dynamic Form · GetNinjas

A JSON-driven, multi-step form with validation, error recovery and a native Node.js server.

Dynamic Form · GetNinjas — project interface
Project interface image.

Problem and user

Build an interface that adapts to changes in its fields without rebuilding the form by hand.

My role

Development and documentation of the learning project.

Delivered scope

  • JSON-driven field generation
  • Wizard with forward, back and progress controls
  • Required-field validation
  • HTTP and validation tests with node:test

Constraints

  • Demonstration only: no submission or persistence.
  • Existing tests do not cover the entire browser journey.

Architecture and data flow

Node.js serves the API and static files. JavaScript interprets JSON and creates fields using DOM APIs.

Decisions and trade-offs

Explore HTTP, DOM and state fundamentals without frameworks.

Tests and validation

Public code and documentation reviewed on September 7, 2026. Running this project is outside the portfolio validation scope.

Current state

A JSON-driven, multi-step form with validation, error recovery and a native Node.js server.

Known limitations

  • Demonstration only: no submission or persistence.
  • Existing tests do not cover the entire browser journey.

Next steps

  • Expand test coverage and document upcoming deliveries.

Related training

Stack

  • JavaScript
  • Node.js
  • HTML
  • CSS
  • node:test

Repository documentation

Read the original README ↗