Giter VIP home page Giter VIP logo

diagram-designers's Introduction

license Build status Version Downloads

WebGME - Web-based Generic Modeling Environment

Note that this repository contains the full webgme app including a highly extendable graphical user interface and is the typical dependency a webgme app will depend on. To use the webgme framework without a packaged GUI - check out webgme-engine.

Create your own Domain Specific Modeling Languages (DSML) right in the browser. Specify modeling concepts, their relationships, attributes, and aspects by drawing a UML class diagram-based metamodel and WebGME automatically configures itself to support the DSML.

WebGME promotes collaboration where each change is translated into a micro-commit broadcast to all connected users. A lightweight branching scheme is transparently supported by the infrastructure. Code generators and externals tools can work on consistent snapshots (specific commits) while users can continue editing the models.

WebGME provides a variety of extension points for you to customize your application. See below for a list and explainations. All these can be neatly generated, shared and imported using a command line interface.

WebGME-User-Interface

Getting started

Dependencies

Server

  • NodeJS (version >= 14, CI tests are performed on versions 16.x, 18.x and LTS is recommended).
  • MongoDB (2.6 <= version).
  • Git (must be available in PATH).
  • Redis Note that this is only needed if you intend on running multiple webgme nodes behind a reverse proxy.

Browser

We aim to support all the major modern browsers. However we recommend using Chrome for two reasons: manual testing is mostly done using chrome and all performance profiling is done against the V8 JavaScript Engine.

Tutorials

  • Step by step tutorial - Explains meta-modeling in webgme and builds up a small application for Electrical Circuits.
  • Tutorial from seminar 2015 - Shows development techniques in webgme and builds up a Finite State Machine domain. This tutorial requires familiarity with meta-modeling.

Using WebGME

You can always try out webgme at our public deployment at webgme.org. After a certain point you probably want to host your own server with custom running code and visualization. At this point follow the instructions at 1.

  1. webgme-cli. This is the preferred way of using webgme as it allows you to:
  • Automatically generate boilerplate code for extensions (w/o manually configuring paths etc.).
  • Reuse components from other users.
  • Publish and share your work with others.
  • Updating to newer webgme releases only requires a npm install webgme and won't cause any conflicts.
  • Note that if cloning an existing repository constructed with webgme-cli, it is only necessary to install webgme-cli if you intend to create/import new components.
  1. For webgme developers, clone this repo.
  • install packages with npm npm install
  • launch mongod locally, e.g.
docker run --name my-mongo -d -p 27017:27017 mongo:4.4
  • start the server npm start

After the webgme server is up and there are no error messages in the console. Open a valid webgme address in the browser. The default is http://127.0.0.1:8888/, you should see all valid addresses in the console where you started webgme. To view the available documentation visit <host>/api.

Command line interface

The webgme-engine provides a range of bin scripts, see here for list of all.

Extensions

  • Plugins - Model interpretation for e.g. code generation.
  • Executor - Job execution framework over multiple worker nodes.
  • Rest Routers - Add custom REST API routes with access to gme-auth and storage APIs.
  • Constraints - Add custom constraints based on meta-types.
  • AddOns - Continuous model interpretation for e.g. constraint evaluation.
  • Webhooks - External event emitting based on changes in storage/models.
  • Layouts - Configure the layout of the generic UI.
  • Visualizers - Add complete visualizers to the generic UI.
  • Decorators - Add custom decoration to the nodes in the model editor.

See gme-config for available configuration parameters.

Change log

See CHANGELOG

Contributing

See CONTRIBUTING

License

See the LICENSE file.

diagram-designers's People

Contributors

kecso avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

pmeijer

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.