Skip to content

The Front-End for Designing Runnable BPMN-Diagrams

License

Notifications You must be signed in to change notification settings

kroschu/bpmn-studio

 
 

Repository files navigation

BPMN-Studio

BPMN-Studio ist eine Web- und Desktop-Applikation zur Erstellung, Verwaltung, Ausführung und Auswertung von BPMN-Prozessen. Es setzt auf dem BPMN.io auf und den BPMN-Standard 2.x um.

Was sind die Ziele dieses Projekts?

BPMN-Studio soll es dem Anwender so leicht wie möglich machen BPMN-Diagramme zu erstellen und zu pflegen. Des Weiteren kann BPMN-Studio mit einer Workflow Engine verbunden werden, um diese Diagramme auszuführen.

Relevante URLs

ProcessEngine Dokumentation Minimales Skeleton

Wie kann ich das Projekt aufsetzen?

Voraussetzungen

Setup/Installation

TL;DR

  1. npm install
  2. npm run build
  3. npm run electron-build-<OS>
  4. npm start / npm run start_dev

Notizen:

  1. Für npm run electron-build-<OS> gilt:

    Für den Platzhalter <OS> können folgende Werte eingesetzt werden:

    • linux für Linux
    • macos für MacOS
    • windows für Windows

    Beispiel:

    npm run electron-build-macos

TL;DR Tests

  1. npm start
  2. npm run test-init
  3. npm run test

Wie kann ich das Projekt benutzen?

Installation der Abhängigkeiten

Die Abhängigkeiten werden wie folgt installiert:

npm install

Benutzung

Zum bauen:

npm run build

Dieses Skript baut die Anwendung, das Ergebnis ist produktionsreif.

Zum starten:

npm start

Dieses Skript startet die statische Auslieferung der Anwendung auf Port 17290. Zuerst muss die Anwendung gebaut worden sein.

Es ist möglich einen anderen Port zu spezifizieren:

npm start -- --port 9000

Das startet das BPMN-Studio auf Port 9000.

Anmerkung

Der Port muss aus technischen Gründen zwischen 1000 und 65535 liegen.

Erreichbarkeit

Es ist möglich eine andere IP-Adresse als 127.0.0.1 zu spezifizieren:

npm start -- --host 0.0.0.0

Damit ist das BPMN Studio auch von außen erreichbar.

Zum starten (Entwicklung)

npm run start_dev

Dieses Skript startet die Auslieferung der Anwendung für die Entwicklung. Bei Änderungen im Quelltext wird die Anwendung neugebaut und der Webbrowser automatisch neu geladen.

Electron Applikation

Zum bauen:

Mac:

npm run electron-build-macos

Nach dem Bauen kann man in dem dist/mac Ordner die fertige Applikation finden und ausführen.

Windows:

Vor dem erstmaligen Builden müssen die windows-build-tools installiert werden:

npm install --global --production windows-build-tools

Danach kann gebuildet werden:

npm run electron-build-windows

Nach dem Bauen, kann man in dem dist/ Ordner die Datei bpmn-studio Setup <VERSION>.exe ausführen, um die Applikation zu installieren; <VERSION> wird durch die entsprechende Version ersetzt.

Beispiel:

dist/bpmn-studio Setup 1.2.1.exe

Alternative:

Die Releases des BPMN-Studios lassen sich alternativ auch hier herunterladen.

Docker Image

Container bauen

Das Image lässt sich wie folgt bauen:

docker build --tag bpmn-studio:latest .

Container bauen mit optionalen Parametern

Es ist möglich, das base image, sowie die Paketversionen anzupassen:

  • node_version: Base image version mit NodeJS und Alpine Linux
docker build --build-arg node_version=10-alpine \
             --tag bpmn-studio:latest.

Container starten

Der Container lässt sich mit folgendem Befehl starten:

docker run -p 9000:9000 bpmn-studio:latest

Anschließend lässt sich das BPMN-Studio unter URL http://localhost:17290 aufrufen.

End-to-End-Tests

