Overview
Philosophy
The core philosophy of RoundtableJS revolves around three main principles:
-
Modularity: The library is designed with a component-based architecture, allowing you to build complex surveys from simple, reusable parts. Alternatively, leverage our customized copilot in our cloud offering to program in natural language.
-
Ease of Styling: Every aspect of your survey can be styled using intuitive CSS-like objects, giving you complete control over the look and feel of your surveys. Design is an underrated part of the survey experience that can greatly enhance data quality.
-
Intuitive Timeline Management: RoundtableJS uses an asynchronous approach to page rendering, making it easy to create complex survey flows and logic. In other libraries survey logic is determined via callbacks that trigger when a page is submitted, which quickly becomes a nightmare to manage and debug.
How RoundtableJS Works
Survey Constructor
The foundation of every RoundtableJS survey is the Survey constructor. This JavaScript class is used to create new survey instances:
Elements
Elements in RoundtableJS define different question types. These are also JavaScript classes, each representing a specific type of survey question or content:
Pages
Pages in RoundtableJS are built out of arrays of elements. They are shown asynchronously, allowing for complex survey logic:
Plugins
Plugins allow you to modify the logic or content of the survey across pages. They provide a way to add global functionality to your survey:
Styling
All surveys, elements, and plugins in RoundtableJS accept an optional styles
dictionary. This allows you to modify the CSS of any part of the survey using a JavaScript object: