PipeBook: UX Design Brief
July 9, 2022 § 1 Comment
A key design goal of PipeBook is to break away from the single-browser-window user experience of traditional data notebooks, to take full advantage of the large screens on today’s laptops and desktops.

Windows
In particular, a single PipeBook “document” consists of:
- The Pipe window, which can toggle between two views of the FRIDAAY data structure:
- “Source” (editable dictionary)
- “Object” (compiled list)
- One or more Frame windows (one for each single data frame or table)
- The main “data” pane displays (by default) the first N and last M rows
- N and M can be configured by the user
- The user can also ask to see “all” the data (up to what the app can handle)
- Clicking on a column re-sorts its (ascending or descending)
- The secondary “metadata” pane displays summary statistics of the entire table (e.g., dimensions) or selected column (e.g., unique values, by count)
- The metadata pane may be more useful as an independent Inspector, but that might result in too much clutter. Perhaps eventually allow tear-off (pop-out)?
- The main “data” pane displays (by default) the first N and last M rows
- Optional Plot windows displaying results from one or more Frames
Execution
Importantly, PipeBooks are designed for interactive, iterative execution. Users can step through individual actions, or run complete pipelines — locally or remotely. PipeBook will automatically mark Frames as ‘dirty’ when their antecedents have been (or are being) modified or rerun. Memory permitting, PipeBook will keep try to keep older results around until a save or ‘purge’ event.
Editing
The Pipe window is intended to be fully editable, e.g. adding, removing, and editing individual fields and entire actions. Ideally these changes will be store in git, or perhaps as transformations for a JSON-like CRDT.
Implementation
PipeBook is implemented in Python using the Toga widget library, because the goal is to provide a native-like experience. In particular, we will be using the Tree view to represent our YAML data structures.
[…] PipeBook: UX Design Brief (Blog) […]