Home
Softono
i

ing-bank

Professional software vendor delivering innovative solutions on the Softono platform. Specialized in both open-source and proprietary software development.

Total Products
3

Software by ing-bank

lion
Open Source

lion

<p align="center"> <img width="20%" src="./docs/_assets/logo.svg" alt="Lion" /> <h1 style="text-align: center;">Lion</h1> </p> <p align="center"> <a href="https://github.com/ing-bank/lion/issues" ><img src="https://badgen.net/github/open-issues/ing-bank/lion" alt="Lion open issues status" /></a> <a href="https://github.com/ing-bank/lion/pulls" ><img src="https://badgen.net/github/open-prs/ing-bank/lion/" alt="GitHub open pull requests status" /></a> <a href="https://www.tickgit.com/browse?repo=github.com/ing-bank/lion" ><img src="https://badgen.net/https/api.tickgit.com/badgen/github.comgithub.com/ing-bank/lion" alt="Todos" /></a> </p> <p align="center"> <a href="https://lion.js.org">Website</a> · <a href="https://lion.js.org/fundamentals/">Fundamentals</a> · <a href="https://lion.js.org/guides/">Guides</a> · <a href="https://lion.js.org/components/">Components</a> · <a href="https://lion.js.org/blog/">Blog</a> </p> **Lion is a set of highly performant, accessible and flexible Web Components.!** They provide an unopinionated, white-label layer that can be extended to your own layer of components. - **High Performance:** Focused on great performance in all relevant browsers with a minimal number of dependencies. - **Accessibility:** Aimed at compliance with the WCAG 2.2 AA standard to create components that are accessible for everybody. - **Flexibility:** Provides solutions through Web Components and JavaScript classes which can be used, adopted and extended to fit all needs. - **Modern Code:** Lion is distributed as pure es modules. - **Exposes functions/classes and Web Components:** Ships a functionality in it's most appropriate form. > Note: Our demos may look a little bland but that is on purpose. They only come with functional stylings. > This makes sense as the main use case is to extend those components and if you do you do not want to override existing stylings. <p align="center"> <a href="https://lion.js.org/guides/"><strong>Explore the Lion Guides&nbsp;&nbsp;▶</strong></a> </p> <details> <summary><h2>Table of Contents</h2></summary> <ul> <li><a href="#astro-migration"> Astro migration </a> <ul> <li><a href="#astro-how-to"> Astro how to </a></li> <li><a href="#issues-which-are-not-caused-by-the-migration-not-to-be-fixed-now"> Issues which are not caused by migration </a></li> </ul> </li> <li><a href="#how-to-install"> Installation </a></li> <li><a href="#how-to-use"> How to use </a> <ul> <li><a href="#extend-a-web-component"> Extend a web component </a></li> <li><a href="#use-a-javascript-system"> Use a JavaScript system </a></li> <li><a href="#use-a-web-component"> Use a Web Component </a></li> </ul> </li> <li><a href="#issues"> Issues </a></li> <li><a href="#feature-requests"> Feature request </a></li> <li><a href="#content"> Content </a></li> <li><a href="#technologies"> Technologies </a></li> <li><a href="#rationale"> Rationale </a></li> <li><a href="#coding-guidelines"> Coding guidelines </a></li> <li><a href="#how-to-contribute"> How to contribute </a></li> <li><a href="#site-deployment"> Site deployment </a></li> <li><a href="#content"> Contact </a></li> </ul> </details> ## Astro migration - Keep using `/docs` on the root level as we used it in the `master` branch. The documentation is copied into Astro related directories on `npm run start` and when when anything in `/docs` is updated. - Replace manually all references to assets in all `md` files so that we imply that the path is produced from the directory where the md file is located. F.e. `new URL('../src/wa-combobox/assets/obama.jpeg', import.meta.url).href;` should `new URL('./src/wa-combobox/assets/obama.jpeg', import.meta.url).href;`. Note double dot is replaced with one dot. See [this PR](https://github.com/ing-bank/lion/pull/2125/files#diff-403b1e0ab54d51dcfe54248e847498e492da00383d8b33a4087994ab9035a22c) for the reference. - Rename all `*.mjs` files to `*.js` ones if they are used by `mdjs` examples ### Astro how to - To start in dev mode run `npm run start` - To start in production mode: - Run `npm run build` - Run `npm run preview` ### Issues which are not caused by the migration (not to be fixed now) - There is a browser console error on [collapsible page](http://localhost:4321/components/collapsible): ``` __mdjs-stories--use-cases.js:40 Uncaught TypeError: shadowRoot.getElementById is not a function ``` Note. There is the same error on master. This issue is not caused by the migration ## How to install ```bash npm i @lion/ui ``` ## How to use ### Extend a Web Component **This is the main use case for lion**. To import component classes, and extend them for your own design system's components. ```js import { css } from 'lit'; import { LionInput } from '@lion/ui/input.js'; class MyInput extends LionInput { static get styles() { return [ super.styles, css` /* your styles here */ `, ]; } } customElements.define('my-input', MyInput); ``` ### Use a JavaScript system There's a couple of "systems" in lion which have a JavaScript API. Examples are `localize`, `overlays`, `ajax`, etc. ```html <script type="module"> import { ajax } from '@lion/ui/ajax.js'; ajax .fetch('data.json') .then(response => response.json()) .then(data => { // do something with the data }); </script> ``` ### Use a Web Component You can also use the lion elements directly, although this is likely not a common use case. ```html <script type="module"> import '@lion/ui/define/lion-input.js'; </script> <lion-input name="firstName"></lion-input> ``` ## Issues If you encounter an issue with any of the packages we are offering please open a [new bug issue](https://github.com/ing-bank/lion/issues/new?assignees=&labels=&template=bug_report.md&title=). Be sure to include a description of the expected and the current behavior - additional adding a [reproduction](https://webcomponents.dev/edit/kpZmz1CJN580OaXsk56f?pm=1) always helps. ## Feature requests When you have an idea on how we could improve, please check our [discussions](https://github.com/ing-bank/lion/discussions) to see if there are similar ideas or feature requests. If there are none, please [start](https://github.com/ing-bank/lion/discussions/new) your feature request as a new discussion topic. Add the title `[Feature Request] My awesome feature` and a description of what you expect from the improvement and what the use case is. ## Content | Name | version | description | | --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [@lion/ui](https://github.com/ing-bank/lion/tree/master/packages/ui) | <img src="https://img.shields.io/npm/v/@lion/ui.svg" alt="@lion/ui version"/> | Set of components | | [@lion/ajax](https://github.com/ing-bank/lion/tree/master/packages/ajax) | <img src="https://img.shields.io/npm/v/@lion/ajax.svg" alt="@lion/ajax version"/> | A small wrapper around fetch | | [Singleton-manager](https://github.com/ing-bank/lion/tree/master/packages/singleton-manager) | <img src="https://img.shields.io/npm/v/singleton-manager.svg" alt="Singleton-manager version"/> | A singleton manager provides a way to make sure a singleton instance loaded from multiple file locations stays a singleton. Primarily useful if two major version of a package with a singleton is used. | | [Babel plugin extend docs](https://github.com/ing-bank/lion/tree/master/packages-node/babel-plugin-extend-docs) | <img src="https://img.shields.io/npm/v/babel-plugin-extend-docs.svg" alt="babel-plugin-extend-docs version"/> | A plugin which rewrites imports and templates according to a configuration. This enables the reuse of existing documentation from source packages while still using your extensions code. | | [Providence analytics](https://github.com/ing-bank/lion/tree/master/packages-node/providence-analytics) | <img src="https://img.shields.io/npm/v/providence-analytics.svg" alt="providence-analytics version"/> | Providence is the 'All Seeing Eye' that generates usage statistics by analyzing code. It measures the effectivity and popularity of your software. With just a few commands you can measure the impact for (breaking) changes, making your release process more stable and predictable. | | [Publish docs](https://github.com/ing-bank/lion/tree/master/packages-node/publish-docs) | <img src="https://img.shields.io/npm/v/publish-docs.svg" alt="publish-docs version"/> | A tool that copies and processes your documentation (in a monorepo) so it can be published/shipped with your package. | | [Remark extend](https://github.com/ing-bank/lion/tree/master/packages-node/remark-extend) | <img src="https://img.shields.io/npm/v/remark-extend.svg" alt="remark-extend version"/> | A plugin for remark to extend markdown by importing from source files. | | [Rocket preset extend lion docs](https://github.com/ing-bank/lion/tree/master/packages-node/rocket-preset-extend-lion-docs) | <img src="https://img.shields.io/npm/v/rocket-preset-extend-lion-docs.svg" alt="rocket-preset-extend-lion-docs version"/> | When maintaining your own extension layer of lion you most likely want to maintain a similar documentation. Copying and rewriting the markdown files works, but whenever something changes you need copy and rewrite again. To do this automatically you can use this preset for [rocket](https://rocket.modern-web.dev/). | ## Technologies Lion Web Components aims to be future-proof and use well-supported proven technology. The stack we have chosen should reflect this. - [lit](https://lit.dev/) - [npm](http://npmjs.com) - [Open Web Components](https://open-wc.org) - [Modern Web](https://modern-web.dev) - [Mocha](https://mochajs.org) - [Chai](https://www.chaijs.com) - [ESLint](https://eslint.org) - [prettier](https://prettier.io) - [ES modules](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import) - Lots and lots of tests ## Rationale We know from experience that making high quality, accessible UI components is hard and time consuming: it takes many iterations, a lot of development time and a lot of testing to get a generic component that works in every context, supports many edge cases and is accessible in all relevant screen readers. Lion aims to do the heavy lifting for you. This means you only have to apply your own Design System: by delivering styles, configuring components and adding a minimal set of custom logic on top. ## Coding guidelines Check out our [coding guidelines](https://lion.js.org/guides/principles/definitions-and-terms/) for more detailed information. ## How to contribute **Please note:** This project uses Npm [Workspaces](https://docs.npmjs.com/cli/v8/using-npm/workspaces). If you want to run all demos locally you need to get at least npm 7+ and install all dependencies by executing `npm install`. Lion Web Components are only as good as its contributions. Read our [contribution guide](https://github.com/ing-bank/lion/blob/master/CONTRIBUTING.md) and feel free to enhance/improve Lion. We keep feature requests closed while we're not working on them. ## Site deployment We use [GitHub Pages](https://docs.github.com/en/pages) to host our static website. Collaborators with push permission to the repository branch [`gh-pages`](https://github.com/ing-bank/lion/tree/gh-pages) can trigger a deploy by simply running: ```bash npm run deploy ``` ## Contact Feel free to create a github issue for any feedback or questions you might have.

CSS Frameworks & UI Kits Web Components & Widgets
1.9K Github Stars
popmon
Open Source

popmon

=========================== Population Shift Monitoring =========================== |build| |docs| |release| |release_date| |downloads| |ruff| |logo| `popmon` is a package that allows one to check the stability of a dataset. `popmon` works with both **pandas** and **spark datasets**. `popmon` creates histograms of features binned in time-slices, and compares the stability of the profiles_ and distributions of those histograms using `statistical tests <https://popmon.readthedocs.io/en/latest/comparisons.html>`_, both over time and with respect to a reference. It works with numerical, ordinal, categorical features, and the histograms can be higher-dimensional, e.g. it can also track correlations between any two features. `popmon` can **automatically flag** and alert on **changes observed over time**, such as trends, shifts, peaks, outliers, anomalies, changing correlations, etc, using monitoring business rules. Latest update: Jan 2026. |example| |histograms| Spark ===== For Spark make sure to pick up the correct `histogrammar` jar files. Spark 4.X is based on Scala 2.13; Spark 3.X is based on Scala 2.12 or 2.13. .. code-block:: python spark = SparkSession.builder.config( "spark.jars.packages", "io.github.histogrammar:histogrammar_2.13:1.0.30,io.github.histogrammar:histogrammar-sparksql_2.13:1.0.30", ).getOrCreate() For Scala 2.12, in the string above simply replace "2.13" with "2.12" (twice). Examples ======== - `Flight Delays and Cancellations Kaggle data <https://crclz.com/popmon/reports/flight_delays_report.html>`_ - `Synthetic data (code example below) <https://crclz.com/popmon/reports/test_data_report.html>`_ Documentation ============= The entire `popmon` documentation including tutorials can be found at `read-the-docs <https://popmon.readthedocs.io>`_. Notebooks ========= .. list-table:: :widths: 80 20 :header-rows: 1 * - Tutorial - Colab link * - `Basic tutorial <https://nbviewer.jupyter.org/github/ing-bank/popmon/blob/master/popmon/notebooks/popmon_tutorial_basic.ipynb>`_ - |notebook_basic_colab| * - `Detailed example (featuring configuration, Apache Spark and more) <https://nbviewer.jupyter.org/github/ing-bank/popmon/blob/master/popmon/notebooks/popmon_tutorial_advanced.ipynb>`_ - |notebook_advanced_colab| * - `Incremental datasets (online analysis) <https://nbviewer.jupyter.org/github/ing-bank/popmon/blob/master/popmon/notebooks/popmon_tutorial_incremental_data.ipynb>`_ - |notebook_incremental_data_colab| * - `Report interpretation (step-by-step guide) <https://nbviewer.jupyter.org/github/ing-bank/popmon/blob/master/popmon/notebooks/popmon_tutorial_reports.ipynb>`_ - |notebook_reports_colab| Check it out ============ The `popmon` library requires Python 3.6+ and is pip friendly. To get started, simply do: .. code-block:: bash $ pip install popmon or check out the code from our GitHub repository: .. code-block:: bash $ git clone https://github.com/ing-bank/popmon.git $ pip install -e popmon where in this example the code is installed in edit mode (option -e). You can now use the package in Python with: .. code-block:: python import popmon **Congratulations, you are now ready to use the popmon library!** Quick run ========= As a quick example, you can do: .. code-block:: python import pandas as pd import popmon from popmon import resources # open synthetic data df = pd.read_csv(resources.data("test.csv.gz"), parse_dates=["date"]) df.head() # generate stability report using automatic binning of all encountered features # (importing popmon automatically adds this functionality to a dataframe) report = df.pm_stability_report(time_axis="date", features=["date:age", "date:gender"]) # to show the output of the report in a Jupyter notebook you can simply run: report # or save the report to file report.to_file("monitoring_report.html") To specify your own binning specifications and features you want to report on, you do: .. code-block:: python # time-axis specifications alone; all other features are auto-binned. report = df.pm_stability_report( time_axis="date", time_width="1w", time_offset="2020-1-6" ) # histogram selections. Here 'date' is the first axis of each histogram. features = [ "date:isActive", "date:age", "date:eyeColor", "date:gender", "date:latitude", "date:longitude", "date:isActive:age", ] # Specify your own binning specifications for individual features or combinations thereof. # This bin specification uses open-ended ("sparse") histograms; unspecified features get # auto-binned. The time-axis binning, when specified here, needs to be in nanoseconds. bin_specs = { "longitude": {"bin_width": 5.0, "bin_offset": 0.0}, "latitude": {"bin_width": 5.0, "bin_offset": 0.0}, "age": {"bin_width": 10.0, "bin_offset": 0.0}, "date": { "bin_width": pd.Timedelta("4w").value, "bin_offset": pd.Timestamp("2015-1-1").value, }, } # generate stability report report = df.pm_stability_report(features=features, bin_specs=bin_specs, time_axis=True) These examples also work with spark dataframes. You can see the output of such example notebook code `here <https://crclz.com/popmon/reports/test_data_report.html>`_. For all available examples, please see the `tutorials <https://popmon.readthedocs.io/en/latest/tutorials.html>`_ at read-the-docs. Pipelines for monitoring dataset shift ====================================== Advanced users can leverage popmon's modular data pipeline to customize their workflow. Visualization of the pipeline can be useful when debugging, or for didactic purposes. There is a `script <https://github.com/ing-bank/popmon/tree/master/tools/>`_ included with the package that you can use. The plotting is configurable, and depending on the options you will obtain a result that can be used for understanding the data flow, the high-level components and the (re)use of datasets. |pipeline| *Example pipeline visualization (click to enlarge)* Reports and integrations ======================== The data shift computations that popmon performs, are by default displayed in a self-contained HTML report. This format is favourable in many real-world environments, where access may be restricted. Moreover, reports can be easily shared with others. Access to the datastore means that its possible to integrate popmon in almost any workflow. To give an example, one could store the histogram data in a PostgreSQL database and load that from Grafana and benefit from their visualisation and alert handling features (e.g. send an email or slack message upon alert). This may be interesting to teams that are already invested in particular choice of dashboarding tool. Possible integrations are: +----------------+---------------+ | |grafana_logo| | |kibana_logo| | +----------------+---------------+ | Grafana | Kibana | +----------------+---------------+ Resources on how to integrate popmon are available in the `examples directory <https://github.com/ing-bank/popmon/tree/master/examples/integrations>`_. Contributions of additional or improved integrations are welcome! .. |grafana_logo| image:: https://upload.wikimedia.org/wikipedia/commons/a/a1/Grafana_logo.svg :alt: Grafana logo :height: 120 :target: https://github.com/grafana/grafana .. |kibana_logo| image:: https://miro.medium.com/max/1400/1*HW_x9ZvIbUkyaqHstsB1ig.png :alt: Kibana logo :height: 120 :target: https://github.com/elastic/kibana Comparison and profile extensions --------------------------------- External libraries or custom functionality can be easily added to Profiles_ and Comparisons_. If you developed an extension that could be generically used, then please consider contributing it to the package. Popmon currently integrates: * `Diptest <https://github.com/RUrlus/diptest>`_ A Python/C++ implementation of Hartigan & Hartigan's dip test for unimodality. The dip test tests for multimodality in a sample by taking the maximum difference, over all sample points, between the empirical distribution function, and the unimodal distribution function that minimizes that maximum difference. Other than unimodality, it makes no further assumptions about the form of the null distribution. To enable this extension install diptest using ``pip install diptest`` or ``pip install popmon[diptest]``. Resources ========= Presentations ------------- +------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-------------------+-------------------------+ | Title | Host | Date | Speaker | +------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-------------------+-------------------------+ | popmon: Analysis Package for Dataset Shift Detection | `SciPy Conference 2022 <https://www.scipy2022.scipy.org/>`_ | July 13, 2022 | Simon Brugman | +------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-------------------+-------------------------+ | Popmon - population monitoring made easy | `Big Data Technology Warsaw Summit 2021 <https://bigdatatechwarsaw.eu/>`_ | February 25, 2021 | Simon Brugman | +------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-------------------+-------------------------+ | Popmon - population monitoring made easy | `Data Lunch @ Eneco <https://www.eneco.nl/>`_ | October 29, 2020 | Max Baak, Simon Brugman | +------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-------------------+-------------------------+ | Popmon - population monitoring made easy | `Data Science Summit 2020 <https://dssconf.pl/en/>`_ | October 16, 2020 | Max Baak | +------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-------------------+-------------------------+ | `Population Shift Monitoring Made Easy: the popmon package <https://youtu.be/PgaQpxzT_0g>`_ | `Online Data Science Meetup @ ING WBAA <https://www.meetup.com/nl-NL/Tech-Meetups-ING/events/>`_ | July 8 2020 | Tomas Sostak | +------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-------------------+-------------------------+ | `Popmon: Population Shift Monitoring Made Easy <https://www.youtube.com/watch?v=HE-3YeVYqPY>`_ | `PyData Fest Amsterdam 2020 <https://amsterdam.pydata.org/>`_ | June 16, 2020 | Tomas Sostak | +------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-------------------+-------------------------+ | Popmon: Population Shift Monitoring Made Easy | `Amundsen Community Meetup <https://github.com/amundsen-io/amundsen>`_ | June 4, 2020 | Max Baak | +------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-------------------+-------------------------+ Articles -------- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------------------------------------+ | Title | Date | Author | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------------------------------------+ |`POPMON v1.0.0: The Dataset-Shift Pokémon <https://medium.com/wbaa/popmon-v1-0-0-the-dataset-shift-pok%C3%A9mon-7dea9cb49a71>`_ | Aug 3, 2022 | Pradyot Patil | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------------------------------------+ |`Monitoring Model Drift with Python <https://medium.com/broadhorizon-cmotions/monitoring-model-drift-with-python-b9e15ca16b18>`_ | April 16, 2022 | Jeanine Schoonemann | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------------------------------------+ |`The Statistics Underlying the Popmon Hood <https://www.theanalyticslab.nl/the-statistics-underlying-the-popmon-hood/>`_ | April 15, 2022 | Jurriaan Nagelkerke and Jeanine Schoonemann | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------------------------------------+ |`popmon: code breakfast session <https://simonbrugman.nl/2021/11/09/popmon-code-breakfast.html>`_ | November 9, 2022 | Simon Brugman | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------------------------------------+ | `Population Shift Analysis: Monitoring Data Quality with Popmon <https://www.codemotion.com/magazine/dev-hub/big-data-analyst/popmon-data-quality-monitoring/>`_ | May 21, 2021 | Vito Gentile | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------------------------------------+ | `Popmon Open Source Package — Population Shift Monitoring Made Easy <https://medium.com/wbaa/population-monitoring-open-source-1ce3139d8c3a>`_ | May 20, 2020 | Nicole Mpozika | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------------------------------------+ Software -------- - `Kedro-popmon <https://github.com/stephanecollot/kedro-popmon>`_ is a plugin to integrate popmon reporting with kedro. This plugin allows you to automate the process of popmon feature and output stability monitoring. Package created by `Marian Dabrowski <https://www.linkedin.com/in/marian-dabrowski/>`_ and `Stephane Collot <https://github.com/stephanecollot/>`_. Project contributors ==================== This package was authored by ING Analytics Wholesale Banking (INGA WB). Special thanks to the following people who have contributed to the development of this package: `Ahmet Erdem <https://github.com/aerdem4>`_, `Fabian Jansen <https://github.com/faab5>`_, `Nanne Aben <https://github.com/nanne-aben>`_, Mathieu Grimal. Citing popmon ============= If ``popmon`` has been relevant in your work, and you would like to acknowledge the project in your publication, we suggest citing the following paper: * Brugman, S., Sostak, T., Patil, P., Baak, M. *popmon: Analysis Package for Dataset Shift Detection*. Proceedings of the 21st Python in Science Conference. 161-168 (2022). (`link <https://conference.scipy.org/proceedings/scipy2022/popmon.html>`_) *In BibTeX format:* .. code-block:: bibtex @InProceedings{ popmon-proc-scipy-2022, author = { {S}imon {B}rugman and {T}omas {S}ostak and {P}radyot {P}atil and {M}ax {B}aak }, title = { popmon: {A}nalysis {P}ackage for {D}ataset {S}hift {D}etection }, booktitle = { {P}roceedings of the 21st {P}ython in {S}cience {C}onference }, pages = { 161 - 168 }, year = { 2022 }, editor = { {M}eghann {A}garwal and {C}hris {C}alloway and {D}illon {N}iederhut and {D}avid {S}hupe }, } Contact and support =================== * Issues & Ideas & Support: https://github.com/ing-bank/popmon/issues Please note that INGA WB provides support only on a best-effort basis. License ======= Copyright INGA WB. `popmon` is completely free, open-source and licensed under the `MIT license <https://en.wikipedia.org/wiki/MIT_License>`_. .. |logo| image:: https://raw.githubusercontent.com/ing-bank/popmon/master/docs/source/assets/popmon-logo.png :alt: POPMON logo :target: https://github.com/ing-bank/popmon .. |example| image:: https://raw.githubusercontent.com/ing-bank/popmon/master/docs/source/assets/report_overview.png :alt: Traffic Light Overview .. |histograms| image:: https://raw.githubusercontent.com/ing-bank/popmon/master/docs/source/assets/histogram_inspector.png :alt: Histogram inspector .. |pipeline| image:: https://raw.githubusercontent.com/ing-bank/popmon/master/docs/source/assets/pipeline.png :alt: Pipeline Visualization :target: https://github.com/ing-bank/popmon/files/7417124/pipeline_amazingpipeline_subgraphs_unversioned.pdf .. |build| image:: https://github.com/ing-bank/popmon/workflows/build/badge.svg :alt: Build status .. |ruff| image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v1.json :alt: Ruff :target: https://github.com/charliermarsh/ruff .. |docs| image:: https://readthedocs.org/projects/popmon/badge/?version=latest :alt: Package docs status :target: https://popmon.readthedocs.io .. |release| image:: https://img.shields.io/github/v/release/ing-bank/popmon :alt: Latest GitHub release :target: https://github.com/ing-bank/popmon/releases .. |release_date| image:: https://img.shields.io/github/release-date/ing-bank/popmon :alt: GitHub Release Date :target: https://github.com/ing-bank/popmon/releases .. |notebook_basic_colab| image:: https://colab.research.google.com/assets/colab-badge.svg :alt: Open in Colab :target: https://colab.research.google.com/github/ing-bank/popmon/blob/master/popmon/notebooks/popmon_tutorial_basic.ipynb .. |notebook_advanced_colab| image:: https://colab.research.google.com/assets/colab-badge.svg :alt: Open in Colab :target: https://colab.research.google.com/github/ing-bank/popmon/blob/master/popmon/notebooks/popmon_tutorial_advanced.ipynb .. |notebook_incremental_data_colab| image:: https://colab.research.google.com/assets/colab-badge.svg :alt: Open in Colab :target: https://colab.research.google.com/github/ing-bank/popmon/blob/master/popmon/notebooks/popmon_tutorial_incremental_data.ipynb .. |notebook_reports_colab| image:: https://colab.research.google.com/assets/colab-badge.svg :alt: Open in Colab :target: https://colab.research.google.com/github/ing-bank/popmon/blob/master/popmon/notebooks/popmon_tutorial_reports.ipynb .. |downloads| image:: https://pepy.tech/badge/popmon :alt: PyPi downloads :target: https://pepy.tech/project/popmon .. _profiles: https://popmon.readthedocs.io/en/latest/profiles.html .. _comparisons: https://popmon.readthedocs.io/en/latest/comparisons.html

