# mdumartronlabz/tools architecture

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

- Interactive diagram: https://gitdiagram.com/mdumartronlabz/tools
- Repository: https://github.com/mdumartronlabz/tools

## Overview

This repository is a collection of development utilities: image and video processing scripts, an email-campaign server, and document templates. The main.js workflow takes local files and configured options, then invokes the active bulk image conversion; other processing capabilities are documented or exposed in modules, but their calls in main.js are commented out. The email server accepts recipient lists, builds message content from HTML templates, sends mail through SMTP, and logs outcomes. The PDF generator templates are present, but their runtime or generation mechanism is not shown in the sampled source.

Main entry points: [`Email Marketing/server.js`](https://github.com/mdumartronlabz/tools/blob/prod/Email%20Marketing/server.js) (Campaign API), [`main.js`](https://github.com/mdumartronlabz/tools/blob/prod/main.js) (Tool runner), [`Image Tools/image_converter.js`](https://github.com/mdumartronlabz/tools/blob/prod/Image%20Tools/image_converter.js) (Image conversion), [`Email Marketing/email_html`](https://github.com/mdumartronlabz/tools/tree/prod/Email%20Marketing/email_html) (Email templates)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_image["Image processing"]
  node_image_convert["Image conversion<br/>[image_converter.js]"]
  node_image_crop["Image cropping<br/>[image_crop.js]"]
  node_image_enhance["Image enhancement<br/>[image_enhancer.js]"]
  node_image_resize["Image resizing<br/>[image_resizer.js]"]
  node_image_resize_convert["Resize and convert"]
  node_jpg_compress["JPEG compression<br/>[jpg_compressor.js]"]
  node_png_compress["PNG compression<br/>[png_compressor.js]"]
end

subgraph group_video["Video processing"]
  node_video_compress["Video compression"]
  node_video_crop["Video frame crop"]
  node_video_audio["Audio extraction"]
  node_video_gif["GIF conversion"]
  node_video_thumbnail["Thumbnail generation"]
  node_video_webm["WebM conversion"]
end

subgraph group_email["Email marketing"]
  node_email_server["Campaign API<br/>[server.js]"]
  node_email_templates["Email templates"]
  node_sent_log[("Sent log<br/>[sent-log.txt]")]
end

subgraph group_docs["Document templates"]
  node_pdf_templates["PDF generator templates"]
end

node_operator(("Local operator"))
node_main["Tool runner<br/>[main.js]"]
node_email_user(("Campaign caller"))
node_smtp["SMTP service"]

node_operator -->|"runs"| node_main
node_main -->|"calls WEBP conversion"| node_image_convert
node_email_user -->|"posts recipients"| node_email_server
node_email_server -->|"reads templates"| node_email_templates
node_email_server -->|"sends email"| node_smtp
node_email_server -->|"appends status"| node_sent_log

click node_main "https://github.com/mdumartronlabz/tools/blob/prod/main.js"
click node_image_convert "https://github.com/mdumartronlabz/tools/blob/prod/Image%20Tools/image_converter.js"
click node_image_crop "https://github.com/mdumartronlabz/tools/blob/prod/Image%20Tools/image_crop.js"
click node_image_enhance "https://github.com/mdumartronlabz/tools/blob/prod/Image%20Tools/image_enhancer.js"
click node_image_resize "https://github.com/mdumartronlabz/tools/blob/prod/Image%20Tools/image_resizer.js"
click node_image_resize_convert "https://github.com/mdumartronlabz/tools/blob/prod/Image%20Tools/image_resizer_and_converter.js"
click node_jpg_compress "https://github.com/mdumartronlabz/tools/blob/prod/Image%20Tools/jpg_compressor.js"
click node_png_compress "https://github.com/mdumartronlabz/tools/blob/prod/Image%20Tools/png_compressor.js"
click node_video_compress "https://github.com/mdumartronlabz/tools/blob/prod/Video%20Tools/video_compressor.js"
click node_video_crop "https://github.com/mdumartronlabz/tools/blob/prod/Video%20Tools/video_frame_cropper.js"
click node_video_audio "https://github.com/mdumartronlabz/tools/blob/prod/Video%20Tools/video_to_audio_extracter.js"
click node_video_gif "https://github.com/mdumartronlabz/tools/blob/prod/Video%20Tools/video_to_gif_converter.js"
click node_video_thumbnail "https://github.com/mdumartronlabz/tools/blob/prod/Video%20Tools/video_to_thumbnail_generator.js"
click node_video_webm "https://github.com/mdumartronlabz/tools/blob/prod/Video%20Tools/convert_video_to_webm_video_format.js"
click node_email_server "https://github.com/mdumartronlabz/tools/blob/prod/Email%20Marketing/server.js"
click node_email_templates "https://github.com/mdumartronlabz/tools/tree/prod/Email%20Marketing/email_html"
click node_sent_log "https://github.com/mdumartronlabz/tools/blob/prod/Email%20Marketing/sent-log.txt"
click node_pdf_templates "https://github.com/mdumartronlabz/tools/tree/prod/pdf%20generator"

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_image_convert,node_image_crop,node_image_enhance,node_image_resize,node_image_resize_convert,node_jpg_compress,node_png_compress toneBlue
class node_video_compress,node_video_crop,node_video_audio,node_video_gif,node_video_thumbnail,node_video_webm toneAmber
class node_email_server,node_email_templates,node_sent_log toneMint
class node_pdf_templates toneRose
class node_operator,node_email_user,node_smtp toneIndigo
class node_main toneTeal
```

## Components

### Image processing

- [Image conversion](https://github.com/mdumartronlabz/tools/blob/prod/Image%20Tools/image_converter.js): `Image Tools/image_converter.js`
- [Image cropping](https://github.com/mdumartronlabz/tools/blob/prod/Image%20Tools/image_crop.js): `Image Tools/image_crop.js`
- [Image enhancement](https://github.com/mdumartronlabz/tools/blob/prod/Image%20Tools/image_enhancer.js): `Image Tools/image_enhancer.js`
- [Image resizing](https://github.com/mdumartronlabz/tools/blob/prod/Image%20Tools/image_resizer.js): `Image Tools/image_resizer.js`
- [Resize and convert](https://github.com/mdumartronlabz/tools/blob/prod/Image%20Tools/image_resizer_and_converter.js): `Image Tools/image_resizer_and_converter.js`
- [JPEG compression](https://github.com/mdumartronlabz/tools/blob/prod/Image%20Tools/jpg_compressor.js): `Image Tools/jpg_compressor.js`
- [PNG compression](https://github.com/mdumartronlabz/tools/blob/prod/Image%20Tools/png_compressor.js): `Image Tools/png_compressor.js`

### Video processing

- [Video compression](https://github.com/mdumartronlabz/tools/blob/prod/Video%20Tools/video_compressor.js): `Video Tools/video_compressor.js`
- [Video frame crop](https://github.com/mdumartronlabz/tools/blob/prod/Video%20Tools/video_frame_cropper.js): `Video Tools/video_frame_cropper.js`
- [Audio extraction](https://github.com/mdumartronlabz/tools/blob/prod/Video%20Tools/video_to_audio_extracter.js): `Video Tools/video_to_audio_extracter.js`
- [GIF conversion](https://github.com/mdumartronlabz/tools/blob/prod/Video%20Tools/video_to_gif_converter.js): `Video Tools/video_to_gif_converter.js`
- [Thumbnail generation](https://github.com/mdumartronlabz/tools/blob/prod/Video%20Tools/video_to_thumbnail_generator.js): `Video Tools/video_to_thumbnail_generator.js`
- [WebM conversion](https://github.com/mdumartronlabz/tools/blob/prod/Video%20Tools/convert_video_to_webm_video_format.js): `Video Tools/convert_video_to_webm_video_format.js`

### Email marketing

- [Campaign API](https://github.com/mdumartronlabz/tools/blob/prod/Email%20Marketing/server.js): `Email Marketing/server.js`
- [Email templates](https://github.com/mdumartronlabz/tools/tree/prod/Email%20Marketing/email_html): `Email Marketing/email_html`
- [Sent log](https://github.com/mdumartronlabz/tools/blob/prod/Email%20Marketing/sent-log.txt): `Email Marketing/sent-log.txt`

### Document templates

- [PDF generator templates](https://github.com/mdumartronlabz/tools/tree/prod/pdf%20generator): `pdf generator`

### Other components

- **Local operator**
- [Tool runner](https://github.com/mdumartronlabz/tools/blob/prod/main.js): `main.js`
- **Campaign caller**
- **SMTP service**

## Connections

- Local operator → Tool runner: runs
- Tool runner → Image conversion: calls WEBP conversion
- Campaign caller → Campaign API: posts recipients
- Campaign API → Email templates: reads templates
- Campaign API → SMTP service: sends email
- Campaign API → Sent log: appends status
