Documentation for the IONDV.Framework platform

IONDV. Framework logo

JS framework for rapid business application development

license

Эта страница на Русском

IONDV. Framework in numbers: rest api, soap, json, yaml, JavaScript - free open source web business application development

IONDV. Framework - is a node.js open source framework for developing accounting applications or microservices based on metadata and individual modules. Framework is a part of instrumental digital platform to create enterprise (ERP) apps. This platform consists of the following open-source components: the `IONDV. Framework<https://github.com/iondv/framework>`_, the modules and ready-made applications expanding it functionality, visual development environment Studio to create metadata for the app.

Description

IONDV. Framework — is a tool for creating high-level web applications based on metadata. You can change the system by adding the additional components to change functionality. There are ready-made modules, but nothing limits you to create new ones to personalize the application. Moreover, it’s low-code framework.

The main purpose is the implementation of complex data registry systems. The functional base is the data registry - the Registry module. This is a key module designed specifically to work with data based on metadata structures - including the management of projects, programs, activities, etc.

IONDV. Framework is an open source software in JavaScript with open metadata structure in human-readable JSON files.

How to design an application?

What? Business application of any class.

How? Describe the data and apply ready-made modules that you can adjust for specific tasks.

core + metadata + modules = application

Application structure - core, metadata, modules

In the square frames - ioncore, meta class, meta view, meta navigation и registry module - are the base of the simplest application. Below are additional types of meta and modules. They represent additional functionality and could be applied in accordance with the application. Look for the application dependencies in the package.json file.

Typical applications

We give you a frame for creating applications in JavaScript, both enterprise level and highly functional - from the portal to analytics:

  • Document Management;
  • Accounting and Reporting;
  • Enterprise Resource Management;
  • Workflow Management and Project Activities;
  • Data Capture;
  • Business Analytics;
  • System Integration.

Free Demos

For now, we have three demos to show you:

The login for access is - demo and the password is - ion-demo. No registration required.

Top features

IONDV. Framework provides the following functionality:

  • descriptive metadata into the data storage structure in the DBMS;
  • functionality to work with various DBMS (ORM technology);
  • authorization in a system with different policies, by default oath2, with an open, configurable API for connecting passport library authorization modules which provides up to 500 different authorization policies;
  • securing access to data - static securing to data types, to navigation, to stages of business processes, to actions on a form; dynamic securing- through the conditions in the data that the profile of the current user must correspond to (belonging to the unit or organization specified in the object, group or other conditions); through url; providing exceptions in authorization and security by url or for a special user;
  • connection of modules providing additional functionality and implemented through access to the kernel interfaces (APIs);
  • providing import, export of data in the system, metadata, security from files;
  • providing interaction with the file system for storing data, including external file storages, such as nextcloud;
  • calculating values with formulas and caching this data;
  • providing eager loading and data filtering in connected collections;
  • caching requests and sessions in memcached, redis;
  • scheduled tasks;
  • notification of users by events.

You can find out more about the functionality of the framework and its modules.

Quick start

You can get access to the already built applications deployed on Cloud servers or explore the different ways on the IONDV.Framework site, for example:

  • gitclone with this repository
  • installer for linux operating system
  • docker-container with the already built application
  • archive with the already built application

Software requirements

Install Node.js runtime and npm package manager to run the IONDV.Framework. Version 10.x.x.

Install and run the MongoDB DBMS to store the data. Version 3.6.

Installer

You can use IONDV. Framework `apps installer`_, requiring installed node.js, mongodb and git. During the installation, all other dependencies will be checked and installed, and the application itself will be built and run.

Install in one command:

