# vaibhavsandbho/ats_bom_integration_ui architecture

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

- Interactive diagram: https://gitdiagram.com/vaibhavsandbho/ats_bom_integration_ui
- Repository: https://github.com/vaibhavsandbho/ats_bom_integration_ui

## Overview

1. **Repository shape**
   - This is a very small, single-purpose desktop application repository.
   - The entire application lives in one Python file, `ATS_BOM_Automation_Tool.py`, with supporting assets in `ats_logo.png` and build/runtime instructions in `README.md`.
   - There are no separate packages, services, APIs, or backend/frontend split.

2. **Primary purpose**
   - The tool transforms **Autodesk Vault BOM CSV exports** into **Clarity ERP import workbooks**.
   - Its core function is an offline file-conversion workflow rather than a networked or database-driven system.

3. **Main user interaction boundary**
   - The application exposes a **simple desktop UI**.
   - The user selects a source CSV file, triggers generation, and receives two Excel output files.
   - The UI is the only interactive boundary; there is no mention of web UI, CLI workflow, or external orchestration.

4. **Input subsystem**
   - The only stated input is a Vault BOM CSV export such as `Vault_BOM.csv`.
   - The application is expected to validate that input before conversion.
   - This suggests the CSV parser/validator is an important internal subsystem that gates the rest of the workflow.

5. **Transformation pipeline**
   - The conversion path is linear: **Vault CSV → ATS BOM Automation Tool → Clarity ERP Excel files**.
   - The logic is described as integrated into the main application, so CSV parsing, mapping, validation, and workbook generation are all likely handled in the same codebase and process.
   - The tool generates two distinct outputs from the same source data, indicating a split in downstream transformation logic:
     - Item import generation
     - BOM import generation

6. **Output subsystem**
   - The tool produces two Excel files:
     - `Vault_BOM-ItemImport.xlsx`
     - `Vault_BOM_BOM_Import_Clarity.xlsx`
   - These are specifically formatted for import into **Clarity ERP**, so the workbook schema and column mapping are central architectural concerns.
   - Output generation is the final step; no additional services or post-processing are mentioned.

7. **Technology stack**
   - The application is written in **Python**.
   - The README lists the runtime libraries used for this kind of desktop/file-processing app:
     - `pandas` for tabular data handling
     - `openpyxl` and `xlsxwriter` for Excel creation
     - `customtkinter` for the desktop UI
     - `pillow` for image/logo handling
   - The use of `pyinstaller` indicates the app is intended to be packaged as a standalone Windows executable.

8. **Packaging and deployment model**
   - There are two execution modes:
     - Developer mode: run the Python script directly
     - User mode: run the packaged `.exe`
   - The deployment artifact is a single executable in `dist/`, meaning the runtime dependencies are bundled for end users.
   - This is an important boundary for architecture diagrams: development-time Python environment versus end-user distributed binary.

9. **Asset usage**
   - `ats_logo.png` is part of the UI branding and likely loaded by the desktop application.
   - It is not a functional dependency for conversion logic, but it is part of the presentation layer and packaging context.

10. **Operational flow**
   - The end-to-end process is fully local:
     1. Export BOM from Autodesk Vault
     2. Open the desktop tool
     3. Select the CSV
     4. Generate the Excel outputs
     5. Import the resulting files into Clarity ERP
   - No cloud services, message queues, file watchers, or external automation systems are described.

11. **Key architectural boundary: source system vs target system**
   - The application sits between two enterprise systems:
     - **Source:** Autodesk Vault BOM export
     - **Target:** Clarity ERP import templates
   - The main responsibility is data reformatting and validation across these system boundaries, not master data management or ERP integration at runtime.

12. **What to show in a diagram**
   - The simplest accurate diagram would include:
     - User
     - Desktop GUI app (`ATS_BOM_Automation_Tool.py`)
     - CSV input file from Autodesk Vault
     - Internal validation/transformation logic
     - Two Excel output files
     - Clarity ERP as the downstream consumer
   - The repo has no evidence of additional subsystems beyond that flow.

Main entry points: [`ATS_BOM_Automation_Tool.py`](https://github.com/vaibhavsandbho/ats_bom_integration_ui/blob/main/ATS_BOM_Automation_Tool.py) (ATS Tool), [`README.md`](https://github.com/vaibhavsandbho/ats_bom_integration_ui/blob/main/README.md) (README)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_repo["Repository"]
  node_vault_csv["Vault BOM CSV<br/>source file"]
  node_app["ATS Tool<br/>desktop app"]
  node_ui["Desktop UI<br/>interface"]
  node_validate["Validate CSV<br/>parser/validator"]
  node_transform["Map Data<br/>conversion logic"]
  node_item_xlsx["Item Import<br/>excel output"]
  node_bom_xlsx["BOM Import<br/>excel output"]
  node_logo["Logo Asset<br/>ui asset"]
  node_readme["README<br/>docs<br/>[README.md]"]
  node_package{{"PyInstaller Build<br/>packaging"}}
end

node_user(("User<br/>operator"))
node_clarity[("Clarity ERP<br/>target system")]

node_user -->|"opens"| node_ui
node_ui -->|"selects"| node_vault_csv
node_ui -->|"submits"| node_validate
node_validate -->|"passes"| node_transform
node_transform -->|"writes"| node_item_xlsx
node_transform -->|"writes"| node_bom_xlsx
node_item_xlsx -->|"imported into"| node_clarity
node_bom_xlsx -->|"imported into"| node_clarity
node_app -->|"contains"| node_ui
node_app -->|"implements"| node_validate
node_app -->|"implements"| node_transform
node_app -->|"loads"| node_logo
node_readme -->|"describes"| node_package
node_package -->|"bundles"| node_app

click node_app "https://github.com/vaibhavsandbho/ats_bom_integration_ui/blob/main/ATS_BOM_Automation_Tool.py"
click node_ui "https://github.com/vaibhavsandbho/ats_bom_integration_ui/blob/main/ATS_BOM_Automation_Tool.py"
click node_validate "https://github.com/vaibhavsandbho/ats_bom_integration_ui/blob/main/ATS_BOM_Automation_Tool.py"
click node_transform "https://github.com/vaibhavsandbho/ats_bom_integration_ui/blob/main/ATS_BOM_Automation_Tool.py"
click node_readme "https://github.com/vaibhavsandbho/ats_bom_integration_ui/blob/main/README.md"

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_vault_csv,node_app,node_ui,node_validate,node_transform,node_item_xlsx,node_bom_xlsx,node_logo,node_readme,node_package toneBlue
class node_user,node_clarity toneNeutral
```

## Components

### Repository

Single-file desktop conversion tool and supporting documentation

- **Vault BOM CSV**: source file · Autodesk Vault BOM export used as input
- [ATS Tool](https://github.com/vaibhavsandbho/ats_bom_integration_ui/blob/main/ATS_BOM_Automation_Tool.py): desktop app · Main Python application containing the UI and conversion workflow · `ATS_BOM_Automation_Tool.py`
- [Desktop UI](https://github.com/vaibhavsandbho/ats_bom_integration_ui/blob/main/ATS_BOM_Automation_Tool.py): interface · File selection and generate action boundary · `ATS_BOM_Automation_Tool.py`
- [Validate CSV](https://github.com/vaibhavsandbho/ats_bom_integration_ui/blob/main/ATS_BOM_Automation_Tool.py): parser/validator · Checks the selected Vault export before conversion · `ATS_BOM_Automation_Tool.py`
- [Map Data](https://github.com/vaibhavsandbho/ats_bom_integration_ui/blob/main/ATS_BOM_Automation_Tool.py): conversion logic · Maps validated BOM rows into Clarity-ready structures · `ATS_BOM_Automation_Tool.py`
- **Item Import**: excel output · Generated workbook for Clarity item import
- **BOM Import**: excel output · Generated workbook for Clarity BOM import
- **Logo Asset**: ui asset · Branding image referenced by the desktop interface
- [README](https://github.com/vaibhavsandbho/ats_bom_integration_ui/blob/main/README.md): docs · Setup, runtime, and packaging instructions · `README.md`
- **PyInstaller Build**: packaging · Standalone executable distribution for end users

### Other components

- **User**: operator · Starts the desktop app and selects the source export
- **Clarity ERP**: target system · Downstream consumer of the generated import files

## Connections

- User → Desktop UI: opens · User enters the desktop interface
- Desktop UI → Vault BOM CSV: selects · User chooses the Vault BOM export file
- Desktop UI → Validate CSV: submits · Selected CSV enters the processing pipeline
- Validate CSV → Map Data: passes · Validated data moves into conversion logic
- Map Data → Item Import: writes · Creates the item import workbook
- Map Data → BOM Import: writes · Creates the BOM import workbook
- Item Import → Clarity ERP: imported into · Item workbook is consumed by Clarity ERP
- BOM Import → Clarity ERP: imported into · BOM workbook is consumed by Clarity ERP
- ATS Tool → Desktop UI: contains · The GUI is part of the main application file
- ATS Tool → Validate CSV: implements · Validation logic lives in the main application file
- ATS Tool → Map Data: implements · Workbook generation lives in the main application file
- ATS Tool → Logo Asset: loads · Desktop UI references a branding asset
- README → PyInstaller Build: describes · Documentation covers packaging and runtime usage
- PyInstaller Build → ATS Tool: bundles · PyInstaller packages the Python app into a standalone executable
