Skip to content

webgme/mic

Repository files navigation

WebGME-MIC

This repository contains a Design Studio that is aimed for students learning the principles of Model Integrated Computing. The deployment collects several domains and UI extensions that helps newbies to strangthen their knowledge when it comes to modeling, meta-modeling, model interpretation.

Installation

To install the Studio and all of its tools, the user needs a machine with Docker as the deployment is a collection of docker images that needs to run together. There are two variations, the default is created to run in a linux environment with some shared directories that contains security keys and the database files, while the local is intended to either windows or linux or mac-os environment without any security features or permanent database. The steps to install the default version is:

  • Clone this repository
  • create directories ~/dockershare/token_keys, ~/dockershare/ssl_certs, ~/dockershare/blob-local-storage, ~/dockershare/db
  • generate token_keys and ssl_certs with certbot for example and place them in their respective directories inside the dockershare
  • docker-compose build
  • docker-compose up -d

This should start every container and the Studio should be available at the port 443 (https).

Containers

The system is composed of the following containers:

  • web this container runs the nginx reverse proxy and supposed to provide secure connection to the world
  • webgme-server contains the actual webgme application with all the additional UI and domain elements
  • mongo is the mongoDB server holding all project and user information
  • py-core-executor container is an on demand container that is cloned whenever a plugin should be executed as the plugins are managed by a docker-worker-manager
  • jupyter container runs the jupyter server that is used by the ViewNotebook visualizer to show the generated notebooks

Components

Here is the list of the components made specifically in this Design Studio:

  • ViewNotebook is a visualizer that uses an iframe to show the Jupyter notebook attached to the project (by its unique id). Whenever there is no prepared notebook, it notifies the user to call the proper plugin to generate the notebook. To properly use this visualizer, the user could start by using the JupyterGraph seed.
  • JupyterGraph seed is a simple graph domain that has the visualizers and plugins configured, so the user can start easily with Jupyter notebook cooperation scenarios.
  • SendGraphToJupyter plugin generates a jupyter notebook and send uploads it to the server, after successfull execution, the ViewNotebook visualizer is functional.
  • UpdateGraphPositions plugin is created so the jupyter notebook can communicate new graph coordinates back to the webgme server. In its original form, it just accepts a JSON object with node ids and coordinates, and tries to apply it to the active graph model.

About

Model Integrated Computing - Design Studio tailored for the eager learners of the subject

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published