{width=75%} [](https://gitlab.gwdg.de/aqinda/constrainify-core/-/releases) # Constrainify - Simplify Creating Quality Constraints to Analyze Data Constrainify is an application that allows users to create quality constraints and perform data quality analysis. Users can define quality constraints in the form of intuitive sentences based on templates. They can select a set from the defined constraints and run it for their quality analysis. The two data quality tools, MQAF ([MQAF Webservice] and [MQAF Report]) and [QPM], work in the background to produce a detailed and understandable quality report. [MQAF Webservice]: https://github.com/pkiraly/mqaf-ws [MQAF Report]: https://github.com/pkiraly/mqaf-report [QPM]: https://github.com/Project-KONDA/pattern-based-quality-analysis ## Why Constrainify? Typical data quality tools often require a variety of skills. In addition to the typical analytical skills of a data analyst, expert knowledge of data and data models is also required. Constrainify takes care of the details of the data and the structure of the data model behind it. Users only need an affinity for quality problems and an interest in high data quality. Constrainify allows users to define constraints using natural language and easy to understand sentences. Users can define their own constraints based on templates and adapt them to their data. Quality analysis runs in the background and produces a corresponding quality report. No account is required and the data remains temporary and anonymous. ## Demo [Constrainify](https://aqinda.gwdg.de) (internal preview, password required) ## Getting Started > **Step 1** Make sure you have Docker installed, clone this repository and navigate to its directory. > **Step 2** Create a secret key stored in the file `session_key.env` that looks like this: `6zgm8raxznijv7781k49ut5m9`. > **Step 3** Use Docker to run the application: ```bash docker compose up ``` > **Step 4** Go to http://localhost:8000 on any browser and enjoy Constrainfy! ## Configure Environment variables like ports are stored in `.env.prod`. Some ports are requested on your host. Change or override them to your liking: - `CONSTRAINIFY_PORT` - port of the web application (8000 by default) - `WS_WEBPORT` - port of [MAQF Webservice] (9090 by default) - `REPORT_WEBPORT` - port of [MQAF Report] API (90 by default) - `SOLRPORT` - port of [MQAF Report Solr] (8983 by default) - `MQAF_CONFIG` - configuration directory of [MQAF Report] (see [default](test-data/aqinda/config)) and [MQAF Webservice]. Port of [QPM] is hard-coded to 8080. The application further includes a MySQL database at port 3307 (see [database schema](configuration/database/init.sql)).