reports.ai
AI-powered engineering productivity platform that eliminates manual reporting across Walmart Fulfillment
Overview
reports.ai is an internal engineering productivity platform built to eliminate manual engineering reporting across Walmart Fulfillment Services. The application automates E2E test status reports, test completion summaries, accessibility compliance reporting, defect analytics, and stakeholder communication — using a React 18 frontend, Spring Boot 3.4 backend, Azure Cosmos DB persistence, and AI-assisted content generation.
What previously took engineers 2+ hours per sprint now runs in seconds with zero formatting inconsistencies, serving multiple engineering teams and program managers across Fulfillment.
Problem
Engineering teams spent significant time every day preparing:
- Daily E2E test status reports with risk assessments, pass/attempt metrics, and P1 counts
- Test completion summaries with pass/fail/blocked breakdowns per environment
- Accessibility (ADA) compliance reports per platform
- Critical defect and P1 incident tracking with Jira references
- Stakeholder emails with Jira filter links, Confluence references, and action items
The process was repetitive, error-prone, inconsistent across teams, and consumed hours that could be spent on actual engineering work.
Solution
Designed and developed a centralized reporting platform that:
- Generates standardized E2E test status and completion reports with consistent formatting
- Integrates multiple engineering data sources — Jira REST APIs, Confluence, accessibility scanners
- Auto-loads previous report state from Cosmos DB so teams resume where they left off
- Produces pixel-perfect HTML email reports using Thymeleaf server-side rendering
- Uses AI to generate report summaries, risk assessments, and key stakeholder callouts
- Distributes reports to configurable TO/CC/BCC recipients via SMTP/TLS
- Provides real-time email preview before sending via dedicated preview endpoints
Architecture
How AI Generates a Report (End-to-End Flow)
Tech Stack
Key Features
My Contributions
Engineering Challenges
🤖 AI-Powered Structured Report Generation
Designed prompt templates that feed raw engineering metrics — test results, defect counts, risk indicators — into AI models
to produce consistent, formatted reports. Used chain-of-thought prompting with strict output schemas to ensure AI returns data
in the exact format the TestStatusReport model and Thymeleaf templates expect. Results are validated against
Jakarta Bean Validation before rendering.
🛡️ Prompt Validation & Guardrails
Built a validation layer that sanitizes user inputs before they reach AI services — preventing prompt injection through
user-supplied fields like project names and callouts. All AI-generated content passes through @Valid,
@NotBlank, and @NotNull constraints at the controller layer. Responses are validated against
JSON schemas before reaching the email pipeline.
📧 Cross-Client HTML Email Rendering
Used Thymeleaf server-side rendering with custom templates (test-status-email.html,
test-completion-email.html) to generate rich HTML emails. Templates render defect tables, test case results
with conditional styling (pass/fail/blocked), accessibility metrics, and stakeholder mentions. Built dedicated preview
endpoints (/api/email/preview/*) so engineers validate output without sending actual emails. Tested across
Outlook, Gmail, and Apple Mail for pixel-perfect consistency.
🔒 Enterprise Security & Authentication
Integrated Walmart’s PingFederate SSO via @gtpjs/sso-pingfed with OAuth 2.0 flows. The Express.js proxy
handles authentication, session management, and token validation. React uses AuthContext with
ProtectedRoute components that auto-redirect unauthenticated users. CORS restricts API access to approved
internal origins. Sensitive configuration (keys, endpoints) is externalized via environment variables.
🔄 Multi-Source Data Aggregation
Built resilient integration patterns to aggregate data from Jira (via MCP Server proxy at
mcp-jira.walmart.com), accessibility scanners, and test tools. The frontend Jira service manages
PingFed Bearer tokens globally and communicates through the Express backend proxy. Implemented retry logic and
throttling retry options on Cosmos DB (3 retries, 30s max wait) to handle upstream service failures gracefully.
🚀 Automated Deployment Pipeline
Containerized both frontend and backend with Docker and deployed to Kubernetes. CI/CD pipelines (configured via
kitt.yml) handle build, test, image push, and rolling deployment. Spring Boot Actuator provides
health check endpoints for Kubernetes liveness/readiness probes. Vite builds the optimized React bundle.
Environment-specific configuration is injected at runtime — zero manual steps from commit to production.
Screenshots
Dashboard
Report Builder
Generated Report
Email Preview
Analytics
Settings
Lessons Learned
- AI outputs need strict contracts, not just prompts. LLMs return unpredictable formats. By enforcing Jakarta Validation on AI-generated payloads and designing prompts with explicit JSON schemas, I eliminated an entire class of runtime failures before they reached stakeholder emails.
- Design for the email client, not the browser. HTML email rendering is wildly inconsistent across Outlook, Gmail, and Apple Mail. Building Thymeleaf templates with inline styles, table-based layouts, and no modern CSS ensured pixel-perfect output everywhere.
- Partition key design in Cosmos DB matters more than you think. Choosing OPIF ID as the partition key enabled efficient single-partition queries for form lookups while keeping related documents co-located. A wrong partition key would have meant cross-partition fan-out and 10x RU costs at scale.
- Enterprise SSO integration requires early planning. PingFederate OAuth flows have nuances — token refresh timing, session timeouts, cross-origin cookie policies — that are best addressed in the architecture phase. Retrofitting SSO into a working app is significantly harder.
-
Preview endpoints save more time than you’d expect.
Adding
/api/email/preview/*endpoints that render templates with live data saved countless debug cycles. Engineers validated email output without actually sending — dramatically faster iteration on template changes. - Ship incrementally, validate with users. Releasing report types one at a time (status → completion → accessibility) and gathering feedback after each led to better adoption than a big-bang launch. Teams went from resisting the tool to requesting new features weekly.