<?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: Kavya Goel</title>
    <description>The latest articles on DEV Community by Kavya Goel (@coderkavyag).</description>
    <link>https://dev.to/coderkavyag</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%2F1342857%2Fd1f088a7-693f-4292-9bf3-7e96f7486cdd.png</url>
      <title>DEV Community: Kavya Goel</title>
      <link>https://dev.to/coderkavyag</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/coderkavyag"/>
    <language>en</language>
    <item>
      <title>I built OrderMind so my friend Ishan stops rebuilding orders from WhatsApp chats</title>
      <dc:creator>Kavya Goel</dc:creator>
      <pubDate>Sun, 04 Oct 2026 11:24:21 +0000</pubDate>
      <link>https://dev.to/coderkavyag/i-built-ordermind-so-my-friend-ishan-stops-rebuilding-orders-from-whatsapp-chats-2gbn</link>
      <guid>https://dev.to/coderkavyag/i-built-ordermind-so-my-friend-ishan-stops-rebuilding-orders-from-whatsapp-chats-2gbn</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;I built &lt;strong&gt;OrderMind&lt;/strong&gt; for my friend &lt;strong&gt;Ishan Kumar&lt;/strong&gt;, who runs &lt;a href="https://www.instagram.com/inthebox.co.in/" rel="noopener noreferrer"&gt;InTheBox&lt;/a&gt;, a packaging company that provides consultation, design and manufacturing.&lt;/p&gt;

&lt;p&gt;Ishan's customers don't fill in structured order forms. They message him on WhatsApp and Instagram: a text, then a voice note, then a photo of a box they like, then "make it a little taller", then "actually 200 extra", then "same material as last time".&lt;/p&gt;

&lt;p&gt;The real order lives across messages and media files, and Ishan has to reconstruct it himself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In Ishan's words:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“A lot of order details are scattered across WhatsApp and Instagram, so I often have to go back through old conversations to figure out what the customer actually confirmed.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;OrderMind takes that mess and turns it into one order you can trust.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dump it in.&lt;/strong&gt; Import WhatsApp conversations, voice notes, photos and PDFs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;See what the customer actually asked for.&lt;/strong&gt; Every extracted field keeps its source evidence and is marked &lt;code&gt;CONFIRMED&lt;/code&gt;, &lt;code&gt;INFERRED&lt;/code&gt;, &lt;code&gt;MISSING&lt;/code&gt; or &lt;code&gt;CONFLICTING&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Catch problems early.&lt;/strong&gt; "Make it 1 cm taller" becomes an inferred change that Ishan can confirm. "Same material as last time" is checked against the previous order, and a mismatch is surfaced as a conflict instead of silently guessed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Follow the real business workflow.&lt;/strong&gt; Orders are handled according to InTheBox's service structure across consultation, design and manufacturing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Respect business boundaries.&lt;/strong&gt; Requests outside the business scope, such as logo creation or marketing copy, are flagged rather than being treated as packaging orders.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The core principle behind OrderMind is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI must never silently turn a guess into business truth.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9gvhwh4mkqqgzvp81h34.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9gvhwh4mkqqgzvp81h34.png" alt="Main Landing Page" width="800" height="382"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F63uc6x3613lt629z4x6j.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F63uc6x3613lt629z4x6j.png" alt="Main WorkSpace" width="800" height="392"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fql91bg6qvpgjoqjlxpjk.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fql91bg6qvpgjoqjlxpjk.png" alt="Chat Section - carries all the chats" width="800" height="395"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkde81tfo5xfqdlnxyy13.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkde81tfo5xfqdlnxyy13.png" alt="Pending Conflict - Orders Page" width="800" height="396"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://drive.google.com/file/d/1NGUcwww0CgZ0oca8kAgTU7Nq2lOE4M26/view?usp=sharing" rel="noopener noreferrer"&gt;Watch the walkthrough&lt;/a&gt;&lt;/p&gt;

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


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/CoderKavyaG" rel="noopener noreferrer"&gt;
        CoderKavyaG
      &lt;/a&gt; / &lt;a href="https://github.com/CoderKavyaG/OrderMind" rel="noopener noreferrer"&gt;
        OrderMind
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      OrderMind is an AI-powered order intelligence platform that turns messy WhatsApp and Instagram conversations into structured, reliable, production-ready orders. It detects changes, missing details, and conflicts while preserving the context behind every order.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;OrderMind — Precision Packaging Intelligence from Unstructured Customer Chats&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://nextjs.org/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/f81ef4a112639799bb512a54f86689b8b6fedebd64c49d5b28b53187e6220c53/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4e6578742e6a732d31352e352e302d626c61636b3f6c6f676f3d6e6578742e6a73" alt="Next.js"&gt;&lt;/a&gt;
&lt;a href="https://www.typescriptlang.org/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/b436d201ccc4d9306163e9938e8ced2b2b7f1425a52e150d8891e22c64bddee1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f547970655363726970742d352e302d626c75653f6c6f676f3d74797065736372697074" alt="TypeScript"&gt;&lt;/a&gt;
&lt;a href="https://ai.google.dev/gemma" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/a5890ca71ba21cb76685e4686c4b982d82734a8a4c56e715d67b263306752024/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f41495f436f72652d47656d6d615f325f283942253246323742292d6f72616e6765" alt="Gemma AI"&gt;&lt;/a&gt;
&lt;a href="https://tailwindcss.com/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/dfe92bc90989d736ab3d8b74b29725192b3692d34493801ed021368f3c8fe933/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5461696c77696e644353532d76342d3338423241433f6c6f676f3d7461696c77696e642d637373" alt="Tailwind CSS"&gt;&lt;/a&gt;
&lt;a href="https://www.mongodb.com/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/818ec31a63e7d3d4aecdd2031a3e316767d78d04d10b45e25f1b097e8758c7d9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f44617461626173652d4d6f6e676f44425f41746c61732d677265656e3f6c6f676f3d6d6f6e676f6462" alt="MongoDB"&gt;&lt;/a&gt;
&lt;a href="https://vitest.dev/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/057dc3745edc78ce54a613e2c4f5d07969bb5615685fcdfa32e35dad3b010ebe/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f54657374732d31375f5375697465735f2532465f3133365f5061737365642d627269676874677265656e" alt="Tests"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;OrderMind&lt;/strong&gt; bridges the costly disconnect between commercial sales communication (WhatsApp threads, raw voice memos, and mockup sketches) and precision manufacturing execution for packaging converters and box manufacturers.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;The Problem: Why We Built OrderMind&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Packaging manufacturing is an unforgiving custom-manufacturing industry with razor-thin margins and massive financial risk:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Unstructured Communication Chaos&lt;/strong&gt;: B2B packaging clients don't submit structured ERP orders. They communicate via fragmented WhatsApp chats, audio messages on the go (&lt;em&gt;"make it 20mm taller and use the same gold foil as last month"&lt;/em&gt;), and rough photos of competitor boxes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The "Game of Telephone"&lt;/strong&gt;: Customer service reps manually summarize chats into emails for estimators. Estimators pass notes to prepress CAD technicians. Subtle change requests (&lt;em&gt;"actually change 100 to 500 pcs"&lt;/em&gt;, or &lt;em&gt;"same GSM as the festival run"&lt;/em&gt;) are missed, resulting in ₹1,00,000+ substrate waste on the…&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/CoderKavyaG/OrderMind" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


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

