This guide is intended for developers who want to run Valoraclick QA Tool directly from the Python source, contribute to the codebase, or build a custom executable for distribution. If you are a QA analyst who simply wants to generate test reports, you do not need this guide — head to the Quickstart page and download the pre-builtDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Beliagal/qa-report-automation/llms.txt
Use this file to discover all available pages before exploring further.
QA_Tool_v2.7.exe instead.
Prerequisites
Before you begin, ensure the following are available on your machine:- Python 3.13 or later — the project targets Python 3.13+. Download from python.org.
- Windows OS — required for the
pywin32dependency that powers the Google Drive.lnkshortcut resolution. The application will not fully function on macOS or Linux. - Git — needed to clone the repository. Download from git-scm.com.
Developer Setup
Clone the Repository
Open a terminal (PowerShell or Command Prompt) and clone the project from GitHub, then navigate into the project directory:
Create and Activate a Virtual Environment
Create an isolated Python virtual environment inside the project folder and activate it. Using a virtual environment keeps the project dependencies separate from your system Python installation:Once activated, your terminal prompt will be prefixed with
(.venv), confirming the environment is live.Install Dependencies
Install all pinned dependencies from This installs the GUI framework, PDF engine, image library, build tooling, test runner, and the Windows platform bindings in one step.
requirements.txt:Key Dependencies
customtkinter == 5.2.2
customtkinter == 5.2.2
The GUI framework for the entire application. CustomTkinter extends Python’s standard
tkinter library with modern, dark-themed widgets that render natively on Windows. It powers the scrollable control panel, entry fields, combo boxes, text areas, and action buttons.fpdf2 == 2.8.7
fpdf2 == 2.8.7
The PDF generation engine.
fpdf2 is used by PDFService to construct the test report — laying out metadata headers, step-by-step tables with Pass/Fail color coding, and embedded screenshot images — and write the result to a .pdf file chosen by the user. The README incorrectly references ReportLab; the actual engine throughout the source is fpdf2.pillow == 12.2.0
pillow == 12.2.0
Python’s image processing library. Pillow handles opening, decoding, and resizing PNG and JPEG screenshots before they are embedded into the PDF report by fpdf2. It also provides image format validation when a user selects a file via the image picker.
pyinstaller == 6.20.0
pyinstaller == 6.20.0
The build tool used to package the application into a standalone Windows executable (
QA_Tool_v2.7.exe). PyInstaller bundles the Python interpreter, all dependencies, and application assets into a single distributable file that end-users can run without any Python installation.pytest == 9.0.3
pytest == 9.0.3
The test runner for the project’s automated test suite. Pytest is used during development to run unit and integration tests against the application’s service layer (PDF generation, CSV export, session persistence). It is not required at runtime.
pywin32 == 311
pywin32 == 311
Windows-specific Python bindings for the Win32 API.
CSVService uses pywin32 to resolve .lnk Windows shortcut files, allowing the tool to locate your local Google Drive sync folder automatically and write the CSV backup without requiring any manual path configuration from the user.Project Structure
Once the repository is cloned, the key source files are:| File | Purpose |
|---|---|
main.py | Entry point — instantiates and runs TestingApp |
gui.py | TestingApp class — all CustomTkinter UI logic |
services.py | PDFService (fpdf2 report generation) and CSVService (Google Drive backup) |
models.py | ReportData — the data model holding metadata and test steps |
logic.py | Pure utility functions: date validation and Pass/Fail color lookup |
config.json | Runtime configuration — tester names list and current version string |
sesion_testing.json | Auto-generated session file written after each step (not committed) |
Configuration File
Theconfig.json file at the project root controls two runtime settings:
| Key | Type | Description |
|---|---|---|
testers | array of strings | List of recognized tester names for the project |
version_actual | string | Current application version string |
Building the Executable
Once your development environment is set up and working, you can compile the application into a distributable.exe using PyInstaller. See the Building the Executable guide for the full build command, asset bundling configuration, and packaging best practices.