# rhine227/ims_automation-main architecture

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

- Interactive diagram: https://gitdiagram.com/rhine227/ims_automation-main
- Repository: https://github.com/rhine227/ims_automation-main

## Overview

IMS Automation is a desktop tool for turning maintenance-checklist Excel templates into completed workbooks. The principal workflow is: launch the template selector, choose a workbook, convert legacy .xls files when needed, extract sheets/categories/tasks, save intermediate JSON, then collect initials, date, and task statuses and write the completed data to an .xlsx file. The domain stages and the shared data-model layer are shown separately. The README only says to run main.py; task-completion details are based on partial excerpts, so uncertain internal wiring is omitted.

Main entry points: [`src/ui/template_selector.py`](https://github.com/rhine227/ims_automation-main/blob/master/src/ui/template_selector.py) (Template selector), [`src/core/excel_processor.py`](https://github.com/rhine227/ims_automation-main/blob/master/src/core/excel_processor.py) (Workbook processor), [`src/ui/task_completion.py`](https://github.com/rhine227/ims_automation-main/blob/master/src/ui/task_completion.py) (Task completion UI), [`main.py`](https://github.com/rhine227/ims_automation-main/blob/master/main.py) (Application entry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_launch["Application launch"]
  node_main["Application entry<br/>[main.py]"]
end

subgraph group_template["Template processing"]
  node_selector["Template selector"]
  node_settings["App settings<br/>[settings.py]"]
  node_converter["Excel converter<br/>[excel_converter.py]"]
  node_processor["Workbook processor<br/>[excel_processor.py]"]
end

subgraph group_completion["Checklist completion"]
  node_taskui["Task completion UI<br/>[task_completion.py]"]
end

subgraph group_model["Domain model"]
  node_models["Checklist models<br/>[data_models.py]"]
end

node_user(("User"))
node_templatefile["Selected workbook"]
node_intermediate["Checklist JSON"]
node_completed["Completed workbook"]

node_user -->|"launches"| node_main
node_main -->|"launches"| node_selector
node_selector -->|"reads paths"| node_settings
node_user -->|"selects template"| node_selector
node_selector -->|"chooses file"| node_templatefile
node_selector -.->|"converts .xls"| node_converter
node_converter -.->|"writes .xlsx"| node_templatefile
node_selector -->|"processes workbook"| node_processor
node_processor -->|"reads workbook"| node_templatefile
node_processor -->|"reads rules"| node_settings
node_processor -->|"creates records"| node_models
node_selector -->|"saves JSON"| node_intermediate
node_selector -->|"launches UI"| node_taskui
node_taskui -->|"loads and deletes"| node_intermediate
node_user -->|"enters checklist data"| node_taskui
node_taskui -->|"writes workbook"| node_completed

click node_main "https://github.com/rhine227/ims_automation-main/blob/master/main.py"
click node_selector "https://github.com/rhine227/ims_automation-main/blob/master/src/ui/template_selector.py"
click node_settings "https://github.com/rhine227/ims_automation-main/blob/master/src/config/settings.py"
click node_converter "https://github.com/rhine227/ims_automation-main/blob/master/src/core/excel_converter.py"
click node_processor "https://github.com/rhine227/ims_automation-main/blob/master/src/core/excel_processor.py"
click node_models "https://github.com/rhine227/ims_automation-main/blob/master/src/core/data_models.py"
click node_taskui "https://github.com/rhine227/ims_automation-main/blob/master/src/ui/task_completion.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_main,node_user toneBlue
class node_selector,node_settings,node_converter,node_processor toneAmber
class node_taskui toneMint
class node_models toneRose
class node_templatefile,node_intermediate,node_completed toneIndigo
```

## Components

### Application launch

- [Application entry](https://github.com/rhine227/ims_automation-main/blob/master/main.py): `main.py`

### Template processing

- [Template selector](https://github.com/rhine227/ims_automation-main/blob/master/src/ui/template_selector.py): `src/ui/template_selector.py`
- [App settings](https://github.com/rhine227/ims_automation-main/blob/master/src/config/settings.py): `src/config/settings.py`
- [Excel converter](https://github.com/rhine227/ims_automation-main/blob/master/src/core/excel_converter.py): `src/core/excel_converter.py`
- [Workbook processor](https://github.com/rhine227/ims_automation-main/blob/master/src/core/excel_processor.py): `src/core/excel_processor.py`

### Checklist completion

- [Task completion UI](https://github.com/rhine227/ims_automation-main/blob/master/src/ui/task_completion.py): `src/ui/task_completion.py`

### Domain model

- [Checklist models](https://github.com/rhine227/ims_automation-main/blob/master/src/core/data_models.py): `src/core/data_models.py`

### Other components

- **User**
- **Selected workbook**
- **Checklist JSON**
- **Completed workbook**

## Connections

- User → Application entry: launches
- Application entry → Template selector: launches
- Template selector → App settings: reads paths
- User → Template selector: selects template
- Template selector → Selected workbook: chooses file
- Template selector → Excel converter: converts .xls
- Excel converter → Selected workbook: writes .xlsx
- Template selector → Workbook processor: processes workbook
- Workbook processor → Selected workbook: reads workbook
- Workbook processor → App settings: reads rules
- Workbook processor → Checklist models: creates records
- Template selector → Checklist JSON: saves JSON
- Template selector → Task completion UI: launches UI
- Task completion UI → Checklist JSON: loads and deletes
- User → Task completion UI: enters checklist data
- Task completion UI → Completed workbook: writes workbook
