https://github.com/bptlab/fcm-design-support

Modeling Tool with Design-Time Support for Fragment-Based Case Management

https://github.com/bptlab/fcm-design-support

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.9%) to scientific vocabulary
Last synced: 7 months ago · JSON representation

Repository

Modeling Tool with Design-Time Support for Fragment-Based Case Management

Basic Info
  • Host: GitHub
  • Owner: bptlab
  • License: mit
  • Language: JavaScript
  • Default Branch: main
  • Size: 2.09 MB
Statistics
  • Stars: 10
  • Watchers: 2
  • Forks: 5
  • Open Issues: 21
  • Releases: 0
Created over 4 years ago · Last pushed over 1 year ago
Metadata Files
Readme License

README.md

fCM-js

Modeling Tool with Design-Time Support for Fragment-Based Case Management.

:rocket: Try it live! :rocket:

fcm-js is a modeling tool for fragment-based case management. It aims at supporting users at design time by providing a joint, visual user interface for all artifacts and by integrating automated guideline checking based on fCM guidelines.

The catalog of fCM guidelines is also available in this repository in the wiki.

User Guide

Installation

Node needs to be installed for the modeler to run.

To install the modeler, clone this repository on your machine. To start, navigate to the installation folder and enter the following into your command line: shell npm install npm run build npm run serve

The modeler is then served to http://localhost:9024.

When developing, the following can be run to automatically re-bundle on changes: shell npm run dev

Usage

There are a demo video and a use case tutorial to showcase how to use fcm-js.

Developer Guide

Structure Overview

The repository is structured as follows: * /app contains the actual application files. * For changes of the overall UI: The web page .js and .html files can be found in its root, and most general style files under /styles. * The actual logic is then contained in the /lib folder * /datamodelmodeler, /fragmentmodeler, /goalstatemodeler, and /olcmodeler include the resources of the respective modelers. These build heavily on diagram-js, bpmn-js, and object diagram modeler, please refer to the documentations of those three to understand how they work. Common modules between the modelers can be found in /common, however, duplication might still exist. * /mediator includes the central component that controls the communication between and access to the single modelers. For each modeler, this Mediator contains one so called "hook", which wraps and allows access to the respective modeler. * /guidelines includes all relevant code for guidelines. The list of guidelines is defined in Guidelines.js. * /resources contains auxiliary example and default files.

Guideline Interface

The guidelines are integrated via a unified interface. They can be found in app/lib/guidelines. Here the actual guidelines are implemented in Guidelines.js while the checking component is located in Checker.js. Every guideline consists of the following components:

  • title: The title of the guideline which shortly summarizes what the guideline is about.
  • id: The id of the guideline which must be a unique identifier.
  • getViolations(mediator) {}: A function which returns an array of elements. The mediator parameter allows access to the respective modelers via its hooks (see above).
  • severity: Can be one of the following: Errors | Warnings | Information and indicates the color the element is highlighted in.
  • link: A link to the guideline in the guideline catalog.

For every returned element in the getViolations() function the follwing must be returned: - element: The .businessobject of the element the violation should be displayed on. - message: The error message which is displayed in the error table and the hints. - quickFixes[]: An array of potential quickfixes for the violation. - label: The message which is displayed on the quickfix button. - action: The actual action which is performed when the button is clicked.

A new guideline can therefore be implemented by adding the code in the described format in the export default array in the Guidelines.js file.

License

MIT

Contains parts of bpmn-io released under the bpmn.io license, and diagram-js and object diagram modeler released under the MIT license.

Owner

  • Name: Business Process Technology
  • Login: bptlab
  • Kind: organization
  • Location: Potsdam, Germany

Business Process Technology @ Hasso Plattner Institute, University of Potsdam

GitHub Events

Total
  • Push event: 1
  • Pull request event: 2
  • Create event: 1
Last Year
  • Push event: 1
  • Pull request event: 2
  • Create event: 1

Issues and Pull Requests

Last synced: over 1 year ago

All Time
  • Total issues: 170
  • Total pull requests: 15
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 1 day
  • Total issue authors: 6
  • Total pull request authors: 9
  • Average comments per issue: 0.24
  • Average comments per pull request: 0.27
  • Merged pull requests: 9
  • Bot issues: 0
  • Bot pull requests: 4
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • LeonBein (36)
  • MaximilianKoenig (17)
  • ma-ro (15)
  • kerstinandree (14)
  • carlaterboven (7)
  • caterinamandel98 (1)
Pull Request Authors
  • AnjoSs (2)
  • dependabot[bot] (2)
  • MaximilianKoenig (1)
  • florian-papsdorf (1)
  • Noel-Bastubbe (1)
  • LeonBein (1)
  • Firsttryy (1)
  • mariejarisch (1)
  • Franka-T (1)
Top Labels
Issue Labels
Tool (64) Implementation (62) bug (19) enhancement (6) Error (6) Guidelines (6) Evaluation (6) paper (5) research (4) Discussion (4) presentation (3) Warning (3) refactoring (2) invalid (2) integration (1) questionable behavior (1) nice to have (1) MVP (1)
Pull Request Labels
dependencies (2) bug (1)

Dependencies

package-lock.json npm
  • 513 dependencies
package.json npm
  • browserify ^17.0.0 development
  • esmify ^2.1.1 development
  • grunt ^1.5.2 development
  • grunt-browserify ^6.0.0 development
  • grunt-cli ^1.4.3 development
  • grunt-contrib-connect ^3.0.0 development
  • grunt-contrib-copy ^1.0.0 development
  • grunt-contrib-less ^3.0.0 development
  • grunt-contrib-watch ^1.1.0 development
  • load-grunt-tasks ^5.1.0 development
  • stringify ^5.2.0 development
  • time-grunt ^2.0.0 development
  • bpmn-js ^8.8.2
  • diagram-js ^7.8.1
  • jquery ^3.6.0
  • jszip ^3.7.1
Dockerfile docker
  • node 10-alpine build