Skip to content

Noel-Bastubbe/for-Construction-Modeling

 
 

Repository files navigation

fCM-js

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

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:

npm install
npm run build
npm run serve

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

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

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:

Branch Naming

Branch names have the following structure: <type>/<issue-number>-<issue-name>

  • <type> gets replaced with feature or fix, depending on the type of changes introduced by the branch

  • <issue-number> gets replaced with the number of the issue the branch aims to close

  • <issue-name> gets replaced with the name of the issue the branch aims to close, or a shortened form of it

Experimental branches may use the structure experimental/<anything>

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.

About

Prototype for construction modeling using fragment-based Case Management

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 92.2%
  • TypeScript 4.2%
  • Less 2.6%
  • Other 1.0%