Giter Club home page Giter Club logo

chor-js-demo's People

Contributors

florian-papsdorf avatar jan-ladleif avatar yt0n1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

chor-js-demo's Issues

Extend validator rules

We should add additional validation rules, now that we can specify ItemDefinitions and such.
What I am thinking of from the top of my head:

  • Timer events can now be specified, and impose some restrictions on their context depending on whether they are absolute or relative. For example:

    For relative timers: Only the Participants involved in the Choreography Activity that
    immediately precedes the Event would know the time. The sender of the Choreography
    Activity that immediately follows the timer MUST be involved in the Choreography Activity
    that immediately precedes the timer. [p. 341 in standard]

  • Exclusive gateway conditions can only reference specific message data:

    The data used for Gateway Conditions MUST have been in a Message that was sent prior to (upstream from) the Gateway.
    More specifically, all Participants that are directly affected by the Gateway MUST have either sent or received the Message(s) that contained the data used in the Conditions. [p. 344 in standard]

    Since there is no required format for those conditions and they can be any formal expression, we cannot be sure which messages are referenced. However, I think we can guess to some degree, e.g., if there is a formal expression order.price > 50 we may assume there must be a message order sent upstream. If not, we can issue a warning.

  • ... and maybe much more other stuff hidden in the standard somewhere.

Proposed Methodology

  1. Go through the standard systematically and collect all constraints.
  2. Consolidate these constraints, look for overlaps, etc.
  3. Discuss whether we can check these constraints.
  4. Implement those which we do not have yet.

Additional Validation for imported models

Include validation checks for incorrect constructs that would not be possible to model with chor-js but could be imported from other editors. Such as parallel gateways after event based gateways, etc.

Add drag & drop support for loading diagrams

Currently, diagrams can only be loaded from the disk via a typical "Open File" dialog. We'd like for users to alternatively be able to drag diagrams (.bpmn files) into the editor and load them.

Add GitHub links

Add a disclaimer to the demo stating who it is maintained by with links to GitHub, etc.

This would mainly be helpful if someone finds the online chor-js-demo and wants to know more.

Wrong XML metadata

Our models still include wrong or outdated XML metadata, for example exporter="org.eclipse.bpmn2.modeler.core". We should update that.

Get rid of JQuery

JQuery is an outdated catastrophe. Just spent an hour fiddling around with something that was solved within 10 seconds with ES6. We should get rid of it and use modern technology.

Keep file name when uploading and downloading

Expected behavior:

As a choreography developer,
when I have created a choreography and named its file
   and I upload the file again to adapt some elements
   and then download the changed file
I expect it to have its original file name,
so I can paste it back to the folder I uploaded it from and replace the old file

Actual behavior:

The file is simply called 'diagram.bpmn'

Get rid of bpmn-js callbacks

We should move to promises over the callbacks.

Error: Passing callbacks to saveXML is deprecated and will be removed in a future major release. Please switch to promises: https://bpmn.io/l/moving-to-promises.html

Provide running online version

There should be a recent instance of chor-js-demo running somewhere that is available online, so people can try it without having to pull/install/run it.

Button to create new diagram

There should be a button to start a new diagram, i.e., delete all existing elements and start with a "fresh" plate.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.