Skip to content
Web-based Generic Modeling Environment
JavaScript CSS HTML
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
config Bump engine version to 2.24.0 Nov 15, 2019
docs Update dependencies.rst Oct 8, 2018
img Give a short introduction to webgme in README (#1350) Mar 25, 2017
src/client Change focus context when clicking node references in plugin messages. Apr 19, 2020
test-karma Split up the repository where webgme-engine contains the server and C… Sep 13, 2017
test-tmp
test
typings Rename feature (#1477) Jul 31, 2017
utils jquery 3.3.1 and bower updates (#1660) Jan 4, 2019
.bowerrc Fixed dockerfile so it builds and runs the default configuration (#998) May 26, 2016
.gitattributes webgme-engine v2.18.5 (#1549) Nov 14, 2017
.gitignore Adding package-lock.json Dec 18, 2017
.jscsrc Reformatting of entire repository. Apr 24, 2015
.jshintrc
.travis.yml Updating travis tests. Node 6 is removed, 12 is added. Nov 15, 2019
AUTHORS #248 add bin scripts to npm.scripts. Mar 20, 2015
CHANGELOG.md README.md for 2.41.0 May 1, 2020
CONTRIBUTING.md Split up the repository where webgme-engine contains the server and C… Sep 13, 2017
LICENSE New year 2019 Jan 2, 2019
README.md Update README.md Apr 12, 2019
app.js
appveyor.yml webgme-engine v2.18.5 (#1549) Nov 14, 2017
bower.json jquery 3.3.1 and bower updates (#1660) Jan 4, 2019
karma.conf.js Split up the repository where webgme-engine contains the server and C… Sep 13, 2017
package-lock.json Release 2.41.1 May 2, 2020
package.json
test-main.js Multline code-editor edits attributes using operational transformatio… Dec 14, 2017
tsdoc.json Add Typescript bindings (#1341) Mar 13, 2017
webgme.js Split up the repository where webgme-engine contains the server and C… Sep 13, 2017

README.md

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 >= 4, CI tests are performed on versions 8.x, 10.x and LTS is recommended).
  • MongoDB (version >= 2.6).
  • 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
  • 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.

You can’t perform that action at this time.