Coder Social home page Coder Social logo

cdm-object-builder's Introduction

FINOS - Incubating

CDM Object Builder

This project is a utility tool for dynamically generating Common Domain ModelTM (CDM) objects using a visual UI builder which can then be reviewed.

The tool provides functionality for navigating the CDMTM starting at a root type and traversing its nodes (attributes) to build up an object visually in the user interface.

The version of the CDMTM used is fixed at build time in the model file ./ui/src/app/modules/builder/services/builder-api.model.ts.

The Common Domain ModelTM is a registered trademark of FINOS. For more information please visit https://cdm.finos.org/

Installation

To start the web-based user interface locally, navigate to the ./ui folder and run

npm ci
npm start 

Usage example

A use case for the Object Builder is the selection of Eligible Collateral Schedules.

Development setup for updating the CDM version

Basic Method

There is an npm command that is set up to update to the latest model vesion. The command assumes that mvn and java are installed.

Steps:

  1. Run the command cd ui && npm run update-model
  2. Check the file ui/src/app/modules/builder/services/builder-api.model.ts is updated.
  3. Create a PR, Review and Merge.

Advanced setup

To update the version of the model used by this tool execute the Java utility.

Steps:

  1. Update the finos.cdm.version property in the pom.xml file to match the version of the cdm
  2. Update the rosetta.dsl.version property in the pom.xml to the DSL version used in the CDM (See pom.xml in the cdm project to get the correct version)
  3. Build the set up tool using mvn
cd setup
mvn clean install
  1. Run the executable jar file - this will update the builder-api.model.ts file to support the given cdm version.
java -jar target/object-builder-0.0.0.master.jar ../ui/src/app/modules/builder/services/builder-api.model.ts org.finos.cdm cdm-java
  1. Commit the builder-api.model.ts file in a new PR.

Example:

2023-11-22 15 34 15 (1)

Roadmap

Contributing

For any questions, bugs or feature requests please open an issue For anything else please send an email to [email protected].

To submit a contribution:

  1. Fork it (https://github.com/finos/cdm-object-builder/fork)
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Read our contribution guidelines and Community Code of Conduct
  4. Commit your changes (git commit -am 'Add some fooBar')
  5. Push to the branch (git push origin feature/fooBar)
  6. Create a new Pull Request

NOTE: Commits and pull requests to FINOS repositories will only be accepted from those contributors with an active, executed Individual Contributor License Agreement (ICLA) with FINOS OR who are covered under an existing and active Corporate Contribution License Agreement (CCLA) executed with FINOS. Commits from individuals not covered under an ICLA or CCLA will be flagged and blocked by the FINOS Clabot tool (or EasyCLA). Please note that some CCLAs require individuals/employees to be explicitly named on the CCLA.

Need an ICLA? Unsure if you are covered under an existing CCLA? Email [email protected]

License

Copyright 2022 ISDA [email protected]

Distributed under the Apache License, Version 2.0.

SPDX-License-Identifier: Apache-2.0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.