# vinisha-a/qualix_final architecture

> Architecture diagram of the GitHub repository vinisha-a/qualix_final, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-06-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/vinisha-a/qualix_final
- Repository: https://github.com/vinisha-a/qualix_final

## Overview

This repository is a Django-based data quality platform organized as a single monolith with multiple domain apps. The main runtime entry points are `manage.py`, Django `wsgi.py/asgi.py`, and a Celery setup in `data_quality/celery.py`, which indicates that some validation/workflow execution happens asynchronously.

The core architectural boundary is between the web UI and the backend domain logic. The UI is server-rendered with Django templates (`templates/`, plus per-app templates), shared layout components, and static assets under `static/`. There is no separate frontend app; pages for setup, configuration, execution, and reporting are rendered by the Django server.

Authentication and user administration live in `accounts/`. This app handles login, password recovery, SSO selection, user management, decorators, and context processors, so it forms the access-control layer for the rest of the platform.

`connections/` is the source-system integration boundary. It stores connection definitions and credentials, exposes forms and views for creating/listing connections, and contains a `connector.py` module that likely encapsulates the actual connection/session logic. This app is the bridge from the platform into external data sources such as Databricks, PostgreSQL, MySQL, Oracle, DB2, CSV, and Parquet, as described in the README.

`mappings/` defines how data should be interpreted or transformed before validation. Its models and views support creation, editing, and listing of mappings, and the migrations show substantial evolution around date filtering, relative date operators, source date columns, sum/length fields, draft state, and validation rule operations. This is the configuration layer for validation logic, not the execution layer itself.

`validations/` is the execution and reporting subsystem for data quality checks. It contains a `engine.py` for rule execution and `tasks.py` for background processing, plus models for validation runs and selected parameters. The templates include progress and report pages, which suggests runs are launched asynchronously and then surfaced through a UI that tracks status and displays results.

`workflows/` is the orchestration layer for scheduled or trigger-driven processing. The presence of `tasks.py`, `trigger_engine.py`, and migrations for high-water-mark tables and DB trigger fields suggests this app manages repeatable execution, incremental processing, and event/trigger-based workflows rather than only one-off validation runs.

`dashboard/` is the monitoring and landing area. It provides the main index/help pages and includes a notification model, so it likely aggregates recent runs, system status, and user-facing alerts. This is the primary reporting surface after validations and workflows complete.

The end-to-end data flow is: user authenticates through `accounts`, configures a source in `connections`, defines business logic in `mappings`, executes checks through `validations` or `workflows`, and reviews outcomes in `dashboard` and validation report pages. The database-backed models across apps are the system of record for configuration, execution history, and reporting.

The codebase is structured around Django apps with their own URLs, views, models, templates, and migrations. That separation is important for an architecture diagram: each app is a domain boundary, while Django settings and shared templates/static files provide the cross-cutting application shell.

Celery is the main infrastructure piece besides the relational database. It likely handles long-running validation and workflow jobs, allowing the UI to show progress without blocking web requests. That makes the platform suitable for large enterprise data sources and batch-oriented quality checks.

In diagram terms, the key external interfaces are: authenticated browser users, database-backed application state, background task execution via Celery, and remote data sources accessed through the connector engine. The central architectural theme is configuration-driven data quality processing with async execution and reporting.

