All Projects → hyperon-io → business-rules-motor-insurance

hyperon-io / business-rules-motor-insurance

Licence: Apache-2.0 license
Hyperon - Motor Insurance Demo App. This is a sample application to demonstrate capabilities of Hyperon.io library (Java Business Rules Engine (BRE)/Java Pricing Engine). The application demonstrates responsive quotations for Car/Motor Insurance based on decision tables and Rhino functions (for math calculations). It shows different possible bus…

Programming Languages

java
68154 projects - #9 most used programming language
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
Less
1899 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to business-rules-motor-insurance

Rulette
A pragmatic business rule management system
Stars: ✭ 91 (+468.75%)
Mutual labels:  brms, rules-engine
powerflows-dmn
Power Flows DMN - Powerful decisions and rules engine
Stars: ✭ 46 (+187.5%)
Mutual labels:  rules-engine
Machine Learning Models
Decision Trees, Random Forest, Dynamic Time Warping, Naive Bayes, KNN, Linear Regression, Logistic Regression, Mixture Of Gaussian, Neural Network, PCA, SVD, Gaussian Naive Bayes, Fitting Data to Gaussian, K-Means
Stars: ✭ 160 (+900%)
Mutual labels:  decision-trees
mixed-models-with-r-workshop-2019
Workshop on using Mixed Models with R
Stars: ✭ 22 (+37.5%)
Mutual labels:  brms
Lightgbm
A fast, distributed, high performance gradient boosting (GBT, GBDT, GBRT, GBM or MART) framework based on decision tree algorithms, used for ranking, classification and many other machine learning tasks.
Stars: ✭ 13,293 (+82981.25%)
Mutual labels:  decision-trees
PyNets
A Reproducible Workflow for Structural and Functional Connectome Ensemble Learning
Stars: ✭ 114 (+612.5%)
Mutual labels:  decision-trees
Machine Learning In R
Workshop (6 hours): preprocessing, cross-validation, lasso, decision trees, random forest, xgboost, superlearner ensembles
Stars: ✭ 144 (+800%)
Mutual labels:  decision-trees
stackgbm
🌳 Stacked Gradient Boosting Machines
Stars: ✭ 24 (+50%)
Mutual labels:  decision-trees
bayesian
Bindings for Bayesian TidyModels
Stars: ✭ 33 (+106.25%)
Mutual labels:  brms
DecisionTrees
Seminar work "Decision Trees - An Introduction" with presentation, seminar paper, and Python implementation
Stars: ✭ 111 (+593.75%)
Mutual labels:  decision-trees
Machine Learning Is All You Need
🔥🌟《Machine Learning 格物志》: ML + DL + RL basic codes and notes by sklearn, PyTorch, TensorFlow, Keras & the most important, from scratch!💪 This repository is ALL You Need!
Stars: ✭ 173 (+981.25%)
Mutual labels:  decision-trees
Orange3
🍊 📊 💡 Orange: Interactive data analysis
Stars: ✭ 3,152 (+19600%)
Mutual labels:  decision-trees
Statistical-Learning-using-R
This is a Statistical Learning application which will consist of various Machine Learning algorithms and their implementation in R done by me and their in depth interpretation.Documents and reports related to the below mentioned techniques can be found on my Rpubs profile.
Stars: ✭ 27 (+68.75%)
Mutual labels:  decision-trees
Machine learning
Estudo e implementação dos principais algoritmos de Machine Learning em Jupyter Notebooks.
Stars: ✭ 161 (+906.25%)
Mutual labels:  decision-trees
R-stats-machine-learning
Misc Statistics and Machine Learning codes in R
Stars: ✭ 33 (+106.25%)
Mutual labels:  decision-trees
Machine Learning With Python
Practice and tutorial-style notebooks covering wide variety of machine learning techniques
Stars: ✭ 2,197 (+13631.25%)
Mutual labels:  decision-trees
brmstools
Helper functions for brmsfit objects (DEPRECATED)
Stars: ✭ 24 (+50%)
Mutual labels:  brms
Voice4Rural
A complete one stop solution for all the problems of Rural area people. 👩🏻‍🌾
Stars: ✭ 12 (-25%)
Mutual labels:  decision-trees
java.math.expression.parser
java math expression parser is faster than JEP
Stars: ✭ 25 (+56.25%)
Mutual labels:  decision-trees
conditions
Minimalist rules engine for Golang
Stars: ✭ 29 (+81.25%)
Mutual labels:  rules-engine

Business Rules for Motor Insurance / demo app

This is a sample application to demonstrate capabilities of Hyperon.io library (Java Business Rules Engine (BRE)/Java Pricing Engine).

