{"id":19475681,"url":"https://github.com/iondv/studio","last_synced_at":"2025-04-25T14:31:59.456Z","repository":{"id":51074326,"uuid":"181200427","full_name":"iondv/studio","owner":"iondv","description":"Studio is an IONDV. Framework specialized IDE that helps accelerate the development of applications on the framework. Try it - https://studio.iondv.com‌.","archived":false,"fork":false,"pushed_at":"2021-05-25T02:10:28.000Z","size":3413,"stargazers_count":8,"open_issues_count":3,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-03T22:41:34.005Z","etag":null,"topics":["ide","iondv","iondv-app","javascript","javascript-applications","rad"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iondv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-04-13T16:41:22.000Z","updated_at":"2024-12-22T12:30:36.000Z","dependencies_parsed_at":"2022-09-04T08:40:26.888Z","dependency_job_id":null,"html_url":"https://github.com/iondv/studio","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iondv%2Fstudio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iondv%2Fstudio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iondv%2Fstudio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iondv%2Fstudio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iondv","download_url":"https://codeload.github.com/iondv/studio/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250834090,"owners_count":21494907,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ide","iondv","iondv-app","javascript","javascript-applications","rad"],"created_at":"2024-11-10T19:34:14.408Z","updated_at":"2025-04-25T14:31:56.136Z","avatar_url":"https://github.com/iondv.png","language":"JavaScript","readme":"\u003ch1 align=\"center\"\u003e \u003ca href=\"https://www.iondv.com/\"\u003e\u003cimg src=\"/studio_logo_mini.png\" alt=\"IONDV. Framework\" width=\"600\" align=\"center\"\u003e\u003c/a\u003e\n\u003c/h1\u003e  \n\n\u003ch4 align=\"center\"\u003eJS framework for rapid business application development\u003c/h4\u003e\n  \n\u003cp align=\"center\"\u003e\n\u003ca href=\"http://www.apache.org/licenses/LICENSE-2.0\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg?style=flat\" alt=\"license\" title=\"\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ch3\u003e\n    \u003ca href=\"https://www.iondv.com/\" target=\"_blank\"\u003e\n      Website\n    \u003c/a\u003e\n    \u003cspan\u003e | \u003c/span\u003e\n    \u003ca href=\"https://www.iondv.com/portal/get-it\" target=\"_blank\"\u003e\n      Get it Free\n    \u003c/a\u003e\n    \u003cspan\u003e | \u003c/span\u003e\n    \u003ca href=\"https://github.com/iondv/framework/docs/en/index.md\" target=\"_blank\"\u003e\n      Documentation\n    \u003c/a\u003e\n  \u003c/h3\u003e\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://twitter.com/ion_dv\" target=\"_blank\"\u003e\u003cimg src=\"/twitter.png\" height=\"36px\" alt=\"\" title=\"\"\u003e\u003c/a\u003e\n\u003ca href=\"https://www.facebook.com/iondv/\" target=\"_blank\"\u003e\u003cimg src=\"/facebook.png\" height=\"36px\" margin-left=\"20px\" alt=\"\" title=\"\"\u003e\u003c/a\u003e\n\u003ca href=\"https://www.linkedin.com/company/iondv/\" target=\"_blank\"\u003e\u003cimg src=\"/linkedin.png\" height=\"36px\" margin-left=\"20px\" alt=\"\" title=\"\"\u003e\u003c/a\u003e\n\u003ca href=\"https://www.instagram.com/iondv/\" target=\"_blank\"\u003e\u003cimg src=\"/insta.png\" height=\"36px\" margin-left=\"20px\" alt=\"\" title=\"\"\u003e\u003c/a\u003e \n\u003c/p\u003e\n\n# IONDV. Studio\n\nЭта страница на [Русском](/readme_ru.md)\n\n**Studio** is an IONDV. Framework application. It may be used as a standalone node.js application or a Desktop application.\n\n#### Start with IONDV. Framework\n\n* [IONDV. Framework](https://github.com/iondv/framework/)\n* [IONDV. Framework Docs](https://github.com/iondv/framework/blob/master/docs/en/index.md)\n\n\u003ch1 align=\"center\"\u003e \u003ca href=\"https://www.iondv.com/\"\u003e\u003cimg src=\"/iondv-studio.png\" alt=\"IONDV. Studio\" align=\"center\"\u003e\u003c/a\u003e\n\u003c/h1\u003e  \n\n\n## Description \n\n**Studio** is created to develop or edit metadata (for example class, navigation, view, workflow, \nportal interfaces) that can be deployed as an IONDV application. \n\n### How to create an app?\n\nWatch a brief [video](https://www.youtube.com/watch?v=e201ko9fkQ8\u0026t=331s) about the creation of a simple app - [IONDV. Nutrition-tickets](https://github.com/iondv/nutrition-tickets) in **IONDV. Studio**. [Tutorial](https://github.com/iondv/nutrition-tickets/blob/master/tutorial/en/index.md) is available in the **IONDV. Nutrition-Tickets** repository.\n\n\u003ca href=\"https://www.youtube.com/watch?v=e201ko9fkQ8\u0026t=331s\" target=\"_blank\"\u003e\u003cimg src=\"/tickets_video.png\" height=\"250px\" alt=\"\" title=\"\"\u003e\u003c/a\u003e\n\nSteps to create an application using IONDV. Studio:\n\n1. Create an application by clicking on the `+`. In the pop-up window, fill in the required fields. The tab of the application you created appears in the upper left corner and easy to control as a browser tabs.\n\n2. A side menu appears - the application's work panel. The classes section is used to create classes and attributes.\n\n3. An application starts with a class. Click on the class and in the workspace click `+ Class`. And in the pop-up window we fill in the required fields. Description of the fields can be found [here](https://github.com/iondv/framework/blob/master/docs/en/2_system_description/metadata_structure/meta_class/meta_class_main.md).\n\n4. We have a class with the ID attribute which is created automatically.\n\n5. When a class is highlighted, you can add attributes to it by clicking on the `+ attribute`. Description of properties and attribute types can be found [here](https://github.com/iondv/framework/blob/master/docs/en/2_system_description/metadata_structure/meta_class/meta_class_attribute.md).\n\n6. When you have at least 2 classes, you can configure connections between them. This is done by setting the data type when creating a class attribute. The main types are [Collection](https://github.com/iondv/framework/blob/master/docs/en/2_system_description/metadata_structure/meta_class/atr_itemclass_backcoll.md) and [Reference](https://github.com/iondv/framework/blob/master/docs/en/2_system_description/metadata_structure/meta_class/atr_ref_backref.md). The specified data type of the attribute will be displayed in the workspace as a connecting line.\n\nThe classes you created and their attributes will appear in the \"Class\" section. This is called the project tree, which will guide you when the application classes become larger.\n\nThis is the basic steps to create an app.\n\n### IONDV. Framework in brief\n\n**IONDV. Framework** - is a node.js open source framework for developing accounting applications\nor microservices based on metadata and individual modules. Framework is a part of \ninstrumental digital platform to create enterprise \n(ERP) apps. This platform consists of the following open-source components: the [IONDV. Framework](https://github.com/iondv/framework), the\n[modules](https://github.com/topics/iondv-module) и ready-made applications expanding it\nfunctionality, visual development environment [Studio](https://github.com/iondv/studio) to create metadata for the app.\n\n* For more details, see [IONDV. Framework site](https://iondv.com). \n\n* Documentation is available in the [Github repository](https://github.com/iondv/framework/blob/master/docs/en/index.md).\n\nBelow is a short introduction in the metadata types. Please read it to become more confident in using **IONDV. Studio**.\n\n\u003cdetails\u003e\n  \u003csummary\u003e \n    \u003ch3\u003e \n      Metadata Description\n    \u003c/h3\u003e \n  \u003c/summary\u003e\n\n[IONDV. Framework](https://iondv.com/) is based on metadata. Metadata (Meta) - a complex of JSON files that describe the set of structures, which the app uses to operate. We have three main types of meta: meta class, meta view and meta navigation. \n\n### Class\n\nClick plus to create a new class, you will see a new window with five fields to fill in. Two of them - marked with a red asterisk - are mandatory to fill: Name and Caption. The other three fields are the properties that describe the class: Ancestor, Creation tracker, Modification tracker.\n\n* **Name** - the system name.\n* **Caption** - the logical name that is displayed in the UI.\n* **Ancestor** - the inheritance that allows you to create a new meta class based on a parent one with all its attributes. [Read more](https://github.com/iondv/framework/blob/master/docs/en/2_system_description/metadata_structure/meta_class/ancestor.md).\n* **Creation tracker**- the time tag of created objects: allows you to save the date/time of creation of the object in the class. It requires the corresponding class attribute, \"name\" of which should be entered into this field. [Read more](https://github.com/iondv/framework/blob/master/docs/en/2_system_description/metadata_structure/meta_class/time_user_tracker.md).\n* **Modification tracker** - the time tag of committed changes: allows you to save the date/time of committed changes of the object in the class. It requires the corresponding class attribute, \"name\" of which be entered into this field. [Read more](https://github.com/iondv/framework/blob/master/docs/en/2_system_description/metadata_structure/meta_class/time_user_tracker.md).\n\n### Class Attributes\n\nClick plus to create a new class attribute, and you will see a new window with seven fildes to fill in.\nThree of them are mandatory to fill - Name and Caption mean the same as for class.\n\n* **Attribute types** - indicates the type of data supported by the attribute. [Read more](https://github.com/iondv/framework/blob/master/docs/en/2_system_description/metadata_structure/meta_class/property_types.md).\n* **Order number** - sets the position of the attribute regarding the other attributes of the same class.\n* **Hint** - specifies the message that will appear in the UI next to the attribute name.\n* **Reference class** - is a data type that stores a simple value and that system interprets as a reference to the key attribute of an object of another class. [Read more](https://github.com/iondv/framework/blob/master/docs/en/2_system_description/metadata_structure/meta_class/atr_ref_backref.md).\n* **Item class** - is a data type that allows you to display the list of other objects in one. [Read more](https://github.com/iondv/framework/blob/master/docs/en/2_system_description/metadata_structure/meta_class/atr_itemclass_backcoll.md).\n* **Read-only** - allows or denies changing the attribute value.\n* **Nullable** - allows or denies an empty attribute value.\n* **Unique** - is a unique value that disables create two class objects with the same values.\n* **Auto-assigned** - allows or denies autocompletion of the fields.\n\n### IONDV. Framework Documentation\nThe IONDV.Framework documentation is available in two languages — English and Russian. See the full detailed information in our [documentation](https://github.com/iondv/framework/blob/master/docs/en/index.md).\n \u003c/details\u003e\n\n### Demo\nGo to \u003ca href=\"https://studio.iondv.com\"\u003estudio.iondv.com\u003c/a\u003e to try the demo. No registration or account needed.\nYou can also test the [simplified version](https://iondv.com/portal/index#page-try) with preloaded application.\n\n## How to use?\n\n### Github\nIn order to develop an application in the Studio, you need to run it in one of the following ways:\n\n* Use the (demo version)[https://studio.iondv.com] of IONDV. Studio.\n* Build Studio localy as an application of [IONDV. Framework](https://github.com/iondv/framework). \nGet source code from [github](https://github.com/iondv/studio). Build and deploy it, open Studio link `http://localhost:8888` in your browser\n* Build Studio localy as standalone node.js version - see instructions below.\n* Build Studio localy as Desktop application (node-webkit) - see instructions below.\n* Run as docker container `docker run -d -p 8888:8888 --name studio iondv/studio`. Open Studio `http://localhost:8888` in your browser.\n\nAfter that:\n* Develop your application, by changing or adding the additional components.\n* Please notice, it is saved only locally in the browser. Export all metadata as zip-file.\n* Get the last version of the IONDV. Framework and the IONDV. Registry module: check out from the GitHub\n[Framework](https://github.com/iondv/framework) and [Registry](https://github.com/iondv/registry) repositories.\n* Follow the typical deployment instruction from git, but instead of the application, expand in the `applictions` folder your archive.\n* Further you need to build and deploy your application as a typical \n[IONDV. Framework](https://github.com/iondv/framework) application.\n\n\n### Docker\nFollow these steps to deploy a docker container:\n\nStart application as a docker container `docker run -d -p 8888:8888 --name studio iondv/studio`. \n\nOpen the link `http://localhost:8888` in your browser.\n\n## Specific Studio use\n###  Standalone node.js app\n\nIONDV. Studio as a standalone application does not require a database or IONDV. Framework.\n\nExecute the `git clone https://github.com/iondv/studio.git` command. Change the folder to `studio`. \n\nExecute the `npm install` to install all key dependencies, including the `gulp` build-tool locally. Please make sure that the Gulp version is `4.0`. \n\nFurther, execute the `gulp build` command to build the app.\n\nRun the app, executing the `npm start` or `node www` command (`node standalone` to run the application as [standalone](/readme-standalone_ru.md).)\n\nOpen this link `http://localhost:8888` in your browser.\n\n### Desktop IONDV. Studio (node-webkit)\n\nFirst of all build the **Standalone node.js version**.\n\n#### Build of node-webkit executable file\n\n1. Download the latest **NORMAL** version of node-webkit from the website https://nwjs.io/.\n2. Extract the contents of the archive to any convenient folder.\n3. Use one of the available methods to connect the application and node-webkit.\n\nExamples are described in the article \nhttps://github.com/nwjs/nw.js/wiki/How-to-package-and-distribute-your-apps in paragraphs **2a** and **2b**.\n\nA more convenient option is to use the package [**nw-builder**](https://github.com/nwjs-community/nw-builder).\nFor example: `nwbuild ./studio -p win64 -v 0.34.0 -o ./destination`. \n**Nw-builder** will download the required version of node-webkit.\n\nAs a result, you will get your application in the DLL folder that nwjs uses.\n\nYou can run the application using nw.exe file (name may vary).\n\n#### Build of a single executable file\n\n1. Download **Enigma virtual box** from the website **https://enigmaprotector.com/en/downloads.html** install and run\n2. Enter the path to the executable file of your application in the first field. (You can choose)\n3. Enter the path to save the executable file in the second field.\n4. Enter in the field Files *ALL* files and folders from the directory of your application except the executable file \n5. In the menu Files options, check Compress. \n6. Click Process and wait for the result.\n\nThe original instruction in English is presented on the \n[website](https://github.com/nwjs/nw.js/wiki/How-to-package-and-distribute-your-apps) in paragraph \n*An alternative way to make an executable file in Windows*\n\n#### Links\n\n* [Git repository](https://github.com/iondv/studio.git)\n* [Node-webkit](https://nwjs.io/)\n* [Node-webkit wiki](https://github.com/nwjs/nw.js/wiki/How-to-package-and-distribute-your-apps)\n* [Package for build execution file](https://github.com/nwjs-community/nw-builder)\n* [Program for DLL link](https://enigmaprotector.com/en/downloads.html)\n* [User's manual - russian version](manuals/RP_studio.docx)\n* [Run the application as a standalone](/readme-standalone.md)\n* [Tutorial \"How to create an app using ION. Studio\"](https://github.com/iondv/nutrition-tickets/blob/master/tutorial/en/index.md)\n\n--------------------------------------------------------------------------  \n\n\n #### [License](/LICENSE) \u0026ensp;  [Contact us](https://iondv.com) \u0026ensp;  [Russian](/readme_ru.md)   \u0026ensp; [FAQs](/faqs.md)          \n\n\u003cdiv\u003e\u003cimg src=\"https://mc.iondv.com/watch/github/docs/app/studio\" style=\"position:absolute; left:-9999px;\" height=1 width=1 alt=\"iondv metrics\"\u003e\u003c/div\u003e\n\n--------------------------------------------------------------------------  \n\nCopyright (c) 2019 **LLC \"ION DV\"**.  \nAll rights reserved. ","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiondv%2Fstudio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiondv%2Fstudio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiondv%2Fstudio/lists"}