&lt;h3&gt;
  
  
  Open-source AI at the core: Gemma
&lt;/h3&gt;

&lt;p&gt;OrderMind uses &lt;strong&gt;Gemma&lt;/strong&gt; as the core model for understanding customer conversations and extracting structured order information.&lt;/p&gt;

&lt;p&gt;The model sits behind a small &lt;code&gt;LLMProvider&lt;/code&gt; interface, which keeps the AI layer replaceable without coupling the rest of the application to one model provider.&lt;/p&gt;

&lt;p&gt;For the deployed demo, Gemma is accessed through OpenRouter using &lt;code&gt;google/gemma-3-27b-it&lt;/code&gt;. During development, the same interface can also work with local Ollama inference.&lt;/p&gt;

&lt;p&gt;Extraction takes roughly 0.8 seconds per message in the current implementation.&lt;/p&gt;

&lt;h3&gt;
  
  
  The pipeline
&lt;/h3&gt;

&lt;p&gt;The system is deliberately split into separate stages rather than relying on one giant prompt.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Normalize every source&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;WhatsApp exports, voice notes, images and PDFs are converted into a common internal message format.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Transcribe voice notes&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Voice input is converted into text before entering the same extraction pipeline as normal messages.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Extract typed claims&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Gemma extracts structured claims from each message and resolves references such as "same as last time".&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Validate evidence&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Every extracted claim must include an exact quote from the source message. If the evidence does not exist, the claim is rejected.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Build immutable order events&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Claims become order events. The model does not directly write the current order state.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Reconstruct deterministic state&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A deterministic reducer replays the events to calculate the current order state.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Detect changes and conflicts&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Deterministic logic identifies changed values, missing fields, conflicting information and out-of-scope requests. Gemma can help phrase clarification questions, but it does not become the source of truth.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Human confirmation&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When information is uncertain or conflicting, the user reviews and confirms it before it becomes part of the canonical order.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Production handoff&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once the required information and business conditions are satisfied, OrderMind can generate a structured production brief.&lt;/p&gt;

&lt;h3&gt;
  
  
  The important architectural decision
&lt;/h3&gt;

&lt;p&gt;The most important design choice was keeping &lt;strong&gt;AI output separate from business state&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of:&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
text
Customer message
→ LLM
→ update database
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
