Skip to content

tellmi/eForm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eForm

Version: 0.8

A document format for forms that are readable by humans and systems alike.
eForm is an open document format for electronic forms.

It combines:

  • SVG (visual layout)
  • JSON (data + schema)
  • ZIP container (packaging)

→ Result: a form that is human-readable, machine-readable, and directly processable

No OCR. No manual data extraction.
Every submitted form is immediately usable as structured data.


🚀 What is eForm?

An eForm behaves like a digital paper form:

  • looks like a document
  • can be filled digitally
  • can be processed automatically
  • remains readable without special software

🧭 How it Works

Design (SVG)

Define schema (JSON)

Fill data (JSON)

Package (ZIP → embedded in SVG)

Open in viewer OR browser

Process / transmit / archive


✨ Key Features

  • Always readable (SVG preview)
  • Structured data (JSON)
  • System integration ready
  • Built-in computation (formulas)
  • Open standard (MPL 2.0)
  • Extensible via profiles (eCase, eBill)

📦 File Structure

form.eform
├ preview.svg
└ embedded container (base64 ZIP)
    ├ manifest.json
    ├ schema.json
    ├ data.json
    ├ layout/
    ├ formulas/ (optional)
    └ registries/ (optional)

The preview ensures the document is always viewable
The container enables full processing


🧱 Core Concepts

Component Purpose
Layout (SVG) visual structure
Schema (JSON) field definitions
Data (JSON) field values
Preview (SVG) static rendering
Formulas (optional) computed values

🔐 Design Goals

  • Long-term readability
  • Human-friendly form design
  • Machine-readable data
  • Open specification
  • Deterministic behavior
  • Independence from proprietary software

🧩 Profiles (Extensions)

eForm supports specialized formats:

  • eCase → document bundles (forms + attachments)
  • eBill → invoice envelope (XML-based standards like XRechnung / ZUGFeRD)

Profiles extend eForm without breaking compatibility.


🆕 What’s New (0.8)

Specification Alignment

  • all core specifications rewritten and aligned:
    • layout
    • schema
    • formulas
    • container structure
  • unified field identifier model (f1, f2, …)
  • canonical formula syntax (JSON-based, no inline assignments)
  • strict separation of concerns across all components

Formula System

  • deterministic formula evaluation model
  • dependency-based computation
  • explicit rounding behavior
  • side-effect free expressions
  • consistent JSON-based definition

Layout Simplification

  • single required attribute: data-eform-field
  • reintroduced data-eform-value for multi-option fields
  • strict separation of layout and schema responsibilities
  • defined SVG subset for predictable rendering

Documentation

  • complete specification set finalized
  • viewer, importer, and designer guides added
  • mapping and semantics guide introduced
  • validation specification defined (foundation for next phase)

📚 Specification

Detailed specifications are located in /spec:

  • eform-spec.md — core format
  • layout-spec.md — SVG rules
  • schema-spec.md — schema
  • formula-spec.md — formulas
  • validation-spec.md — validation model

Additional docs:

  • docs/designer-guide.md
  • docs/viewer-guide.md
  • docs/import-processing.md
  • docs/mapping-and-semantics.md
  • docs/format-derivations.md

🛠 Demo Tools

  • viewer/ → interactive reference viewer
  • tools/importer.html → data extraction and processing

📁 Repository Structure

spec/ specifications
examples/ sample forms
viewer/ reference viewer
tools/ utilities
docs/ documentation


📜 License

Licensed under MPL 2.0

  • core modifications must remain open
  • allows integration into proprietary systems

⚠️ Status

Experimental — under active development (v0.8)

Current focus:

  • validation layer
  • importer hardening
  • security assessment
  • deterministic behavior

🌍 Vision

eForm combines:

  • PDF-like visual stability
  • web-style openness
  • structured data

→ A durable, open format for digital forms across systems.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors