# satish-mashale/screenautomation architecture

> Architecture diagram of the GitHub repository satish-mashale/screenautomation, 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/satish-mashale/screenautomation
- Repository: https://github.com/satish-mashale/screenautomation

## Overview

ScreenAutomation is a Robot Framework automation project with image-based screen interaction, browser automation and OCR helpers. The named Robot suites indicate login and activity workflows, but their contents were not sampled, so their calls into the libraries and use of shared variables cannot be confirmed. The image helper’s asset lookup and the browser wrapper’s download handling are visible in source.

Main entry points: [`PythonLibrary/ScreenHelper.py`](https://github.com/satish-mashale/screenautomation/blob/main/PythonLibrary/ScreenHelper.py) (Image screen helper), [`PythonLibrary/SeleniumWrapper.py`](https://github.com/satish-mashale/screenautomation/blob/main/PythonLibrary/SeleniumWrapper.py) (Selenium wrapper), [`PythonLibrary/ImgOCR.py`](https://github.com/satish-mashale/screenautomation/blob/main/PythonLibrary/ImgOCR.py) (Image OCR helper), [`PythonLibrary/OCRHelper.py`](https://github.com/satish-mashale/screenautomation/blob/main/PythonLibrary/OCRHelper.py) (OCR helper)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_robot["Robot workflows"]
  node_add_activity["Add activity"]
  node_image_login["Image login"]
  node_coach_login["Coach login"]
  node_variables["Shared variables<br/>[Variables.robot]"]
end

subgraph group_screen["Screen and OCR"]
  node_screen_helper["Image screen helper<br/>[ScreenHelper.py]"]
  node_images["Image assets"]
  node_gui_auto["GUI automation"]
  node_pyautogui["Screen input"]
  node_opencv["Image loading"]
  node_img_ocr["Image OCR helper<br/>[ImgOCR.py]"]
  node_ocr_helper["OCR helper<br/>[OCRHelper.py]"]
  node_pillow["Image reader"]
  node_tesseract["Text recognition"]
end

subgraph group_browser["Browser automation"]
  node_selenium_wrapper["Selenium wrapper<br/>[SeleniumWrapper.py]"]
  node_selenium_library["Selenium2Library"]
  node_webdriver["WebDriver"]
  node_browser["Chrome browser"]
  node_download_dir[("Download directory")]
end

node_operator(("Automation runner"))

node_operator -->|"runs"| node_add_activity
node_operator -->|"runs"| node_image_login
node_operator -->|"runs"| node_coach_login
node_screen_helper -->|"reads"| node_images
node_screen_helper -->|"loads image"| node_opencv
node_screen_helper -->|"detects and clicks"| node_gui_auto
node_screen_helper -->|"sends input"| node_pyautogui
node_img_ocr -->|"opens image"| node_pillow
node_img_ocr -->|"recognizes text"| node_tesseract
node_ocr_helper -->|"opens image"| node_pillow
node_ocr_helper -->|"recognizes text"| node_tesseract
node_selenium_wrapper -->|"uses"| node_selenium_library
node_selenium_wrapper -->|"creates driver"| node_webdriver
node_webdriver -->|"controls"| node_browser
node_selenium_wrapper -->|"writes download"| node_download_dir

click node_add_activity "https://github.com/satish-mashale/screenautomation/blob/main/TestSuite/AddActivity_cases.robot"
click node_image_login "https://github.com/satish-mashale/screenautomation/blob/main/TestSuite/Login_wih_images_elements.robot"
click node_coach_login "https://github.com/satish-mashale/screenautomation/blob/main/TestSuite/Screencoach_login_cases.robot"
click node_variables "https://github.com/satish-mashale/screenautomation/blob/main/Resources/Variables.robot"
click node_screen_helper "https://github.com/satish-mashale/screenautomation/blob/main/PythonLibrary/ScreenHelper.py"
click node_images "https://github.com/satish-mashale/screenautomation/tree/main/images"
click node_img_ocr "https://github.com/satish-mashale/screenautomation/blob/main/PythonLibrary/ImgOCR.py"
click node_ocr_helper "https://github.com/satish-mashale/screenautomation/blob/main/PythonLibrary/OCRHelper.py"
click node_selenium_wrapper "https://github.com/satish-mashale/screenautomation/blob/main/PythonLibrary/SeleniumWrapper.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_add_activity,node_image_login,node_coach_login,node_variables toneBlue
class node_screen_helper,node_images,node_gui_auto,node_pyautogui,node_opencv,node_img_ocr,node_ocr_helper,node_pillow,node_tesseract toneAmber
class node_selenium_wrapper,node_selenium_library,node_webdriver,node_browser,node_download_dir toneMint
class node_operator toneIndigo
```

## Components

### Robot workflows

- [Add activity](https://github.com/satish-mashale/screenautomation/blob/main/TestSuite/AddActivity_cases.robot): `TestSuite/AddActivity_cases.robot`
- [Image login](https://github.com/satish-mashale/screenautomation/blob/main/TestSuite/Login_wih_images_elements.robot): `TestSuite/Login_wih_images_elements.robot`
- [Coach login](https://github.com/satish-mashale/screenautomation/blob/main/TestSuite/Screencoach_login_cases.robot): `TestSuite/Screencoach_login_cases.robot`
- [Shared variables](https://github.com/satish-mashale/screenautomation/blob/main/Resources/Variables.robot): `Resources/Variables.robot`

### Screen and OCR

- [Image screen helper](https://github.com/satish-mashale/screenautomation/blob/main/PythonLibrary/ScreenHelper.py): `PythonLibrary/ScreenHelper.py`
- [Image assets](https://github.com/satish-mashale/screenautomation/tree/main/images): `images`
- **GUI automation**
- **Screen input**
- **Image loading**
- [Image OCR helper](https://github.com/satish-mashale/screenautomation/blob/main/PythonLibrary/ImgOCR.py): `PythonLibrary/ImgOCR.py`
- [OCR helper](https://github.com/satish-mashale/screenautomation/blob/main/PythonLibrary/OCRHelper.py): `PythonLibrary/OCRHelper.py`
- **Image reader**
- **Text recognition**

### Browser automation

- [Selenium wrapper](https://github.com/satish-mashale/screenautomation/blob/main/PythonLibrary/SeleniumWrapper.py): `PythonLibrary/SeleniumWrapper.py`
- **Selenium2Library**
- **WebDriver**
- **Chrome browser**
- **Download directory**

### Other components

- **Automation runner**

## Connections

- Automation runner → Add activity: runs
- Automation runner → Image login: runs
- Automation runner → Coach login: runs
- Image screen helper → Image assets: reads
- Image screen helper → Image loading: loads image
- Image screen helper → GUI automation: detects and clicks
- Image screen helper → Screen input: sends input
- Image OCR helper → Image reader: opens image
- Image OCR helper → Text recognition: recognizes text
- OCR helper → Image reader: opens image
- OCR helper → Text recognition: recognizes text
- Selenium wrapper → Selenium2Library: uses
- Selenium wrapper → WebDriver: creates driver
- WebDriver → Chrome browser: controls
- Selenium wrapper → Download directory: writes download
