{"id":24736346,"url":"https://github.com/engineering-research-and-development/dymer","last_synced_at":"2025-10-08T09:53:27.351Z","repository":{"id":50325678,"uuid":"277473841","full_name":"Engineering-Research-and-Development/DYMER","owner":"Engineering-Research-and-Development","description":null,"archived":false,"fork":false,"pushed_at":"2025-05-16T08:38:03.000Z","size":40553,"stargazers_count":6,"open_issues_count":1,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-05-16T09:23:57.359Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Engineering-Research-and-Development.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-07-06T07:34:47.000Z","updated_at":"2025-05-16T08:38:07.000Z","dependencies_parsed_at":"2023-02-16T18:02:22.789Z","dependency_job_id":"b473b381-006f-4507-967d-4cf712200c27","html_url":"https://github.com/Engineering-Research-and-Development/DYMER","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/Engineering-Research-and-Development/DYMER","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Engineering-Research-and-Development%2FDYMER","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Engineering-Research-and-Development%2FDYMER/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Engineering-Research-and-Development%2FDYMER/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Engineering-Research-and-Development%2FDYMER/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Engineering-Research-and-Development","download_url":"https://codeload.github.com/Engineering-Research-and-Development/DYMER/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Engineering-Research-and-Development%2FDYMER/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278924134,"owners_count":26069400,"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","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-01-27T21:24:50.070Z","updated_at":"2025-10-08T09:53:27.346Z","avatar_url":"https://github.com/Engineering-Research-and-Development.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n[![Contributors][contributors-shield]][contributors-url]\n[![Forks][forks-shield]][forks-url]\n[![Stargazers][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-url]\n\n \n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/Engineering-Research-and-Development/DYMER\"\u003e\n    \u003cimg src=\"https://github.com/Engineering-Research-and-Development/DYMER/blob/master/screenshots/dymer-logo.png?raw=true\" alt=\"Logo\"\u003e\n  \u003c/a\u003e\n\n  \u003ch3 align=\"center\"\u003eDYnamic Information ModElling \u0026 Rendering\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    The DYMER is a suite for resource catalog visualization. DYMER provides advanced mapping capabilities between a data model in JSON format and its graphic template on the one hand, and on the other hand, it provides a JavaScript framework for integrating the DYMER template into a web-based application. The software is flexible because it adopts open technologies and can be used in various environments without considerable requirements. \n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/Engineering-Research-and-Development/DYMER/edit/master/README.md\"\u003e\u003cstrong\u003eExplore the docs »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n   \u003cimg src=\"https://github.com/Engineering-Research-and-Development/DYMER/blob/master/screenshots/Dymer.jpg?raw=true\" title=\"Dymer\" alt=\"Dymer\"\u003e \n \n  \u003c/p\u003e\n\u003c/div\u003e\n\n \n\n## Table of contents\n* [**Architecture**](#architecture)\n* [**Technologies**](#technologies)\n* [**Features**](#features)\n* [**Requirements**](#requirements)\n* [**Setup**](#setup)\n* [**How to use**](#how-to-use)\n* [**Important Notes**](#important-notes)\n* [**Troubleshoot**](#troubleshoot)\n* [**Contributors**](#contributors)\n* [**Status**](#status)\n* [**Licence**](#licence)\n\n\n## Architecture\n\nThe DYMER consists of two main components:  \n\n* DYMER-Core\n* DYMER-Viewer  \n\n**DYMER-Core** is based on a microservice architectural style with an approach to develop a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms using HTTP/REST protocols alongside JSON.  \n\nThe diagram in Figure depicts the building block components: \n![](https://github.com/Engineering-Research-and-Development/DYMER/blob/master/screenshots/DymerArchitecture.png?raw=true)\n\nEach microservice is developed with a specific role, however among the main ones we can identify three that have the most impact on DEH:  \n\n- Templates microservice is responsible for generating graphic templates that can be used in order to display products and services using logic-less templates.  \n\n- Forms microservice is responsible for modeling data and metadata inherent to the products and services offered in DEH.  \n\n- Entities microservice is responsible for managing the storage and usage of the product and its services. \n\nThese microservice are developed with Express.js framework for Node.js, designed for building web applications and APIs, released as free and open-source software under the MIT License. \n\nThe information is stored in NoSQL Database that provides high performance, high availability, and automatic scaling. Service-Entities use Elasticsearch that is a distributed, open-source search and analytics engine for all types of data, including textual, numerical, geospatial, structured, and unstructured that stores data in JSON format.  \n\nInteraction with the **DYMER-Core** takes place through the **DYMER-Viewer** which is a fast, small, and feature-rich JavaScript library. Thanks to it, it is possible to interact with the platform facilitating the user in the use of data by offering a single search point and displaying the results in special graphic templates.  \n![](https://github.com/Engineering-Research-and-Development/DYMER/blob/master/screenshots/render-list.png?raw=true)\n![](https://github.com/Engineering-Research-and-Development/DYMER/blob/master/screenshots/render-list-detail.png?raw=true)\n![](https://github.com/Engineering-Research-and-Development/DYMER/blob/master/screenshots/html_map.jpg?raw=true)\n![](https://github.com/Engineering-Research-and-Development/DYMER/blob/master/screenshots/html_map_table.jpg.jpg?raw=true)\n![](https://github.com/Engineering-Research-and-Development/DYMER/blob/master/screenshots/html_mapdetail.jpg?raw=true)\n![](https://github.com/Engineering-Research-and-Development/DYMER/blob/master/screenshots/example_formrender.png?raw=true)\nThe user will also be able to perform a search among the resources in the list, using a special search function. The search will obviously be gradually refined in the implementation, in its technical details and as a web module by adding the necessary filters that will become necessary from time to time. Next Figure shows how a user can access the search filters :  \n![](https://github.com/Engineering-Research-and-Development/DYMER/blob/master/screenshots/render-list-filtersnippets.png?raw=true)\nThe DYMER also implements administration functionality represented by a web-based application, to allow a user with Admin role to have complete management of Templates, Models or Forms and Entities. The next Figure shows the administration dashboard of DYMER component:\n![](https://github.com/Engineering-Research-and-Development/DYMER/blob/master/screenshots/ws-dashboard.png?raw=true)\n\nBy clicking on the Templates link menu, on the left in the drop-down list, the user can access to the list of the currently registered Templates, in order to view them or create new templates through Manage Template  functionality or modify the existing ones. \n![](https://github.com/Engineering-Research-and-Development/DYMER/blob/master/screenshots/ws-template-editor.png?raw=true)\nThe same management features are available respectively for the models/forms \n![](https://github.com/Engineering-Research-and-Development/DYMER/blob/master/screenshots/ws-model-editor.png?raw=true)\n![](https://github.com/Engineering-Research-and-Development/DYMER/blob/master/screenshots/ws-manageEntity.png?raw=true)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n## Technologies\n\n| Description                                     | Language    | Version          |\n| :---------------------------------------------- | :---------: | :--------------: |\n| [Node.js][1]                                    | JavaScript  | 10.13.0          |\n| [Express][2]                                    | JavaScript  | 4.16.4           |\n| [Docker][3]                                     |             | 19.03.8          |\n| [AngularJS][4]                                  | JavaScript  | 1.7.9            |\n| [JQuery][5]                                     |             | 3.3              |\n| [Bootstrap][6]                                  |             | 3/4              |\n| [Handlebars][7]                                 |             |                  |\n| [MongoDB][8]                                    |             | 3.6.9            |\n| [ElasticSearch][9]                              |             | 6.5.1            |\n\n\n\n[1]:  https://nodejs.org/en/\n[2]:  https://expressjs.com/en/4x/api.html\n[3]:  https://docs.docker.com/get-docker/\n[4]:  https://angularjs.org/\n[5]:  https://jquery.com/\n[6]:  https://getbootstrap.com/\n[7]:  https://handlebarsjs.com/\n[8]:  https://www.mongodb.com/try/download/community\n[9]:  https://www.elastic.co/downloads/past-releases/elasticsearch-6-5-1\n\n\n## Features\n\n* Dynamic modeling of data and metadata inherent to the products and services offered\n* Generation of Graphics Templates that can be used in the display of products and services using logic-less templates\n* Managing the storage and use of the product and services.\n* Displaying and searching all types of data, including textual, numerical, geospatial, structured, and unstructured data. \n\n\n\n## Requirements\n\n* Installed Docker (version \u003e= 18) \n* Installed Docker Compose\n\n\n## Setup\n\nAfter pulling the source code, open terminal, and go to the root folder and follow the next steps:\n\n* _Change_ `HOST_PORT` _in_ `.env` _if you want to run DYMER on a specific port. Default value is_ `HOST_PORT=8888`. \n* _Run_ `docker-compose up` _in order to start DYMER services._\n* _If you want to run containers in the background run the next command_ `docker-compose up -d`\n\n\n\n## How to use\n\nAfter containers are up and running, you can access to DYMER admin panel at the next URL: `http://localhost:[HOST_PORT]`\n\nDefault user credentials:\n\n* username: **_admin_**\n* password: **_dymer_**\n\nTo use DYMER on the client-side and render Graphic templates, Dymer.viewer library should be included in the client application with proper configuration.\n\n\n\n#### _Example of configuration:_  \n\n```javascript\n\u003cscript\u003e\n    var jsonDymerConfig = {\n        query: { // define the query to do in dymer\n            \"instance\": {\n                \"index\": index-entity  \n                \"type\":  type-entity  \n            }\n        },\n        endpoint: 'entity.search', // set the endpoint to execute the query of entities\n        viewtype: 'teaserlist', // set to use the 'Preview in List' template\n        target: {\n            teaserlist: { // configure where and how to render the preview of entities\n                    id: \"#cont-MyList\", // the entities will be render inside the element with id \"#cont-MyList\"\n                    action: \"html\", // set the method to insert the content (html/append/prepend)\n                    reload: false // if false the query will be executed only on page load \n            },\n            fullcontent: {// configure where and how to render the detail of an entity\n                id: \"#cont-MyList\", // the entity will be rendered inside the element with id \"#cont-MyList\"\n                action: \"html\" // set the method to insert the content (html/append/prepend)\n            }\n        }\n    };\n    function mainDymerView() {\n        drawEntities(jsonDymerConfig);\n    }\n \u003c/script\u003e\n```\n\u003cscript id=\"dymerurl\" src=\"\u003cdymerip\u003e/public/cdn/js/dymer.viewer.js\"\u003e \u003c/script\u003e\n \u003cdiv id=\"cont-MyList\"\u003e\u003c/div\u003e\n\n\n\n## Important Notes\n\nThe application image doesn't contain any data, so for the use of DYMER features, first you need to create Template, Model, and Entity.\n\n\n## Troubleshoot\n**TO DO**\n\n\n## keyword\nheadless CMS, API, template delivery, content management, decoupled CMS, JSON, omnichannel, dynamic rendering.\n\n \n\n### Top contributors:\n\n\u003ca href=\"https://github.com/Engineering-Research-and-Development/DYMER/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=Engineering-Research-and-Development/DYMER\" alt=\"contrib.rocks image\" /\u003e\n\u003c/a\u003e\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n## Status\nProject is: _in progress_ \n\n\n## License\n\n\n[contributors-shield]: https://img.shields.io/github/contributors/Engineering-Research-and-Development/DYMER.svg?style=for-the-badge\n[contributors-url]: https://github.com/Engineering-Research-and-Development/DYMER/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/Engineering-Research-and-Development/DYMER.svg?style=for-the-badge\n[forks-url]: https://github.com/Engineering-Research-and-Development/DYMER/network/members\n[stars-shield]: https://img.shields.io/github/stars/Engineering-Research-and-Development/DYMER.svg?style=for-the-badge\n[stars-url]: https://github.com/Engineering-Research-and-Development/DYMER/stargazers\n[issues-shield]: https://img.shields.io/github/issues/Engineering-Research-and-Development/DYMER.svg?style=for-the-badge\n[issues-url]: https://github.com/Engineering-Research-and-Development/DYMER/issues\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fengineering-research-and-development%2Fdymer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fengineering-research-and-development%2Fdymer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fengineering-research-and-development%2Fdymer/lists"}