bash <(curl -sL https://raw.githubusercontent.com/iondv/iondv-app/master/iondv-app) -t git -q -i -m localhost:27017 develop-and-test

Where the parameters for iondv-app localhost: 27017 is the MongoDB address, and develop-and-test is the name of the application. After starting, open the link ‘http://localhost:8888’, back office account - demo, password - ion-demo.

Also another way is to clone - (git clone https://github.com/iondv/iondv-app.git) and install the application using the command bash iondv-app -m localhost:27017 develop-and-test.

You can also build the application in docker containers, then from the environment you only need docker and the mongodb DBMS in the docker container. More details on the IONDV. Framework application builder page iondv-app

Gitclone with repository

Global dependencies

To build all components and libraries, you need to install the following components globally:

  • package node-gyp npm install -g node-gyp. For the Windows operating system, it is additionally necessary to install the windows-build-tools package npm install -g --production windows-build-tools.
  • Gulp <http://gulpjs.com/>`_installation package ``npm install -g gulp@4.0`. 4.0 - supported version of Gulp.
  • package manager of frontend libraries `Bower<https://bower.io>`_ npm install -g bower.

Core, modules and application

Let’s consider the example of the develop-and-test application. At the place of the develop-and-test application, the path may indicate namespace. This means that you must put the name of the application in the path yourself, instead of namespace. Find the develop-and-test application in the repository. Look at the dependencies specified in the package.json.

 "engines": {
  "ion": "1.24.1"
},
"ionModulesDependencies": {
  "registry": "1.27.1",
  "geomap": "1.5.0",
  "graph": "1.3.2",
  "portal": "1.3.0",
  "report": "1.9.2",
  "ionadmin": "1.4.0",
  "dashboard": "1.1.0",
  "lk": "1.0.1",
  "soap": "1.1.2",
  "gantt-chart": "0.8.0"
},
"ionMetaDependencies": {
  "viewlib": "0.9.1"
  "viewlib-extra": "0.1.0"
  • Install the core, its version is specified in the "engines": {"ion": "3.0.0"} parameter. Copy the URL of the core repository and execute the command git clone https://github.com/iondv/framework.git dnt, where dnt is a application name, for example full path is /workspace/dnt’. Go to the core folder and switch the tag of the version number git checkout tags/3.0.0.
  • Further, install the modules listed in the``”ionModulesDependencies”`` parameter. Navigate to the module folder executing the cd modules command. Clone modules from the "ionModulesDependencies" list, for the registry module the command is git clone https://github.com/iondv/registry.git. Go to the folder of the installed module and switch the tag of the version number git checkout tags/3.0.0. Repeat for each module.
  • To install the application, go to the application folder executing the cd ..\applications command, if you’re in the module folder. Clone the path to repository by git clone https://github.com/iondv/develop-and-test.git command. Go to the folder of installed application and switch the tag of the version number git checkout tags/2.0.0
  • Finally, install all necessary applications listed in the "ionMetaDependencies" parameter in the applications folder. Make sure that you’re inside this folder. Clone the dependencies in ionMetaDependencies, in particularly viewlib - a additional application - library of views templates. Execute the git clone https://github.com/iondv/viewlib.git to clone to the applications folder. Go to the folder of installed application and switch to the tag of the version number git checkout tags/0.9.1. Repeat for each application.

Building, configuring and deploying the application

Building the application provides installation of all dependent libraries, importing data into the database and preparing the application for launch.

Create the configuration file setup.ini in the /config folder of the core to set the main parameters of the application environment.

auth.denyTop=false
auth.registration=false
db.uri=mongodb://127.0.0.1:27017/db
server.ports[]=8888
module.default=registry
fs.storageRoot=./files
fs.urlBase=/files

Open the file and paste the text above. The main parameter is db.uri=mongodb://127.0.0.1:27017/iondv-dnt-db. It shows the base name that we use for the application. The DB will be created automatically.

Set the NODE_PATH environment variable which is equal to the path of the application core. For Windows the command is set NODE_PATH=c:\workspace\dnt, for Linux - export NODE_PATH=/workspace/dnt, where /workspace/dnt is the directory of the application.

The npm install installs all key dependencies, including locally the gulp build-tool. Please make sure that the Gulp version - is 4.0.

Further, execute the gulp assemble command to build and deploy the application.

If you want to import data into your project, check the demo data in the data folder of the application and run the command: node bin/import-data --src ./applications/develop-and-test --ns develop-and-test

Add the admin user with the 123 password executing the node bin/adduser.js --name admin --pwd 123 command.

Add admin rights to the user executing the node bin/acl.js --u admin@local --role admin --p full command.

Running

Run the app, executing the npm start or node bin/www command.

Open this link http://localhost:8888 in a browser and log in. 8888 — is a port in the server.ports parameter.

Docker

Follow these steps to deploy docker container on the example of the develop-and-test application:

  1. Run mongodb DBMS: docker run --name mongodb -v mongodb_data:/data/db -p 27017:27017 -d mongo
  2. Run IONDV. develop-and-test docker run -d -p 80:8888 --link mongodb iondv/dnt.
  3. Open the http://localhost link in the browser in a minute (it takes time to initialize the data). For back office login: demo, password: ion-demo

Documentation

The IONDV.Framework documentation is available in two languages — english and russian.

Reference

Some handy links to learn more information on developing applications using IONDV.Framework.


License Contact us English

iondv metrics

Copyright (c) 2018 LLC “ION DV”.
All rights reserved.