# devansh80/aadhaar-uid-masking-tool architecture

> Architecture diagram of the GitHub repository devansh80/aadhaar-uid-masking-tool, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/devansh80/aadhaar-uid-masking-tool
- Repository: https://github.com/devansh80/aadhaar-uid-masking-tool

## Overview

Aadhaar UID masking desktop tool: users select an image or document, the application searches for UID candidates, masks detected numbers, and saves a masked result. The source excerpt supports the OCR, checksum, image-masking, and PDF/TIFF helper behaviors, but omits parts of the main processing functions, so several workflow links are intentionally left unspecified. README capabilities such as batch processing and multilingual recognition are documented but not verifiable in the sampled implementation.

Main entry points: [`Masking.py`](https://github.com/devansh80/aadhaar-uid-masking-tool/blob/master/Masking.py) (File workflow)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["Desktop interface"]
  node_gui["File selection UI<br/>[Masking.py]"]
  node_workflow["File workflow<br/>[Masking.py]"]
end

subgraph group_recognition["UID recognition"]
  node_ocr["OCR and orientation search<br/>[Masking.py]"]
  node_uid_search["UID candidate search<br/>[Masking.py]"]
  node_sr["Super-resolution model<br/>[Masking.py]"]
end

subgraph group_privacy["Validation and masking"]
  node_uid_check["Verhoeff checksum<br/>[Masking.py]"]
  node_mask["UID image masking<br/>[Masking.py]"]
end

subgraph group_documents["Document processing"]
  node_image_io["Image conversion<br/>[Masking.py]"]
  node_pdf_merge["PDF page replacement<br/>[Masking.py]"]
  node_pdf_tiff["PDF to TIFF merge<br/>[Masking.py]"]
end

node_user(("User"))
node_input["Selected document"]
node_tesseract["Tesseract OCR"]
node_poppler["Poppler renderer"]
node_output["Masked output"]

node_user -->|"selects file"| node_gui
node_input -->|"provides input"| node_gui
node_gui -->|"starts processing"| node_workflow
node_ocr -->|"runs OCR"| node_tesseract
node_ocr -->|"searches text"| node_uid_search
node_uid_search -->|"validates candidates"| node_uid_check
node_mask -->|"writes masked image"| node_output
node_workflow -->|"converts files"| node_image_io
node_workflow -->|"replaces PDF page"| node_pdf_merge
node_workflow -->|"exports TIFF"| node_pdf_tiff
node_image_io -->|"renders PDF pages"| node_poppler
node_pdf_tiff -->|"renders PDF pages"| node_poppler
node_pdf_merge -->|"writes merged PDF"| node_output
node_pdf_tiff -->|"writes merged TIFF"| node_output
node_sr -.->|"enhances image"| node_ocr

click node_gui "https://github.com/devansh80/aadhaar-uid-masking-tool/blob/master/Masking.py"
click node_workflow "https://github.com/devansh80/aadhaar-uid-masking-tool/blob/master/Masking.py"
click node_ocr "https://github.com/devansh80/aadhaar-uid-masking-tool/blob/master/Masking.py"
click node_uid_search "https://github.com/devansh80/aadhaar-uid-masking-tool/blob/master/Masking.py"
click node_uid_check "https://github.com/devansh80/aadhaar-uid-masking-tool/blob/master/Masking.py"
click node_mask "https://github.com/devansh80/aadhaar-uid-masking-tool/blob/master/Masking.py"
click node_sr "https://github.com/devansh80/aadhaar-uid-masking-tool/blob/master/Masking.py"
click node_image_io "https://github.com/devansh80/aadhaar-uid-masking-tool/blob/master/Masking.py"
click node_pdf_merge "https://github.com/devansh80/aadhaar-uid-masking-tool/blob/master/Masking.py"
click node_pdf_tiff "https://github.com/devansh80/aadhaar-uid-masking-tool/blob/master/Masking.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_gui,node_workflow,node_user toneBlue
class node_ocr,node_uid_search,node_sr toneAmber
class node_uid_check,node_mask toneMint
class node_image_io,node_pdf_merge,node_pdf_tiff toneRose
class node_input,node_tesseract,node_poppler,node_output toneIndigo
```

## Components

### Desktop interface

- [File selection UI](https://github.com/devansh80/aadhaar-uid-masking-tool/blob/master/Masking.py): `Masking.py`
- [File workflow](https://github.com/devansh80/aadhaar-uid-masking-tool/blob/master/Masking.py): `Masking.py`

### UID recognition

- [OCR and orientation search](https://github.com/devansh80/aadhaar-uid-masking-tool/blob/master/Masking.py): `Masking.py`
- [UID candidate search](https://github.com/devansh80/aadhaar-uid-masking-tool/blob/master/Masking.py): `Masking.py`
- [Super-resolution model](https://github.com/devansh80/aadhaar-uid-masking-tool/blob/master/Masking.py): `Masking.py`

### Validation and masking

- [Verhoeff checksum](https://github.com/devansh80/aadhaar-uid-masking-tool/blob/master/Masking.py): `Masking.py`
- [UID image masking](https://github.com/devansh80/aadhaar-uid-masking-tool/blob/master/Masking.py): `Masking.py`

### Document processing

- [Image conversion](https://github.com/devansh80/aadhaar-uid-masking-tool/blob/master/Masking.py): `Masking.py`
- [PDF page replacement](https://github.com/devansh80/aadhaar-uid-masking-tool/blob/master/Masking.py): `Masking.py`
- [PDF to TIFF merge](https://github.com/devansh80/aadhaar-uid-masking-tool/blob/master/Masking.py): `Masking.py`

### Other components

- **User**
- **Selected document**
- **Tesseract OCR**
- **Poppler renderer**
- **Masked output**

## Connections

- User → File selection UI: selects file
- Selected document → File selection UI: provides input
- File selection UI → File workflow: starts processing
- OCR and orientation search → Tesseract OCR: runs OCR
- OCR and orientation search → UID candidate search: searches text
- UID candidate search → Verhoeff checksum: validates candidates
- UID image masking → Masked output: writes masked image
- File workflow → Image conversion: converts files
- File workflow → PDF page replacement: replaces PDF page
- File workflow → PDF to TIFF merge: exports TIFF
- Image conversion → Poppler renderer: renders PDF pages
- PDF to TIFF merge → Poppler renderer: renders PDF pages
- PDF page replacement → Masked output: writes merged PDF
- PDF to TIFF merge → Masked output: writes merged TIFF
- Super-resolution model → OCR and orientation search: enhances image