Analytics & BI ML Frameworks
511 Github Stars
INGenious
Open Source

INGenious

# INGenious Playwright Studio - Test Automation for Everyone [![Build INGenious Source Code](https://github.com/ing-bank/INGenious/actions/workflows/maven.yml/badge.svg)](https://github.com/ing-bank/INGenious/actions/workflows/maven.yml) ![Static Badge](https://img.shields.io/badge/Version-3.0.0--preview-%23FF6200) -------------------------------------------------------------------- <span style="color:#FF6200;width:100px">**INGenious**</span> enables easy and effective test automation for **everyone.** Developed and perfected by <span style="color:#FF6200;width:100px">**ING Bank**</span> for over 5 years of real-world usage, **INGenious** is now open-source and available to everyone. Designed to simplify and streamline test automation, this robust solution empowers teams of all sizes to achieve efficient, high-quality testing. By joining the global testing community, ING aims to collaborate, innovate, and elevate automated testing together. > [!NOTE] > It provides an easy and simple way to create highly reliable automated tests. It leverages the power of __Playwright-Java__ and combines it with a user-friendly IDE which makes it a highly effective solution. > The idea behind INGenious is to enable engineers, business analysts and even non-technical stakeholders to design high quality automated tests which focus on the business goals, without them having to worry about coding. :atom: **The complete documentation is available here :** https://ing-bank.github.io/ingenious-doc/ ## At a Glance - :white_check_mark: __Get Started in 5 minutes__ Download <span style="color:#FF6200">INGenious</span> and get up and running in minutes. Create and execute your test cases in no time. [:arrow_right: Getting started](https://ing-bank.github.io/ingenious-doc/gettingstarted/) - :white_check_mark: __No Code/Low Code__ <span style="color:#FF6200">INGenious</span> comes with an intuitive IDE which makes test designing simple, easy and fun. [:arrow_right: IDE](https://ing-bank.github.io/ingenious-doc/knowyourframework/) - :white_check_mark: __Browser Automation__ <span style="color:#FF6200">INGenious</span> leverages the power of **Playwright** to create robust and stable browser tests. [:arrow_right: Browser Testing](https://ing-bank.github.io/ingenious-doc/browsertesting/) - :white_check_mark: __Mobile Automation__ <span style="color:#FF6200">INGenious</span> leverages the power of **Appium** to create robust and stable mobile app tests. [:arrow_right: Mobile Testing](https://ing-bank.github.io/ingenious-doc/mobiletesting/) - :white_check_mark: __API Automation__ <span style="color:#FF6200">INGenious</span> leverages **Java HTTP Client** to create API tests. [:arrow_right: API Testing](https://ing-bank.github.io/ingenious-doc/api/) - :white_check_mark: __JMS/Kafka Testing__ <span style="color:#FF6200">INGenious</span> leverages **JMS** and **Kafka** clients to create Message based tests. [:arrow_right: JMS/Kafka Testing](https://ing-bank.github.io/ingenious-doc/messageTesting/) - :white_check_mark: __Database Testing__ <span style="color:#FF6200">INGenious</span> leverages **JDBC** to connect and test databases. [:arrow_right: Database Testing](https://ing-bank.github.io/ingenious-doc/databaseTesting/database/) - :white_check_mark: __SAP Testing__ <span style="color:#FF6200">INGenious</span> leverages **Java JACOB Library** to connect and test SAP GUI. [:arrow_right: SAP Testing](https://ing-bank.github.io/ingenious-doc/sapTesting/sap/) - :white_check_mark: __Synthetic Data Generation__ <span style="color:#FF6200">INGenious</span> leverages **Java Faker** to generate Synthetic Data for Testing. [:arrow_right: Synthetic Data Generation](https://ing-bank.github.io/ingenious-doc/syntheticData/) - :white_check_mark: __Plugin for Customization__ <span style="color:#FF6200">INGenious</span> features a powerful **Plugin System** that lets you extend the framework with custom automation actions, new object types, and integrations—across browser, database, mobile, web services, and more. [:arrow_right: Customizations](https://ing-bank.github.io/ingenious-doc/customizations/) - :white_check_mark: __Integrated BDD__ <span style="color:#FF6200">INGenious</span> supports BDD way of working and comes with a built-in feature file editor. [:arrow_right: BDD Support](https://ing-bank.github.io/ingenious-doc/bdd/) - :white_check_mark: __Seamless Azure Test Plan Integration__ Test Case and Defect Management via Azure DevOps Test Plan can be done with <span style="color:#FF6200">INGenious</span> very easily [:arrow_right: Test Plan](https://ing-bank.github.io/ingenious-doc/testplan/) - :white_check_mark: __Seamless integration with any CI tool__ <span style="color:#FF6200">INGenious</span> is built in Java and has a strong command line interface. This makes integration with any CI tool, very easy. [:arrow_right: Integration](https://ing-bank.github.io/ingenious-doc/integrations/ci/) - :white_check_mark: __Open Source, MIT__ <span style="color:#FF6200">INGenious</span> is licensed under MIT and available on **GitHub** [:arrow_right: License](https://github.com/ing-bank/INGenious)

Browser Automation Testing & QA
141 Github Stars