<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dhanashri Ugalmugale</title>
    <description>The latest articles on DEV Community by Dhanashri Ugalmugale (@dhanashri_ugalmugale_6528).</description>
    <link>https://dev.to/dhanashri_ugalmugale_6528</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3936165%2Fbcb37f8f-706a-4772-991b-e9def7ba544f.jpg</url>
      <title>DEV Community: Dhanashri Ugalmugale</title>
      <link>https://dev.to/dhanashri_ugalmugale_6528</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dhanashri_ugalmugale_6528"/>
    <language>en</language>
    <item>
      <title>PassionQA: Turning My Passion for Software Quality into AI-Powered Test Intelligence</title>
      <dc:creator>Dhanashri Ugalmugale</dc:creator>
      <pubDate>Sat, 11 Jul 2026 18:20:32 +0000</pubDate>
      <link>https://dev.to/dhanashri_ugalmugale_6528/passionqa-turning-my-passion-for-software-quality-into-ai-powered-test-intelligence-lpo</link>
      <guid>https://dev.to/dhanashri_ugalmugale_6528/passionqa-turning-my-passion-for-software-quality-into-ai-powered-test-intelligence-lpo</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/weekend-2026-07-09"&gt;Weekend Challenge: Passion Edition&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;As a QA engineer, I spend a lot of time reading requirements,&lt;br&gt;
questioning unclear business rules, and thinking about what could break before a feature reaches users. That part of quality engineering is something I genuinely enjoy, and it inspired me to build &lt;strong&gt;PassionQA&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;PassionQA is an AI-powered quality intelligence platform that turns product requirements into practical QA insights and executable test cases.&lt;/p&gt;

&lt;p&gt;The workflow is simple:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Upload or paste a BRD (Excel or text)&lt;/li&gt;
&lt;li&gt; Run AI-assisted quality analysis&lt;/li&gt;
&lt;li&gt; Review the complete QA output in one dashboard:

&lt;ul&gt;
&lt;li&gt;  Requirement health and release readiness&lt;/li&gt;
&lt;li&gt;  Missing rules and ambiguous requirements&lt;/li&gt;
&lt;li&gt;  Positive, negative, boundary, security, and accessibility test cases&lt;/li&gt;
&lt;li&gt;  Bug-risk insights and heatmap&lt;/li&gt;
&lt;li&gt;  Requirements Traceability Matrix (RTM)&lt;/li&gt;
&lt;li&gt;  Excel and PDF exports&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;My goal was to reduce the repetitive part of requirement analysis so testers can spend more time thinking critically about product risk and quality.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Try it quickly
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Live app:&lt;/strong&gt; &lt;a href="https://passion-qa.vercel.app" rel="noopener noreferrer"&gt;https://passion-qa.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Click &lt;strong&gt;Explore Demo Preset&lt;/strong&gt; to analyze the built-in insurance example. The application uses Gemini when available and automatically falls back to the local analysis engine if Gemini is unavailable.&lt;/li&gt;
&lt;li&gt;  Or click &lt;strong&gt;Launch Platform (Free)&lt;/strong&gt;, upload your own BRD, and select &lt;strong&gt;Run Quality Analysis&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For my demo, I used an insurance Policy BRD. PassionQA analyzed the requirements, highlighted quality gaps, and generated executable positive, negative, boundary, security, and accessibility test scenarios across the policy workflow.&lt;/p&gt;

&lt;h3&gt;
  
  
  Video Demo
&lt;/h3&gt;

&lt;p&gt;The demo shows the complete flow from Policy BRD upload to AI analysis, test-case generation, risk insights, RTM, and report export.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Demo video:&lt;/strong&gt; &lt;a href="https://drive.google.com/file/d/1sAoOauTGCk66xAzY46zF8_lWBQbVM8Gr/view?usp=sharing" rel="noopener noreferrer"&gt;https://drive.google.com/file/d/1sAoOauTGCk66xAzY46zF8_lWBQbVM8Gr/view?usp=sharing&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub repository:&lt;/strong&gt; &lt;a href="https://github.com/DhanashriQAEngineer/PassionQA/" rel="noopener noreferrer"&gt;https://github.com/DhanashriQAEngineer/PassionQA/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some of the key parts of the project are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;code&gt;src/lib/gemini.ts&lt;/code&gt; --- Gemini analysis and local fallback engine&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;src/app/api/analyze-requirement/route.ts&lt;/code&gt; --- server-side analysis
API&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;src/app/dashboard/page.tsx&lt;/code&gt; --- QA intelligence dashboard&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;src/lib/excelExport.ts&lt;/code&gt; --- multi-sheet Excel export&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;scripts/record-demo.mjs&lt;/code&gt; --- Playwright demo recorder&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Why I built PassionQA
&lt;/h3&gt;

&lt;p&gt;I didn't want to create another chatbot that simply summarizes a &lt;br&gt;
document.&lt;/p&gt;

&lt;p&gt;In QA, a summary is not enough.&lt;/p&gt;

&lt;p&gt;We need to know what is missing, which requirements are unclear, what business rules could fail, and whether our test coverage is strong enough.&lt;/p&gt;

&lt;p&gt;That is why I designed PassionQA more like a &lt;strong&gt;QA workspace or tester's cockpit&lt;/strong&gt;. The dashboard focuses on test coverage, requirement health, risk, traceability, and executable test scenarios.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI-powered requirement analysis with Google Gemini
&lt;/h3&gt;

&lt;p&gt;Google Gemini is used as the AI analysis engine.&lt;/p&gt;

&lt;p&gt;The BRD content is sent through a server-side API route with a QA-focused prompt. Gemini analyzes the requirements and returns structured information including product domain and modules, requirement quality metrics, missing or unclear business rules, executable test cases, risk areas, RTM data, and QA recommendations.&lt;/p&gt;

&lt;p&gt;One important decision was to keep the Gemini API key on the server instead of exposing it in the browser.&lt;/p&gt;

&lt;p&gt;The application also tracks whether the result was generated using &lt;strong&gt;Gemini&lt;/strong&gt; or the &lt;strong&gt;local analysis engine&lt;/strong&gt;, so the UI clearly shows the actual analysis source.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reliable demo and fallback mode
&lt;/h3&gt;

&lt;p&gt;PassionQA supports two analysis modes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Gemini mode&lt;/strong&gt; for live AI-assisted requirement analysis&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Local mode&lt;/strong&gt; as a fallback when Gemini is unavailable or times out&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;strong&gt;Explore Demo Preset&lt;/strong&gt; follows the same analysis flow. If Gemini is configured and available, Gemini performs the analysis. If the request fails or Gemini is unavailable, PassionQA automatically uses the local analysis engine.&lt;/p&gt;

&lt;p&gt;The local mode still generates a complete QA dashboard, which keeps the application usable and makes the demo reliable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tech stack
&lt;/h3&gt;

&lt;p&gt;I built PassionQA using &lt;strong&gt;Next.js App Router, React, TypeScript,&lt;br&gt;
Tailwind CSS, Google Gemini, Recharts, Framer Motion, xlsx-js-style, jsPDF, and Playwright&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Decisions that mattered to me
&lt;/h3&gt;

&lt;p&gt;The most important part of PassionQA is the generated test suite.&lt;br&gt;
Dashboard metrics and test counts are based on the generated test cases rather than fixed demo numbers.&lt;/p&gt;

&lt;p&gt;I also focused on keeping the AI experience transparent. If Gemini generates the result, the UI says so. If the application uses local fallback, that is clearly shown to the user.&lt;/p&gt;

&lt;p&gt;Finally, I created a Playwright-based demo flow using a real insurance Policy BRD. This helped me validate the same experience a QA engineer would follow: upload requirements, analyze quality, review risks, inspect test cases, check traceability, and export the results.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;I am submitting PassionQA for &lt;strong&gt;Best Use of Google AI&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Gemini is not used as a simple chat feature. It is the core requirement-analysis engine that transforms BRD content into structured QA artifacts: requirement insights, executable test cases, risk areas, RTM mappings, and recommendations.&lt;/p&gt;

&lt;p&gt;For me, this project combines two things I am genuinely passionate about: &lt;strong&gt;software quality and AI&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;PassionQA started from a simple thought I often have while testing a product:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"What are we missing before this reaches production?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This project is my attempt to help QA teams answer that question earlier and faster.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
    </item>
    <item>
      <title>Captain Cool AI: A Multi-Agent IPL Tactical Strategist Built Powered by Google Gemini</title>
      <dc:creator>Dhanashri Ugalmugale</dc:creator>
      <pubDate>Sun, 17 May 2026 13:04:07 +0000</pubDate>
      <link>https://dev.to/dhanashri_ugalmugale_6528/captain-cool-ai-a-multi-agent-ipl-tactical-strategist-built-powered-by-google-gemini-d62</link>
      <guid>https://dev.to/dhanashri_ugalmugale_6528/captain-cool-ai-a-multi-agent-ipl-tactical-strategist-built-powered-by-google-gemini-d62</guid>
      <description>&lt;p&gt;Cricket is often called a batter’s game, but in T20 cricket, it is equally a captain’s game. One tactical mistake—bowling spin into heavy dew, using your best death bowler too early, or making the wrong substitution—can completely change the outcome of a match. That is exactly what made this Google Gemini Hackathon problem statement so interesting to me.&lt;/p&gt;