Main entry points: [`data_quality/settings.py`](https://github.com/vinisha-a/qualix_final/blob/main/data_quality/settings.py) (Django core), [`validations/models.py`](https://github.com/vinisha-a/qualix_final/blob/main/validations/models.py) (Validations), [`workflows/models.py`](https://github.com/vinisha-a/qualix_final/blob/main/workflows/models.py) (Workflows), [`dashboard/models.py`](https://github.com/vinisha-a/qualix_final/blob/main/dashboard/models.py) (Dashboard)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_group_shell["Django shell"]
  node_node_manage["manage.py<br/>entrypoint<br/>[manage.py]"]
  node_node_django["Django core<br/>runtime<br/>[settings.py]"]
  node_node_templates["Base UI<br/>ui shell<br/>[base.html]"]
  node_node_celery(("Celery<br/>async runtime<br/>[celery.py]"))
end

subgraph group_group_access["Access control"]
  node_node_accounts["Accounts<br/>auth app<br/>[models.py]"]
  node_node_accounts_ui["Auth pages<br/>templates<br/>[login.html]"]
end

subgraph group_group_config["Configuration"]
  node_node_connections["Connections<br/>integration app<br/>[models.py]"]
  node_node_connector["Connector<br/>source bridge<br/>[connector.py]"]
  node_node_mappings["Mappings<br/>config app<br/>[models.py]"]
  node_node_mapping_views["Mapping UI<br/>templates<br/>[list.html]"]
end

subgraph group_group_execution["Execution"]
  node_node_validations["Validations<br/>engine app<br/>[models.py]"]
  node_node_validation_engine["Rule engine<br/>executor<br/>[engine.py]"]
  node_node_validation_tasks["Validation jobs<br/>celery tasks<br/>[tasks.py]"]
  node_node_workflows["Workflows<br/>orchestration app<br/>[models.py]"]
  node_node_trigger_engine["Trigger engine<br/>orchestration core<br/>[trigger_engine.py]"]
  node_node_workflow_tasks["Workflow jobs<br/>celery tasks<br/>[tasks.py]"]
end

subgraph group_group_reporting["Reporting"]
  node_node_dashboard["Dashboard<br/>reporting app<br/>[models.py]"]
  node_node_dashboard_ui["Dashboard pages<br/>templates<br/>[index.html]"]
end

node_node_manage -->|"starts"| node_node_django
node_node_django -->|"shares"| node_node_templates
node_node_django -->|"routes"| node_node_accounts
node_node_django -->|"routes"| node_node_connections
node_node_django -->|"routes"| node_node_mappings
node_node_django -->|"routes"| node_node_validations
node_node_django -->|"routes"| node_node_workflows
node_node_django -->|"routes"| node_node_dashboard
node_node_accounts -->|"renders"| node_node_accounts_ui
node_node_connections -->|"uses"| node_node_connector
node_node_connections -->|"supplies"| node_node_mappings
node_node_mappings -->|"configures"| node_node_validation_engine
node_node_validations -->|"executes"| node_node_validation_engine
node_node_validations -->|"dispatches"| node_node_validation_tasks
node_node_validation_tasks -->|"runs on"| node_node_celery
node_node_workflows -->|"orchestrates"| node_node_trigger_engine
node_node_workflows -->|"dispatches"| node_node_workflow_tasks
node_node_workflow_tasks -->|"runs on"| node_node_celery
node_node_validations -->|"reports to"| node_node_dashboard
node_node_workflows -->|"reports to"| node_node_dashboard
node_node_dashboard -->|"renders"| node_node_dashboard_ui

click node_node_manage "https://github.com/vinisha-a/qualix_final/blob/main/manage.py"
click node_node_django "https://github.com/vinisha-a/qualix_final/blob/main/data_quality/settings.py"
click node_node_templates "https://github.com/vinisha-a/qualix_final/blob/main/templates/base.html"
click node_node_accounts "https://github.com/vinisha-a/qualix_final/blob/main/accounts/models.py"
click node_node_accounts_ui "https://github.com/vinisha-a/qualix_final/blob/main/accounts/templates/accounts/login.html"
click node_node_connections "https://github.com/vinisha-a/qualix_final/blob/main/connections/models.py"
click node_node_connector "https://github.com/vinisha-a/qualix_final/blob/main/connections/connector.py"
click node_node_mappings "https://github.com/vinisha-a/qualix_final/blob/main/mappings/models.py"
click node_node_mapping_views "https://github.com/vinisha-a/qualix_final/blob/main/mappings/templates/mappings/list.html"
click node_node_validations "https://github.com/vinisha-a/qualix_final/blob/main/validations/models.py"
click node_node_validation_engine "https://github.com/vinisha-a/qualix_final/blob/main/validations/engine.py"
click node_node_validation_tasks "https://github.com/vinisha-a/qualix_final/blob/main/validations/tasks.py"
click node_node_workflows "https://github.com/vinisha-a/qualix_final/blob/main/workflows/models.py"
click node_node_trigger_engine "https://github.com/vinisha-a/qualix_final/blob/main/workflows/trigger_engine.py"
click node_node_workflow_tasks "https://github.com/vinisha-a/qualix_final/blob/main/workflows/tasks.py"
click node_node_dashboard "https://github.com/vinisha-a/qualix_final/blob/main/dashboard/models.py"
click node_node_dashboard_ui "https://github.com/vinisha-a/qualix_final/blob/main/dashboard/templates/dashboard/index.html"
click node_node_celery "https://github.com/vinisha-a/qualix_final/blob/main/data_quality/celery.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_node_manage,node_node_django,node_node_templates,node_node_celery toneBlue
class node_node_accounts,node_node_accounts_ui toneAmber
class node_node_connections,node_node_connector,node_node_mappings,node_node_mapping_views toneMint
class node_node_validations,node_node_validation_engine,node_node_validation_tasks,node_node_workflows,node_node_trigger_engine,node_node_workflow_tasks toneRose
class node_node_dashboard,node_node_dashboard_ui toneIndigo
```

## Components

### Django shell

Project entry points and shared presentation assets

- [manage.py](https://github.com/vinisha-a/qualix_final/blob/main/manage.py): entrypoint · Django management entry point · `manage.py`
- [Django core](https://github.com/vinisha-a/qualix_final/blob/main/data_quality/settings.py): runtime · ASGI/WGI app, settings, and URL routing · `data_quality/settings.py`
- [Base UI](https://github.com/vinisha-a/qualix_final/blob/main/templates/base.html): ui shell · Shared templates and static assets · `templates/base.html`
- [Celery](https://github.com/vinisha-a/qualix_final/blob/main/data_quality/celery.py): async runtime · Background worker configuration for long-running jobs · `data_quality/celery.py`

### Access control

Authentication and user administration

- [Accounts](https://github.com/vinisha-a/qualix_final/blob/main/accounts/models.py): auth app · Login, SSO selection, password recovery, and user management · `accounts/models.py`
- [Auth pages](https://github.com/vinisha-a/qualix_final/blob/main/accounts/templates/accounts/login.html): templates · Account-related server-rendered pages · `accounts/templates/accounts/login.html`

### Configuration

Connection and mapping setup for data quality rules

- [Connections](https://github.com/vinisha-a/qualix_final/blob/main/connections/models.py): integration app · Source-system connection definitions and connector logic · `connections/models.py`
- [Connector](https://github.com/vinisha-a/qualix_final/blob/main/connections/connector.py): source bridge · Session and credential bridge to external data sources · `connections/connector.py`
- [Mappings](https://github.com/vinisha-a/qualix_final/blob/main/mappings/models.py): config app · Mapping definitions and rule configuration · `mappings/models.py`
- [Mapping UI](https://github.com/vinisha-a/qualix_final/blob/main/mappings/templates/mappings/list.html): templates · Create, edit, detail, and list pages for mappings · `mappings/templates/mappings/list.html`

### Execution

Validation and workflow runtime

- [Validations](https://github.com/vinisha-a/qualix_final/blob/main/validations/models.py): engine app · Validation run models, engine, and async task orchestration · `validations/models.py`
- [Rule engine](https://github.com/vinisha-a/qualix_final/blob/main/validations/engine.py): executor · Executes validation rules and builds run results · `validations/engine.py`
- [Validation jobs](https://github.com/vinisha-a/qualix_final/blob/main/validations/tasks.py): celery tasks · Background execution for validation runs · `validations/tasks.py`
- [Workflows](https://github.com/vinisha-a/qualix_final/blob/main/workflows/models.py): orchestration app · Scheduled and trigger-driven processing · `workflows/models.py`
- [Trigger engine](https://github.com/vinisha-a/qualix_final/blob/main/workflows/trigger_engine.py): orchestration core · Trigger-based and incremental workflow execution · `workflows/trigger_engine.py`
- [Workflow jobs](https://github.com/vinisha-a/qualix_final/blob/main/workflows/tasks.py): celery tasks · Background workflow processing · `workflows/tasks.py`

### Reporting

Dashboard and status surfaces

- [Dashboard](https://github.com/vinisha-a/qualix_final/blob/main/dashboard/models.py): reporting app · Landing page, help pages, and notifications · `dashboard/models.py`
- [Dashboard pages](https://github.com/vinisha-a/qualix_final/blob/main/dashboard/templates/dashboard/index.html): templates · Main index and help views · `dashboard/templates/dashboard/index.html`

## Connections

- manage.py → Django core: starts · Management commands boot the Django project
- Django core → Base UI: shares · Project shell uses common base templates and static assets
- Django core → Accounts: routes · Django URL configuration exposes the authentication app
- Django core → Connections: routes · Django URL configuration exposes connection management
- Django core → Mappings: routes · Django URL configuration exposes mapping setup
- Django core → Validations: routes · Django URL configuration exposes validation screens
- Django core → Workflows: routes · Django URL configuration exposes workflow screens
- Django core → Dashboard: routes · Django URL configuration exposes dashboard pages
- Accounts → Auth pages: renders · Authentication views render account templates
- Connections → Connector: uses · Connection records feed external source access
- Connections → Mappings: supplies · Mappings depend on configured source connections
- Mappings → Rule engine: configures · Validation rules are derived from mapping definitions
- Validations → Rule engine: executes · Validation runs are processed by the rule engine
- Validations → Validation jobs: dispatches · Long-running validation work is offloaded asynchronously
- Validation jobs → Celery: runs on · Validation jobs execute in Celery workers
- Workflows → Trigger engine: orchestrates · Workflow app coordinates trigger and incremental processing
- Workflows → Workflow jobs: dispatches · Workflow processing is queued to background tasks
- Workflow jobs → Celery: runs on · Workflow jobs execute in Celery workers
- Validations → Dashboard: reports to · Validation outcomes surface in dashboard and reports
- Workflows → Dashboard: reports to · Workflow status and notifications surface in dashboard
- Dashboard → Dashboard pages: renders · Dashboard views render server-side pages