The application demonstrates a typical sales path of insurance products, in this particular case Car/Motor insurance. The first step (left panel in this example) customer or agent provides all data required to calculate quotations. Each change in the input data on the left panel (eg. Drivers age/Drivers Sex/Number of accidents in the last 5 years) triggers recalculations for all coverages in 3 pricing options (Bronze/Silver/Gold). There is no need for the "Re-Calculate" button as calculations are made instantly which significantly improves UX for the final customer.

The right panel is completely configured in Hyperon, all the rules dictating what to offer in that case and for what price. It's done in different ways to show all capabilities of Hyperon.

You can see an example of making a decision based on parameters (decision tables), simple ones, and also forwarding decision to the next decision table - because this rule engine allows you to stack decision tables onto each other. There are also examples of making a decision based on functions. The Hyperon allows you to implement functions in Rhino (JavaScript) and Groovy languages. Although everything in the right panel needs to be calculated after a change in the left panel, it works smoothly because of the very high performance of Hyperon. All the configuration is clear and easy to understand because it is organized in the business domain. Each visible element is modeled as a business object with attributes. These attributes are rules. The sample application calls them and get's a ready decision about what to show in that particular case. After downloading this demo you should start with browsing "Domain configuration" in Hyperon and all the configuration should be clear for you within minutes.

There is a second similar demo of Hyperon built around vehicle insurance subject link it differs with data storage implementation. It uses Hyperon Persistance - dynamic data model. It's another layer of flexibility you can add to your Java application but it is completely optional as you can see in this example and you can use Hyperon without hyperon persistance.

If want to learn more about how to use Hyperon, check the Hyperon tutorials.

On-line demo

This application can be accessed on-line at: https://motor-insurance-demo.hyperon.io/

Prerequisites

Make sure you have at least:

Java 11

Maven

To install go to:

https://maven.apache.org/download.cgi

Previous Maven versions might work as well but this was not checked.

NodeJS

To install go to:

  1. Windows or Mac OS
  2. Linux

To update:

npm install npm@latest -g

Hyperon Studio 2.2.2

  1. Go to: https://www.hyperon.io/docs/download
  2. download bundle, unpack it to the directory of your choice and run it as described here.

Setup

Make sure that both commands mvn and npm are accessible through system path. If not, add them. In file hyperon-demo-app.properties set hyperon.database.url to point Hyperon Studio H2 database file, e.g.:

hyperon.database.url=jdbc:h2:/hyperon-studio/database/hyperon.demo

or on Windows

hyperon.database.url=jdbc:h2:c:/hyperon-studio/database/hyperon.demo

Running

Execute below maven command to run Spring Boot.

mvn clean package
mvn spring-boot:run

Application will be accessible on port 48080. If you need to use other port change it in hyperon-demo-app.properties -> server.port. URL: http://localhost:48080/

Running with Docker

Assuming you have docker and docker compose installed, motor-demo docker image is available on a [dockerhub](https://hub.docker. com/r/hyperonio/motor-demo) as hyperonio/motor-demo:latest.
However, if you want to build this app on your own, we've provided a necessary Dockerfile. Before building the docker image, you need to build the app using the command:

mvn clean package -Pall_in_one

Then, to build a docker image execute the code below:

docker build -t hyperonio/motor-demo .

If image is build, then application can be run in docker container like:

docker run -p 48080:48080 \ 
    -e hyperon.database.url=<jdbc_url_to_running_db> \
    -e hyperon.database.dialect=<choose> \
    -e hyperon.database.username=<db_username> \
    -e hyperon.database.password=<db_password> \
    -e hyperon.studio.instance-name=hyperon_docker \
    hyperonio/motor-demo

Running with Docker compose

Application can be run with bundle-h2-demo and hyperon-studio images using docker-compose based on [docker-compose.yml](./docker-compose. yml)

docker-compose up   
# or (regarding to docker version)
docker compose up
  • By default Hyperon Studio will be available at: [host]:38080/hyperon/app
  • By default Demo application will be available at: [host]:48080/demo
  • By default Runtime REST will be available at: [host]:8081/api ([host]:8081/swagger-ui.html)

Executable war

Enable maven profile "all_in_one" to build fully executable war archive, eg.

mvn clean package -Pall_in_one

The resulting war archive can be executed from shell:

./target/motor-insurance-1.0-SNAPSHOT.war

For more details about Spring Boot executables refer to https://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html

Configuration files locations

Configuration files are searched for properties in following order (last matching overrides):

  1. classpath:hyperon-demo-app.properties
  2. file:${user.home}/conf/hyperon-demo-app.properties

Feedback

If you have any feedback regarding this App or Hyperon.io library do not hesitate to contact: [email protected].

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].