Cortado is a process mining tool dedicated for interactive/incremental process discovery
- Import event logs
.xes
and initial process models.ptml
- Visually explore event logs with the variant explorer
- Discover initial process models from user-selected process behavior
- Incrementally extend process models by user-selected process behavior
- Manually edit process models under construction any time
- Export discovered process models as
.ptml
or.pnml
files - Temporal performance analysis, both model-based and model-independent
Standalone builds for Windows 10/11, Linux, and macOS (Apple Silicon only) are available from the GitHub Releases Page.
Cortado_Demo.mp4
src/
contains the source code of Cortadobuild_scripts/
contains scripts to build the standalone executables for the three major operating systems: Windows, Linux, and macOS. (Please make sure to correctly follow the Setup instructions before executing the build scripts.)LICENSE.txt
README.md
CHANGELOG.md
contains a history of Cortado releases
- Install Node.js latest LTS Version: 18.13.0 (https://nodejs.org/en/download/)
- Install all packages required by the frontend
- Navigate to
src/frontend/
- Execute
npm install
(this command installs all dependencies listed insrc/frontend/package.json
)
When building Cortado as a standalone application, we want to ensure that the application bundle only includes required dependencies. As Angular dependencies are bundled via webpack, we do not want to include them. Hence, dependencies that are only used in the Angular codebase should be included under thedevDependencies
keyword in thepackage.json
-file. All dependencies that are used in the Electron codebase must be included under thedependencies
keyword.)
- Navigate to
- Install Python 3.10.x (https://www.python.org/downloads/). Make sure to install a 64-BIT version.
- Optional (recommended): Install Graphviz (required by PM4Py) and add it to your PATH, see https://graphviz.org/download/ and https://pm4py.fit.fraunhofer.de/static/assets/api/2.3.0/install.html
- Optional (recommended): Create a virtual environment (https://docs.python.org/3/library/venv.html) and activate it
- Install all packages required by the backend
- Navigate to
src/backend/
- Execute
pip install -r requirements.txt
- Navigate to
- Navigate to
src/backend/
- Execute
python main.py
- For dynamic reloading of source code files, set environment variable
CORTADO_DEBUG
to1
- In a Web-Browser
- Navigate to
src/frontend/
- Execute
npm start
to build & run Cortado's frontend - Open your browser on http://localhost:4444/
- Navigate to
- In a dedicated Window of the Current OS
- Navigate to
src/frontend/
- Execute
npm start
to build & run Cortado's frontend - Execute
npm run electron-live-reload
that starts a window with Cortado
- Navigate to
To build executables from the source code, both the backend and frontend have to be converted. We use PyInstaller (https://pyinstaller.org/) to bundle all backend related files into a single executable. We use Electron (https://www.electronjs.org/) to generate an executable of the Frontend.
In build_scripts/
there are scripts for each major OS to build Cortado.
- Windows
build_scripts/build_cortado_windows.ps1
- MacOS
build_scripts/build_cortado_macos.sh
- Linux
build_scripts/build_cortado_linux.sh
Note that the operating system must match the script, otherwise the build will fail. Thus, if you are building Cortado for Windows, you must run the corresponding script on a Windows machine.
After the successful execution of the build script, the build is located in src/frontend/
To maintain consistent code quality and formatting crucial, we have integrated Github Workflows along with npm scripts for linting and manual fixing of formatting errors.
Our Github Workflow plays a pivotal role in ensuring code quality. Whenever changes are pushed to the repository, the workflow automatically triggers linting checks using various tools. We have separate jobs within the workflow to handle TypeScript, HTML, and SASS linting, as well as Python code formatting checks. If any issues are detected, the workflow provides prompt feedback, helping contributors address the problems early in the development cycle.
In addition to the automated workflow, we have set up npm scripts that facilitate local development and manual checks for formatting errors.
-
To perform comprehensive linting across TypeScript, HTML, and SASS files, use:
npm run lint
-
If linting issues are detected, you can initiate automatic fixes for TypeScript and SASS files using:
npm run lint-scripts-fix
andnpm run lint-styles-fix
-
For HTML files, you can manually review and fix the issues identified by the linter.
-
We also support Python code formatting checks using the command:
black --check .
These tools and scripts are designed to streamline the development process, ensuring that our codebase remains clean, consistent, and of high quality. Before submitting your contributions, make sure to run these checks locally and address any issues to facilitate smoother code reviews and integration.
If you are using or referencing Cortado in scientific work, please cite Cortado as follows.
Schuster, D., van Zelst, S.J., van der Aalst, W.M.P. (2023). Cortado: A dedicated process mining tool for interactive process discovery. SoftwareX Vol. 22. Elsevier. https://doi.org/10.1016/j.softx.2023.101373.
Download citation https://www.sciencedirect.com/science/article/pii/S2352711023000699
DOI 10.1016/j.softx.2023.101373
If you are interested in Cortado, get in touch if you have any questions or custom request via Mail - daniel.schuster@rwth-aachen.de