# AToMPM - A Tool for Multi-Paradigm Modelling
AToMPM is a research framework from which you can generate domain-specific modeling web-based tools that run on the cloud. AToMPM is an open-source framework for designing DSML environements, performing model transformations, and manipulating and managing models. It runs completely over the web, making it independent from any operating system, platform, or device it may execute on. AToMPM follows the philosophy of modeling everything explicitly, at the right level of abstraction(s), using the most appropriate formalism(s) and process(es), being completely modeled by itself.

## Installation
A portable .zip version of AToMPM is available for Windows. This portable version is intended for those users with limited installation capabilities, such that they can skip these installation instructions. Please check https://github.com/AToMPM/atompm/releases for the newest release.

To install AToMPM, follow these steps:
* Download and install the latest Python (2.7.X or 3.X.X)
    * Use a package manager on Linux
    * Or visit http://python.org/download/
* Download and install python-igraph
    * Use the pip package manager (comes with Python)
        * For Python2: `pip install python-igraph`
        * For Python3: `pip3 install python-igraph`
    * For Windows, you may need to install the compiled igraph core
        * `http://www.lfd.uci.edu/~gohlke/pythonlibs/#python-igraph`
* Download and install six
    * Use the pip package manager (comes with Python)
        * For Python2: `pip install six`
        * For Python3: `pip3 install six`
* Download and install node.js
    * Use a package manager on Linux
    * Or visit https://nodejs.org/en/download/
* Download and unzip the source files for the newest AToMPM release from https://github.com/AToMPM/atompm/releases
* In the AToMPM folder, run the command `npm install`
    * If you do not need to run tests on AToMPM, you can run `npm install --production`

## Usage

The commands below are for starting the ATOMPM server. Note that the default port is 8124.

Once started, the server can be connected to by accessing http://localhost:8124/atompm in either the Firefox or Chrome browsers.

### Windows
To run AToMPM on Windows, execute the `run.bat` script inside of the main AToMPM folder.

### Mac or Linux
* Execute commands in different terminals
    1. Execute `node httpwsd.js` in the main AToMPM folder
    2. Execute `python mt\main.py` in the main AToMPM folder
    3. Open a browser (Firefox or Chrome) and navigate to http://localhost:8124/atompm

* The above steps are automated by the `run_AToMPM_local.sh` script
* Note that the `run_AToMPM.sh` script can automate the installation and usage of AToMPM
    * The first time you run this script, all dependencies are automatically downloaded and installed in the `dependencies/` folder.
    * If, for any reason, the download process is interrupted or you experience problems with AToMPM, remove the `dependencies/` folder and run the script again.

## Documentation
Documentation for AToMPM can be found here: https://atompm.readthedocs.io

## Testing
To run tests on AToMPM, run `npm test'

## LICENSING
The AToMPM project is licensed under the LGPL as stated in COPYING.lesser.

AToMPM is copyright of the AToMPM team, which includes Raphael Mannadiar, Conner Hansen, Eugene Syriani, Hans Vangheluwe, Simon Van Mierlo, Huseyin Ergin, Jonathan Corley, Yentl Van Tendeloo, Vasco Sousa, and Bentley James Oakes
