Python Streamlit AI/LLM python-docx

Bug report automation tool

Enterprise Consulting, 2026

Problem

QA testers write raw, unstructured notes during testing sessions. Reformatting those into standardized bug reports with proper structure, severity ordering, and both email and document outputs takes real time and introduces inconsistency. The team needed a tool any member could use, regardless of technical background.

Approach

Built a two-interface tool: a Jupyter Notebook for the developer/maintainer and a Streamlit web app for non-technical teammates. The tool accepts raw text or Word documents as input, extracts text and images from .docx files using python-docx, then sends the text to an LLM API with a detailed system prompt that structures bugs into standardized JSON objects.

Post-processing sanitizes formatting artifacts, deduplicates requirement numbers, and orders bugs by severity. Outputs are a plain text email and a formatted Word document with embedded screenshots.

Security was a priority: API keys are encrypted at rest using Fernet symmetric encryption (PBKDF2 with SHA256, 480K iterations). The plaintext key only exists in memory during the session. Images never leave the local machine. Only raw text goes to the AI endpoint.

Architecture

User input Raw notes or .docx file Input handler Extract text + images from .docx AI parser LLM API returns structured JSON Fernet encrypted API key PBKDF2 / SHA256 / 480K iter Post-processor Sanitize, deduplicate, order by severity Email generator (plain text) DOCX generator (python-docx)

Tech stack

Python Streamlit python-docx LLM API Fernet encryption PBKDF2 Jupyter Notebook

Status

Deployed internally. Used by QA team for daily bug reporting across multiple test sprints.

← Previous project All projects →