Skip to content

modernpoacher/shinkansen-engine

Repository files navigation

shinkansen-engine

Shinkansen generates JSON Schema valid documents from user submissions with <html /> forms.

Engine

Engine renders React layouts with <html /> form field and group elements, as well as optional navigation components, using Pinion, Gears and Transmission.

Layouts can be produced from a JSON Schema transformed into the Zashiki description format. The user submission generated by the layout will be valid according to that JSON Schema.

Storybook

We use Storybook to present React layouts and components.

Our Stories contain single-value components for development. (Layouts for production are composed of one or several components.)

Typically, these render with an <input /> element, but under Controls you can see how a choice can be captured with <radio /> or <select /> elements.

String values

Number values

Array values

Whether items is an object or items is an array depends on how Zashiki interprets the JSON Schema (assuming that Zashiki has mechanically translated a JSON Schema into a description, and the description hasn't been generated manually). It matters for validating the document according to the schema, but for humans the distinction may seem arbitrary. Our stories account for both structures.

Array (Items is an object)

Array (Items is an array)

Object values

Boolean values

Null values

See also