&lt;p&gt;The challenge was to build an agentic AI system that behaves like a virtual IPL captain, capable of making live tactical decisions in high-pressure match situations. Instead of building a simple chatbot that produces generic cricket advice, I wanted to create something that actually thinks through decisions the way a real dugout might. That idea became &lt;strong&gt;Captain Cool AI&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Captain Cool AI is a multi-agent tactical cricket strategist built entirely on Google’s AI ecosystem using the google-genai Python SDK, Gemini 2.5 Flash, Streamlit, and Python orchestration. The goal was to simulate how a captain, analyst, and tactical advisor might collectively arrive at the next big decision during a live match.&lt;/p&gt;

&lt;p&gt;What made this project especially exciting was the multi-agent design. A single AI prompt might simply say, “Use your best bowler now,” but cricket strategy is rarely that straightforward. Real decision-making involves competing perspectives. One person looks at the numbers, another thinks aggressively, someone else challenges the logic, and only then does the final call emerge. I wanted to recreate that process.&lt;/p&gt;

&lt;p&gt;To achieve this, I designed four specialized Gemini-powered agents. The Stats Analyst focuses entirely on match intelligence such as venue conditions, batter vs bowler matchups, chase pressure, and dew factor. The Strategist acts like the captain, making the first tactical recommendation. The &lt;strong&gt;Devil’s Advocate&lt;/strong&gt; exists to challenge that decision, forcing the system to consider risks and alternative scenarios. Finally, the &lt;strong&gt;Commentator&lt;/strong&gt; transforms the outcome into cricket-style explainability so the reasoning feels intuitive and engaging rather than technical.&lt;/p&gt;

&lt;p&gt;To make the system more grounded, I added supporting tools instead of relying only on prompting. A cricket tactical engine provides matchup heuristics and venue intelligence, a win probability engine adds confidence scoring and counterfactual analysis, and a live weather API helps factor in environmental conditions like dew, which can dramatically affect death-over planning. This combination made the recommendations feel much more realistic and trustworthy.&lt;/p&gt;

&lt;p&gt;For the interface, I built a Streamlit dashboard where users can enter the current match state—innings, score, wickets, over, batting and bowling teams, target, required run rate, striker, venue, dew factor, and Impact Player availability. Once submitted, the system runs the multi-agent debate and produces a tactical recommendation along with reasoning, confidence, and alternative scenario analysis.&lt;/p&gt;

&lt;p&gt;One of my favorite simulations involved CSK chasing 195 at Wankhede, with 154/4 on the board, MS Dhoni on strike, and heavy dew expected. The Stats Analyst highlighted historical Bumrah vs Dhoni matchups and the impact of weather conditions. The Strategist initially recommended attacking with Bumrah immediately. The Devil’s Advocate pushed back, arguing that using Bumrah too early could create greater risk later in the innings. The Strategist then revised the decision, saving Bumrah for a more decisive over and adjusting the tactical approach. That visible shift in reasoning was exactly the kind of behavior I wanted this system to demonstrate.&lt;/p&gt;

&lt;p&gt;Building this project also came with practical lessons. Multi-agent systems produce much richer reasoning than single-shot prompting, but they also introduce latency and quota challenges because each decision involves multiple model calls. Prompt control became critical because early outputs were too verbose for a live demo. Adding deterministic tools significantly improved trust, since recommendations were grounded in actual logic instead of pure language generation.&lt;/p&gt;

&lt;p&gt;This project gave me a much better understanding of agentic AI design—not just how to generate responses, but how to orchestrate structured reasoning between specialized agents. That was the most exciting part of the entire build.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Architecture Diagram&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;graph TD
UI[Streamlit UI] --&amp;gt; O[Orchestrator]
O --&amp;gt; A[Stats Analyst]
A --&amp;gt; S[Strategist]
S --&amp;gt; D[Devil's Advocate]
D --&amp;gt; R[Strategist Revision]
R --&amp;gt; C[Commentator]
C --&amp;gt; UI
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The full source code is available here:&lt;br&gt;
GitHub Repository: &lt;a href="https://github.com/DhanashriQAEngineer/captain-cool-ai" rel="noopener noreferrer"&gt;https://github.com/DhanashriQAEngineer/captain-cool-ai&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This was a genuinely fun hackathon build, and watching AI agents debate how to bowl to MS Dhoni in a death-over chase was far more entertaining than I expected.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fey9zh54xk95d6ahe16es.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fey9zh54xk95d6ahe16es.png" alt=" " width="800" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz9c323sk53luix8rh6hp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz9c323sk53luix8rh6hp.png" alt=" " width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Special tag&lt;/strong&gt;:  &lt;a class="mentioned-user" href="https://dev.to/antrixsh_gupta"&gt;@antrixsh_gupta&lt;/a&gt; &lt;/p&gt;

</description>
      <category>gemini</category>
      <category>ai</category>
      <category>googlecloud</category>
      <category>hackathon</category>
    </item>
  </channel>
</rss>
