# karthikkuppu/ai-powered-test-case-generator-uploader architecture

> Architecture diagram of the GitHub repository karthikkuppu/ai-powered-test-case-generator-uploader, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/karthikkuppu/ai-powered-test-case-generator-uploader
- Repository: https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader

## Overview

This is a configurable AI test-case generator and uploader. Users supply story IDs, the agent fetches stories, reports gaps, generates tests, writes an Excel review workbook, and—only after confirmation—creates and links test cases in ADO or JIRA. Provider factories select AI and tool integrations; ADO has a dedicated step formatter. The README documents both provider choices and review/configuration capabilities. Some standalone client modules are present but their runtime wiring is not shown, so they are included without inferred connections.

Main entry points: [`src/index.js`](https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/index.js) (Workflow runner), [`src/providers/ai/azureAIProvider.js`](https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/providers/ai/azureAIProvider.js) (Azure AI provider), [`src/providers/ai/claudeAIProvider.js`](https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/providers/ai/claudeAIProvider.js) (Claude provider), [`src/providers/tool/adoProvider.js`](https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/providers/tool/adoProvider.js) (ADO provider)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workflow["Workflow"]
  node_runner["Workflow runner<br/>[index.js]"]
  node_reader["Story ID reader<br/>[excelReader.js]"]
  node_gaplog["Gap report<br/>[index.js]"]
  node_writer["Excel report writer<br/>[excelWriter.js]"]
end

subgraph group_ai["AI generation"]
  node_aifactory["AI provider factory<br/>[index.js]"]
  node_azureai["Azure AI provider<br/>[azureAIProvider.js]"]
  node_claudeai["Claude provider"]
  node_azureclient["Azure AI client<br/>[azureAIClient.js]"]
end

subgraph group_tools["Tool integrations"]
  node_toolfactory["Tool provider factory<br/>[index.js]"]
  node_ado["ADO provider<br/>[adoProvider.js]"]
  node_jira["JIRA provider<br/>[jiraProvider.js]"]
  node_formatter["ADO step formatter<br/>[formatter.js]"]
  node_adoclient["ADO REST client<br/>[adoClient.js]"]
end

subgraph group_data["Review and configuration"]
  node_inputbook["Story ID workbook"]
  node_outputbook["Test case workbook"]
  node_instructions["Test instructions"]
  node_guardrails["AI guardrails"]
  node_settings["Tool settings<br/>[input.json]"]
end

node_user(("QA user"))
node_aitool{{"AI service"}}
node_adoapi{{"Azure DevOps"}}
node_jiraapi{{"JIRA service"}}

node_user -->|"enters story IDs"| node_inputbook
node_inputbook -->|"provides IDs"| node_reader
node_runner -->|"reads IDs"| node_reader
node_runner -->|"selects provider"| node_aifactory
node_runner -->|"selects provider"| node_toolfactory
node_aifactory -->|"creates Azure"| node_azureai
node_aifactory -->|"creates Claude"| node_claudeai
node_toolfactory -->|"creates ADO"| node_ado
node_toolfactory -->|"creates JIRA"| node_jira
node_runner -->|"fetches and uploads"| node_ado
node_runner -->|"fetches and uploads"| node_jira
node_ado -->|"calls work-item API"| node_adoapi
node_jira -->|"calls issue API"| node_jiraapi
node_runner -->|"checks gaps and generates"| node_azureai
node_runner -->|"checks gaps and generates"| node_claudeai
node_azureai -->|"sends prompts"| node_aitool
node_claudeai -->|"sends prompts"| node_aitool
node_azureai -->|"loads instructions"| node_instructions
node_azureai -->|"loads guardrails"| node_guardrails
node_claudeai -->|"loads instructions"| node_instructions
node_claudeai -->|"loads guardrails"| node_guardrails
node_runner -->|"appends detected gaps"| node_gaplog
node_runner -->|"writes generated tests"| node_writer
node_writer -->|"writes workbook"| node_outputbook
node_user -->|"reviews and confirms"| node_runner
node_runner -->|"reads tool settings"| node_settings
node_ado -->|"formats test steps"| node_formatter

click node_runner "https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/index.js"
click node_reader "https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/excelReader.js"
click node_gaplog "https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/index.js"
click node_writer "https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/excelWriter.js"
click node_instructions "https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/testcase-instructions.md"
click node_guardrails "https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/security-guardrails.md"
click node_settings "https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/input.json"
click node_aifactory "https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/providers/ai/index.js"
click node_azureai "https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/providers/ai/azureAIProvider.js"
click node_claudeai "https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/providers/ai/claudeAIProvider.js"
click node_toolfactory "https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/providers/tool/index.js"
click node_ado "https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/providers/tool/adoProvider.js"
click node_jira "https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/providers/tool/jiraProvider.js"
click node_formatter "https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/formatter.js"
click node_adoclient "https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/adoClient.js"
click node_azureclient "https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/azureAIClient.js"

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_runner,node_reader,node_gaplog,node_writer,node_user toneBlue
class node_aifactory,node_azureai,node_claudeai,node_azureclient toneAmber
class node_toolfactory,node_ado,node_jira,node_formatter,node_adoclient toneMint
class node_inputbook,node_outputbook,node_instructions,node_guardrails,node_settings toneRose
class node_aitool,node_adoapi,node_jiraapi toneIndigo
```

## Components

### Workflow

- [Workflow runner](https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/index.js): `src/index.js`
- [Story ID reader](https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/excelReader.js): `src/excelReader.js`
- [Gap report](https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/index.js): `src/index.js`
- [Excel report writer](https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/excelWriter.js): `src/excelWriter.js`

### AI generation

- [AI provider factory](https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/providers/ai/index.js): `src/providers/ai/index.js`
- [Azure AI provider](https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/providers/ai/azureAIProvider.js): `src/providers/ai/azureAIProvider.js`
- [Claude provider](https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/providers/ai/claudeAIProvider.js): `src/providers/ai/claudeAIProvider.js`
- [Azure AI client](https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/azureAIClient.js): `src/azureAIClient.js`

### Tool integrations

- [Tool provider factory](https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/providers/tool/index.js): `src/providers/tool/index.js`
- [ADO provider](https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/providers/tool/adoProvider.js): `src/providers/tool/adoProvider.js`
- [JIRA provider](https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/providers/tool/jiraProvider.js): `src/providers/tool/jiraProvider.js`
- [ADO step formatter](https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/formatter.js): `src/formatter.js`
- [ADO REST client](https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/src/adoClient.js): `src/adoClient.js`

### Review and configuration

- **Story ID workbook**
- **Test case workbook**
- [Test instructions](https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/testcase-instructions.md): `testcase-instructions.md`
- [AI guardrails](https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/security-guardrails.md): `security-guardrails.md`
- [Tool settings](https://github.com/karthikkuppu/ai-powered-test-case-generator-uploader/blob/main/input.json): `input.json`

### Other components

- **QA user**
- **AI service**
- **Azure DevOps**
- **JIRA service**

## Connections

- QA user → Story ID workbook: enters story IDs (evidence: `README.md`)
- Story ID workbook → Story ID reader: provides IDs (evidence: `README.md`)
- Workflow runner → Story ID reader: reads IDs (evidence: `src/index.js`)
- Workflow runner → AI provider factory: selects provider (evidence: `src/index.js`)
- Workflow runner → Tool provider factory: selects provider (evidence: `src/index.js`)
- AI provider factory → Azure AI provider: creates Azure (evidence: `src/providers/ai/index.js`)
- AI provider factory → Claude provider: creates Claude (evidence: `src/providers/ai/index.js`)
- Tool provider factory → ADO provider: creates ADO (evidence: `src/providers/tool/index.js`)
- Tool provider factory → JIRA provider: creates JIRA (evidence: `src/providers/tool/index.js`)
- Workflow runner → ADO provider: fetches and uploads (evidence: `src/index.js`)
- Workflow runner → JIRA provider: fetches and uploads (evidence: `src/index.js`)
- ADO provider → Azure DevOps: calls work-item API (evidence: `src/providers/tool/adoProvider.js`)
- JIRA provider → JIRA service: calls issue API (evidence: `src/providers/tool/jiraProvider.js`)
- Workflow runner → Azure AI provider: checks gaps and generates (evidence: `src/index.js`)
- Workflow runner → Claude provider: checks gaps and generates (evidence: `src/index.js`)
- Azure AI provider → AI service: sends prompts (evidence: `src/providers/ai/azureAIProvider.js`)
- Claude provider → AI service: sends prompts (evidence: `src/providers/ai/claudeAIProvider.js`)
- Azure AI provider → Test instructions: loads instructions (evidence: `src/providers/ai/azureAIProvider.js`)
- Azure AI provider → AI guardrails: loads guardrails (evidence: `src/providers/ai/azureAIProvider.js`)
- Claude provider → Test instructions: loads instructions (evidence: `src/providers/ai/claudeAIProvider.js`)
- Claude provider → AI guardrails: loads guardrails (evidence: `src/providers/ai/claudeAIProvider.js`)
- Workflow runner → Gap report: appends detected gaps (evidence: `src/index.js`)
- Workflow runner → Excel report writer: writes generated tests (evidence: `src/index.js`)
- Excel report writer → Test case workbook: writes workbook (evidence: `src/excelWriter.js`)
- QA user → Workflow runner: reviews and confirms (evidence: `README.md`)
- Workflow runner → Tool settings: reads tool settings (evidence: `src/index.js`)
- ADO provider → ADO step formatter: formats test steps (evidence: `src/providers/tool/adoProvider.js`)
