How eswarr11/image-testcase-generator works
Purpose and entry points
This monorepo generates Jira-ready test cases from Confluence pages, Figma designs, uploaded images, and an optional focus prompt. It has a React/Vite client and TypeScript/Express API.
• API process and app composition: backend/src/main.ts, backend/src/app.ts
• Client bootstrap and application shell: frontend/src/main.tsx, frontend/src/App.tsx
• Deployment adapter/configuration: api/index.js, vercel.json
Backend HTTP composition
Express assembles cross-cutting security, CORS, request tracing, error translation, and feature routes before serving requests. Modules are organized around controller → service → DTO boundaries.
• App and route aggregation: backend/src/app.ts, backend/src/modules/index.ts
• Cross-cutting failure/trace boundary: backend/src/middleware/errorHandler.middleware.ts, backend/src/logger/trace.middleware.ts
• Health endpoint: backend/src/modules/health/health.routes.ts
Session vault and secret boundary
The browser holds only an httpOnly session-cookie identifier. Session credentials/API keys are persisted server-side and encrypted before storage, keeping OpenAI, Atlassian, and Figma credentials out of client application state.
• Cookie/session route boundary: backend/src/modules/session/middleware/sessionCookie.ts, backend/src/modules/session/session.routes.ts
• Session orchestration and persistence: backend/src/modules/session/core/services/session.service.ts, backend/src/modules/session/core/repositories/session.repository.ts
• Encryption and database client: backend/src/db/crypto.ts, backend/src/db/client.ts
Source acquisition and caching
The sources module accepts Confluence/Figma URLs, authenticates against upstream services, extracts usable text or image/design content, and caches upstream responses in SQLite to reduce repeat calls. URL parsing and Figma fetching are isolated utility boundaries.
• Source HTTP/controller layer: backend/src/modules/sources/sources.routes.ts, backend/src/modules/sources/core/controllers/sources.controller.ts
• Upstream integrations: backend/src/modules/sources/core/services/confluence.service.ts, backend/src/modules/sources/core/services/figma.service.ts, backend/src/modules/sources/core/services/atlassian-auth.service.ts
• Cache and extraction utilities: backend/src/db/source-cache.ts, backend/src/utils/textExtract.ts, backend/src/utils/figmaFetch.ts
Test-case generation pipeline
Generation is graph-orchestrated: submitted requirements, source content, images, and prompt constraints are processed into structured GPT-4o output, then evaluated for coverage. The backend owns model invocation and output structuring rather than exposing provider credentials to the frontend.
• Request API and DTO: backend/src/modules/generate/generate.routes.ts, backend/src/modules/generate/dto/generate.dto.ts
• Graph/control flow: backend/src/modules/generate/core/graph/orchestrator.graph.ts, backend/src/modules/generate/core/graph/generate.graph.ts
• Core stages: backend/src/modules/generate/core/services/requirements.service.ts, backend/src/modules/generate/core/services/generate.service.ts, backend/src/modules/generate/core/services/coverage.service.ts
• OpenAI and structured-output boundary: backend/src/modules/generate/core/services/openai.service.ts, backend/src/modules/generate/core/services/structured-output.service.ts
Frontend workflow
The single-page React client collects credentials, source links, generation parameters, and image uploads; invokes backend source/generation APIs; then renders coverage and generated cases with CSV export. Context providers manage client-side credentials, theme, and notifications.
• Main UI composition: frontend/src/commons/components/MainApp.tsx, frontend/src/features/generate/TestCaseGenerator.tsx
• Source/API boundary: frontend/src/features/sources/SourceInputs.tsx, frontend/src/commons/services/sourcesApi.ts
• Results and export: frontend/src/features/results/TestCaseResult.tsx, frontend/src/features/results/CoveragePanel.tsx, frontend/src/commons/utils/exportCases.ts
• Client state boundaries: frontend/src/commons/context/CredentialsContext.tsx, frontend/src/commons/context/ApiKeyContext.tsx
Runtime and infrastructure
Development runs the frontend on Vite and backend on Express; production serves through the Node/Vercel-oriented entrypoint. Primary persistence is SQLite at data/testcase-generator.db; Vercel uses Turso per the project documentation. External dependencies are OpenAI GPT-4o, Atlassian/Confluence, and Figma.
Main entry points: TestCaseGenerator.tsx Generation workflow · index.ts Feature routes · sources.controller.ts Source acquisition · generate.routes.ts Generation API
Components 19
React Client
- Client shell
frontend/src/main.tsx - Generation workflow · Collects sources, prompts, credentials, and uploads.
frontend/src/features/generate/TestCaseGenerator.tsx - Source inputs
frontend/src/features/sources/SourceInputs.tsx - Source API client
frontend/src/commons/services/sourcesApi.ts - Credential state · Client-side state excludes persisted provider secrets.
frontend/src/commons/context/CredentialsContext.tsx - Results & CSV export
frontend/src/features/results/TestCaseResult.tsx
Express API
- API process
backend/src/main.ts - HTTP composition · Applies security, CORS, tracing, error handling, and routes.
backend/src/app.ts - Feature routes · Combines health, session, sources, and generation endpoints.
backend/src/modules/index.ts - Session vault · Keeps encrypted provider credentials behind an httpOnly session cookie.
backend/src/modules/session/core/services/session.service.ts - Source acquisition · Fetches and extracts Confluence and Figma source material.
backend/src/modules/sources/core/controllers/sources.controller.ts - Generation API
backend/src/modules/generate/generate.routes.ts - Generation graph · Coordinates requirements, generation, and coverage stages.
backend/src/modules/generate/core/graph/orchestrator.graph.ts - GPT structured output · Invokes GPT-4o and structures generated test cases.
backend/src/modules/generate/core/services/openai.service.ts
Persistence & External Services
- Source cache · Caches upstream source responses.
backend/src/db/source-cache.ts - SQLite / Turso · SQLite locally; Turso in Vercel deployments.
backend/src/db/client.ts - Confluence & Figma
- OpenAI GPT-4o
- Vercel adapter
api/index.js
Connections 20
- Client shell → Generation workflow: renders
- Generation workflow → Source inputs: collects
- Generation workflow → Credential state: uses
- Source inputs → Source API client: submits sources
- Generation workflow → Generation API: requests generation
- Source API client → Source acquisition: calls
- Generation API → Results & CSV export: returns cases and coverage
- API process → HTTP composition: starts
- Vercel adapter → HTTP composition: serves production API
- HTTP composition → Feature routes: mounts
- Feature routes → Session vault: session endpoints
- Feature routes → Source acquisition: source endpoints
- Feature routes → Generation API: generation endpoints
- Session vault → SQLite / Turso: encrypted sessions
- Source acquisition → Source cache: reads and writes
- Source acquisition → Confluence & Figma: fetches with server credentials
- Generation API → Generation graph: validates request and starts
- Generation graph → GPT structured output: generates and evaluates
- GPT structured output → OpenAI GPT-4o: invokes
- Generation graph → SQLite / Turso: uses session credentials