koriym/app-state-diagram

An Application Diagram Generator

Installs: 174 196

Dependents: 1

Suggesters: 0

Security: 0

Stars: 36

Watchers: 6

Forks: 11

Open Issues: 1

Language:HTML


README

codecov Type Coverage Continuous Integration

Release (app-state-diagram) Release (asd-action)

logo

app-state-diagram is a tool that visualizes state transitions and information structures of RESTful applications. It generates interactive state diagrams and hyperlinked documentation from ALPS (Application-Level Profile Semantics) profiles written in XML or JSON.

App State Diagram

Key Benefits

  • Application Overview: Visually grasp complex RESTful applications and understand the big picture
  • Clear Information Semantics: See how data flows and what each element means
  • Enhanced Team Communication: Both technical and business teams can discuss using the same visual representation
  • Design Consistency: Represent application structures uniformly and discover design issues early

Information Architecture Perspective

app-state-diagram embodies the three key aspects of Information Architecture (IA):

  • Ontology: Defines the semantic meaning of application elements and their relationships
  • Taxonomy: Organizes information into structured hierarchies and classifications
  • Choreography: Describes interaction patterns and rules for state transitions

By focusing on these IA principles, app-state-diagram helps create a shared understanding of application semantics across organizational boundaries, independent of specific implementation technologies.

Quick Start

Online Editor (No Installation)

Install with Homebrew

brew install alps-asd/asd/asd

After installation, run:

asd --watch path/to/your/profile.json

CLI Usage

Basic usage:

asd path/to/your/profile.json

Options

  • --mode=html|markdown|svg: Set output mode (default: html)

    asd --mode=html profile.json      # Generate interactive HTML (default)
    asd --mode=markdown profile.json  # Generate markdown documentation
    asd --mode=svg profile.json       # Generate SVG diagrams for embedding

    SVG mode generates two standalone SVG files:

    • profile.svg - Main diagram with descriptor IDs
    • profile.title.svg - Diagram with human-readable titles

    Perfect for embedding in documentation, presentations, or web pages.

  • --watch or -w: Enable watch mode with live browser sync

    asd --watch profile.json          # Start development server
    asd --watch --port=3001 profile.json  # Custom port
  • --port: Set development server port (default: 3000, only with --watch)

    asd --watch --port=8080 profile.json

Examples

See these live demos:

Documentation

For more details, please refer to: