How vaibhavsandbho/ats_bom_integration_ui works
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 ATS Tool · README.md README
Components 12
Repository
Single-file desktop conversion tool and supporting documentation
- Vault BOM CSV · Autodesk Vault BOM export used as input
- ATS Tool · Main Python application containing the UI and conversion workflow
ATS_BOM_Automation_Tool.py - Desktop UI · File selection and generate action boundary
ATS_BOM_Automation_Tool.py - Validate CSV · Checks the selected Vault export before conversion
ATS_BOM_Automation_Tool.py - Map Data · Maps validated BOM rows into Clarity-ready structures
ATS_BOM_Automation_Tool.py - Item Import · Generated workbook for Clarity item import
- BOM Import · Generated workbook for Clarity BOM import
- Logo Asset · Branding image referenced by the desktop interface
- README · Setup, runtime, and packaging instructions
README.md - PyInstaller Build · Standalone executable distribution for end users
Other components
- User · Starts the desktop app and selects the source export
- Clarity ERP · Downstream consumer of the generated import files
Connections 14
- 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