Die End-to-End-Tests werden mit Hilfe des Protractor Frameworks durchgeführt.

Unser Ziel ist es, die Testabdeckung ausreichend auszubauen, um das Vertrauen in einen Release zu verbessern. Es wird keine 100% Abdeckung angestrebt, aber generelle Tests für alle unterstützten Plattformen sind gewünscht.

Hinweis:

Alle Befehle müssen im geklonten Repository ausgeführt werden.

Hinweis:

Aufgrund eines Fehlers bei der verwendeten Version der ProcessEngine-Runtime, schlagen aktuell einige Tests fehl.

Voraussetzungen

Es werden folgende Pakete benötigt:

  1. Allgemein:

  2. Nur bei lokalen Tests mit Docker:

    • Docker
  3. Nur bei CrossBrowserTesting:

    • VM oder vergleichbares mit öffentlicher IP
    • Docker
    • CrossBrowserTesting Account

Lokale Tests ohne Docker ausführen

  1. Initial müssen folgende Befehle in einem Terminal ausgeführt werden:

    npm install
  2. Anschließend folgenden Befehl eingeben, um den Selenium Server und die ProcessEngine zu starten:

    npm run test-init
  3. Die End-to-End Tests können in einem weiteren Terminal mit folgendem Befehl gestartet werden:

    npm run test

Lokale Tests mit Docker ausführen

  1. Ein Terminal öffnen und folgenden Befehl eingeben, um den Selenium Server zu starten:

    npm run test-init
  2. Die End-to-End Tests können in einem weiteren Terminal mit folgendem Befehl gestartet werden:

    npm run test-docker

Crossbrowser Tests mit Docker ausführen

  1. Initial müssen folgende Umgebungsvariablen gesetzt werden:

    export CB_USER=""           # CrossBrowserTesting E-Mail Adresse
    export CB_KEY=""            # CrossBrowserTesting API Key
    export aureliaUrl=""        # URL oder IP der VM + Port des BPMN-Studio; z.B.: http://1.1.1.1:9000
    export processEngineUrl=""  # URL oder IP der VM + Port der ProcessEngine; z.B.: http://1.1.1.1:8000
  2. Ein Terminal öffnen und das BPMN-Studio auf der VM mit folgendem Befehl starten:

    docker run -p 8000:8000 -p 9000:9000 5minds/bpmn-studio-bundle:latest
  3. Ein Terminal auf dem lokalen Computer öffnen und mit folgenden Befehl die CrossBrowserTesting Tests starten:

    npm run test-crossbrowser

Shortcut Skripte

Es sind Skripte in der package.json vordefiniert, welche sich durch npm run <script name> ausführen lassen.

Die folgenden Skripte, werden in unserem Tooling verwendet:

  • build

    Baut das Aurelia Bundle.

  • start

    Startet die BPMN-Studio Webanwendung

  • start_dev

    Startet die BPMN-Studio Webanwendung und trackt die Quelldatein (geänderte Quelltextdatein werden neu transpiliert und die Webanwendung wird neu geladen).

  • electron-start-dev

    Baut das Aurelia Bundle und startet die Electron Anwendung.

  • reset

    Entfernt alle node_modules, die package-lock.json Datei und bereinigt den NPM-Cache.

  • lint

    Startet tslint für das gesamte Projekt.

  • electron-build-macos

    Baut die Electron-Anwendung für macOS.

  • electron-build-linux

    Baut die Electron-Anwendung für Linux.

  • electron-build-windows

    Baut die Electron-Anwendung für Windows.

Was muss ich sonst noch wissen?

Die Konfiguration liegt unter aurelia_project/environments/dev|stage|prod.ts.

Wen kann ich auf das Projekt ansprechen?

Christoph Gnip Alexander Kasten Paul Heidenreich

About

The Front-End for Designing Runnable BPMN-Diagrams

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 79.2%
  • HTML 10.9%
  • CSS 4.2%
  • JavaScript 3.9%
  • Shell 1.2%
  • Dockerfile 0.4%
  • Groovy 0.2%