Documentation for the IONDV.Framework platform

IONDV. Framework logo

JS framework for rapid business application development

license

Twitter Facebook LinkedIn Instagram Youtube

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

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

IONDV. Framework

Description

IONDV. Framework - это опенсорный фреймворк на node.js для разработки учетных приложений на основе метаданных в формате JSON/YAML и отдельных функциональных модулей. Визуальный редактор Studio позволяет создавать приложения по технологии “no code” и собирать приложение с веб-сервисами REST-API (модуль rest). Ключевой модуль registry является универсальным средством представления и редактирования данных, обработки их по бизнес-процессам.

На видео технология разработки и сборки приложения.

Free Demos

For now, we have three demos to show you:

  • Studio - специализированная IDE созданная как приложение iondv, для визуальной (no code) разработки приложений на IONDV. Framework. GitHub Репозиторий. Видео инструкция и текстовая по созданию приложения при помощи ION. Studio.
  • Telecom - приложение по организации учета, хранения и отображения данных о наличии услуг связи (интернет, сотовая связь, телевидение, почта и др.) в населенных пукнтах региона. GitHub Repo
  • DNT - приложение для разработки и тестирования функциональности фреймворка, в котором каждая учетная сущность отражает тим метаданных, например класс “строка”, или класс “коллекция”. Это позволяет изучать возможности фреймворка через приложение. GitHub Репозиторий.
  • War Archive (in Russian) - is the IONDV. Framework web-application designed to store, group and demonstrate the data based on archival documents about Great Patriotic War (World War II). `GitHub Repo`_.
  • Project Management - приложение по организации проектной деятельности региональных ОГВ , целью которой является контроль результатов, соблюдение и сокращение сроков их достижения, эффективное использование временных, человеческих и финансовых ресурсов, принятие своевременных и обоснованных управленческих решений. GitHub Repo
  • CRM - coming soon on GitHub.

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

Typical applications

Фреймворк - конструктор веб-приложений любой специфики, так как преметная область определяется структурой метаданных, описывающих поведение приложение. Например можно создать приложения

  • CRM - управления отношения с клиентами;
  • учет и управление ресурсов предприятия;
  • автоматизация бизнес-процессов организации и документооборота;
  • сбор и хранение любых данных, например метрик оборудования (IoT);
  • представление данных в виде порталов;
  • REST-API для SPA приложений;
  • REST-API и бекграунд для мобильных приложений;

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.

Структура фреймворка: core + metadata + modules = application

Application structure - core, metadata, modules

На рискнуке: - ioncore - ядро приложения в виде IONDV. фреймворка - meta class, meta view, meta navigation, meta workflow, meta security - функциональные метаданные приложения - структуры, представления, навигации, бизнес-процессов и безопасности соответственно - registry module - подлкючаемые функциональные модули, например модуль registry для просмотра и редактирования данных Чуть ниже представлены дополнительные типы меты и модули. Они представляют собой дополнительную функциональность и применяются в соответствии с приложением. Зависимости приложения смотрим в файле package.json.

Так как приложение - это метаописание его поведения в файлах формата JSON (YAML) и функциональный код и HTML шаблоны расширяющие типовую функциональность - то с ним удобно работать через репозиторий версий git. Посмотрите примеры на Github

Подробнее о функциональных возможностях фреймворка и его модулей можно узнать в документации.

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:

  • инсталятор для операционной системы Linux
  • клонирование репозитория приложения и установка всех компонентов (инструкция ниже)
  • docker-контейнеры с собранными приложениями

Software requirements

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

Для хранения данных необходимо установить и запустить MongoDb версии старше 3.6.

Installer

Для ускорения Вы можете использовать установщик приложений IONDV. Framework iondv-app, требующий установленных node, mongodb и git. В ходе установки будет проверены и установлены все остальные зависимости, а также собрано и запущено само приложение.

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

Где параметры для iondv-app localhost:27017 адрес MongoDB, а develop-and-test название приложения. После запуска открыть ссылку ‘http://localhost:8888’, типовая учетная запись бек офиса demo, пароль ion-demo.

Дугой способ заключается в клонировании сборщика - (git clone https://github.com/iondv/iondv-app.git) и установите приложение с помощью команды 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.
  • для версий IONDV. Framework 3.x.x и более ранних нужен менджер пакетов фронтенд библиотек Bower npm install -g bower. Для версия 4.х.х и старше не требуется.

Ручная установка ядра, модулей и приложения

Рассматриваем на примере приложения develop-and-test. Находим приложение develop-and-test в репозитории. Смотрим зависимости указаные в файле 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"
  • Начинаем установку с ядра, версия которого указана в парметре "engines": {"ion": "1.24.1"}. Скопируйте адрес репозитория ядра и в командной строке выполните комманду git clone https://github.com/iondv/framework. Перейдите в папку ядра, переключитесь на tag номера версии git checkout tags/v1.24.1. Так как совместимость обеспечивается на уровне метаданных, а новые версии выпускались из-за изменения технологии сборки, то вы можете использовать последнии, например 4.0.0.
  • После этого устанавливаются необходимые для приложения модули, указанные в параметре "ionModulesDependencies". Модули устанавливаются в папку modules ядра, для этого перейдите в неё командой cd modules. Клонируем модули из списка "ionModulesDependencies", для модуля registry это осуществляется коммандой git clone https://github.com/iondv/registry. Перейдите в папку установленного модуля, переключитесь на tag номера версии git checkout tags/v1.27.1. Повторите для каждого модуля. Для большинства приложений, можно использовать последние совместимые с ядром модули.
  • Установка самого приложения осуществляется в папку applications, для этого перейдите в неё командой cd ..\applications, если вы находитесь в папке модулей. Установку выполните клонированием репозитория коммандой git clone https://github.com/iondv/dnt_ru.
  • 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.

Создайте конфигурационный файл setup.ini в папке config куда вы клонировали фреймворк для задания основных параметров окружения приложения.

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.

Задайте переменную окружения NODE_PATH равной пути к ядру приложения следующей командой set NODE_PATH=c:\workspace\dnt для Windows и export NODE_PATH=/workspace/dnt для Linux, где workspace\dnt - папка куда склонирован фреймворк.

При первом запуске необходимо выполнить npm install - она поставит ключевые зависимости, в том числе локально сборщик gulp.

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

Если вы хотите выполнить импорт данных в вашем проекте, проверьте папку data в приложении и выполните команду: node bin/import-data --src ./applications/develop-and-test/data --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

Запустите приложение командой в папке ядра npm start или node bin\www.

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. Откройте ссылку http://localhost в браузере через минуту (время требуется для инициализации данных). Для авторизации используйте типовой логин: demo, пароль: 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

Copyright (c) 2016-2020 LLC “ION DV”.
All rights reserved.