Independent project · Since 2 October 2026

ClearCraft Workbench

Forms & Document Workflows

A person requesting equipment needs to explain the need, list the items and supply a quotation. A form author needs to change those questions without mixing definitions with answers. I designed and implemented this workflow in Angular, composing existing shared UI with application-owned rules.

A local demonstration using synthetic data and fictional rules. Form publication creates a version to fill; it does not approve a purchase. A private walkthrough is available on request.

01 / A working scenario

From a definition
to a document.

Purchase Request contains requester details, department, justification and a required date. Equipment rows repeat with a whole-number quantity and estimated unit cost in USD. An urgent request reveals an additional justification field. A quotation accepts PDF, JPEG or PNG files within the declared size limit.

The author edits the definition, checks a preview, saves a draft and publishes an immutable snapshot. A user fills that version, recovers incomplete answers after a reload, attaches the quotation and prepares an HTML summary, searchable PDF and attachment manifest. This scenario creates no map.

02 / My contribution and the boundaries

Compose shared UI.
Keep the rules with the application.

Application workflow

I implemented definition editing, repository operations, revision checks, recovery and document preparation. Purchase Request is an application preset using the existing contracts. Storage keys and previously saved definitions remain compatible.

Shared components

Workbench and GeoAtlas both compose Grid, UiField and UiButton. Workbench adds the shared form builder, renderer and preview. GeoAtlas adds WFS and map adapters. The shared libraries contain no condition that recognises “Purchase Request”.

Integrated engines

Angular Signal Forms, TanStack Table and pdf-lib supply underlying capabilities. My work is the component contracts, state boundaries, composition, integration and tests. I do not claim authorship of these external engines.

03 / Cases that need deliberate handling

Preserve the user's work.

Concurrent revisions

A stale save cannot silently replace a newer stored version. A publication whose reply was lost is checked before another write is offered.

Draft recovery

Author copies and entered answers have separate scopes. Recovery checks the role and publication version. Attachment names are retained, while file bytes must be supplied again.

Stale documents and files

File validation checks size, declared type and actual bytes. A change to an answer or attachment invalidates the prepared document. A late PDF operation cannot replace newer state.

04 / Real application captures

English UI, desktop and phone.

Workbench editor with the Purchase Request definition and quantity field settings.
Edit the quantity field in the shared form builder. Preview answers remain separate from the definition.
Purchase Request preview showing required field errors in English.
Validate the preview and move focus to the first incomplete field.
Published Purchase Request with requester details and repeatable equipment rows.
Fill an immutable published version of the form using synthetic demonstration data.
Workbench attachment preview and document actions for a synthetic quotation PDF.
Inspect the synthetic quotation attachment retained with the prepared document.
English Purchase Request document summary with equipment quantity, estimated USD cost and attachments.
Prepare the HTML summary, downloadable PDF and manifest. Editing an answer invalidates the prepared package.
Purchase Request on a phone with a clear notice that recovered attachments need to be added again.
Recover entered values on a phone. Attachment names survive recovery; file bytes must be attached again.

05 / Verification and limits

Test the workflow.
State its limits.

Browser checks exercise the definition, preview, publication, filling, attachment hashes, PDF download, reload recovery and document invalidation. Desktop and phone checks include focus, keyboard use and selected axe accessibility checks. Unit tests cover the rules, locale parsing and existing Polish defaults.

These checks run in a controlled environment. Roles are local demonstrations, storage is in the browser, and no procurement approval, email, ERP, payment or signing service is connected. This is not a production SLA or a claim of complete accessibility compliance. USD is explicit example data; changing language never converts money.

Inspect the shared foundation ↗
See it applied to map workflows ↗
Read about the delivery process ↗

Discuss an Angular role or a complex workflow.

Contact ClearCraft ↗