<?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: Mohit Anand</title>
    <description>The latest articles on DEV Community by Mohit Anand (@mohit_anand_9f7275b63f423).</description>
    <link>https://dev.to/mohit_anand_9f7275b63f423</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%2F3344644%2Fb4fd30b1-2037-4739-ba57-c161fe865804.jpg</url>
      <title>DEV Community: Mohit Anand</title>
      <link>https://dev.to/mohit_anand_9f7275b63f423</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mohit_anand_9f7275b63f423"/>
    <language>en</language>
    <item>
      <title>The new way look for movie ticket openings</title>
      <dc:creator>Mohit Anand</dc:creator>
      <pubDate>Mon, 05 Oct 2026 07:00:03 +0000</pubDate>
      <link>https://dev.to/mohit_anand_9f7275b63f423/the-new-way-look-for-ticket-booking-openings-3k6e</link>
      <guid>https://dev.to/mohit_anand_9f7275b63f423/the-new-way-look-for-ticket-booking-openings-3k6e</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;Scout&lt;/strong&gt;, an AI-powered personal monitoring agent that understands what you want, watches for changes, and tells you when something meaningful happens.&lt;/p&gt;

&lt;p&gt;The idea behind Scout came from my friend &lt;strong&gt;Neeraj&lt;/strong&gt;. We wanted to explore a simple question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What if, instead of repeatedly checking whether something we care about has changed, we could just tell an agent what we want and let it watch for us?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For our movie-show use case, a user can say something like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I want to watch Dune 3 this Saturday evening with two people. IMAX if possible, PVR Lulu preferred, under ₹1500, and preferably cheaper."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Scout uses &lt;strong&gt;Gemma 3:4b&lt;/strong&gt; to understand that request and turn it into structured preferences.&lt;/p&gt;

&lt;p&gt;It then watches the available screenings, remembers what it observed, detects changes between observations, determines whether those changes represent meaningful opportunities, and decides whether the user should be notified.&lt;/p&gt;

&lt;p&gt;For example, Scout can detect that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a new matching IMAX screening appeared,&lt;/li&gt;
&lt;li&gt;seat availability changed but wasn't meaningful enough to notify about, or&lt;/li&gt;
&lt;li&gt;a preferred seat category dropped from ₹700 to ₹620.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The important part is that Scout doesn't notify the user about every change.&lt;/p&gt;

&lt;p&gt;It follows the idea:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understand → Remember → Watch → Detect → Evaluate → Notify&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We built Scout together as an MVP, with Neeraj contributing the core idea that started the project.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Video demo:&lt;/strong&gt; &lt;a href="https://youtu.be/PzATux3o7OY" rel="noopener noreferrer"&gt;https://youtu.be/PzATux3o7OY&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The demo shows Scout:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Understanding a natural-language movie request with Gemma.&lt;/li&gt;
&lt;li&gt;Resolving the user's preferences.&lt;/li&gt;
&lt;li&gt;Creating a persistent watch.&lt;/li&gt;
&lt;li&gt;Observing changing screening data.&lt;/li&gt;
&lt;li&gt;Detecting meaningful changes.&lt;/li&gt;
&lt;li&gt;Staying quiet when a change doesn't matter.&lt;/li&gt;
&lt;li&gt;Notifying the user when a matching screening appears.&lt;/li&gt;
&lt;li&gt;Notifying the user when a preferred price improves.&lt;/li&gt;
&lt;/ol&gt;

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

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

&lt;p&gt;The repository contains the complete Scout MVP, including the Gemma integration, domain models, preference handling, monitoring pipeline, persistence, change detection, opportunity detection, and notification decision logic.&lt;/p&gt;

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

&lt;p&gt;Scout is built around &lt;strong&gt;Gemma 3:4b&lt;/strong&gt;, running locally through &lt;strong&gt;Ollama&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;One of the main design decisions was to give the LLM a focused responsibility rather than asking it to make every decision.&lt;/p&gt;

&lt;h3&gt;
  
  
  Gemma understands intent
&lt;/h3&gt;

&lt;p&gt;The user speaks naturally.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"I want Dune 3 this Saturday evening with two people.
IMAX if possible, PVR Lulu preferred,
under ₹1500, and preferably cheaper."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Gemma converts this into a structured &lt;code&gt;PreferenceSpec&lt;/code&gt; containing things such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;movie&lt;/li&gt;
&lt;li&gt;party size&lt;/li&gt;
&lt;li&gt;date/time preferences&lt;/li&gt;
&lt;li&gt;preferred formats&lt;/li&gt;
&lt;li&gt;preferred theatre&lt;/li&gt;
&lt;li&gt;budget&lt;/li&gt;
&lt;li&gt;budget semantics&lt;/li&gt;
&lt;li&gt;preference for lower prices&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Deterministic code establishes facts
&lt;/h3&gt;

&lt;p&gt;Scout's application code handles things that should not be invented by an LLM:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;seat availability&lt;/li&gt;
&lt;li&gt;ticket prices&lt;/li&gt;
&lt;li&gt;total price&lt;/li&gt;
&lt;li&gt;budget calculations&lt;/li&gt;
&lt;li&gt;date/time matching&lt;/li&gt;
&lt;li&gt;format matching&lt;/li&gt;
&lt;li&gt;theatre matching&lt;/li&gt;
&lt;li&gt;snapshot comparison&lt;/li&gt;
&lt;li&gt;change detection&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This gives Scout a simple architectural principle:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Gemma interprets intent. Code establishes facts.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Scout remembers what it sees
&lt;/h3&gt;

&lt;p&gt;Each monitoring cycle produces a snapshot.&lt;/p&gt;

&lt;p&gt;Scout can then compare the current snapshot with the previous one and detect changes such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a show being added&lt;/li&gt;
&lt;li&gt;a show being removed&lt;/li&gt;
&lt;li&gt;seat availability changing&lt;/li&gt;
&lt;li&gt;a price changing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But a change isn't automatically a notification.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scout looks for meaningful opportunities
&lt;/h3&gt;

&lt;p&gt;Scout evaluates whether a detected change actually matters to the user's watch.&lt;/p&gt;

&lt;p&gt;For example, a new matching screening can become an opportunity.&lt;/p&gt;

&lt;p&gt;A price decrease can become an opportunity when the user has indicated that they prefer cheaper options.&lt;/p&gt;

&lt;p&gt;If something changes but doesn't matter to the user's goal, Scout stays quiet.&lt;/p&gt;

&lt;p&gt;The current MVP uses SQLite for persistent watches and monitoring snapshots, and a deterministic fixture source to simulate changing movie-show data.&lt;/p&gt;

&lt;p&gt;The fixture lets us reliably demonstrate the complete monitoring loop without making the core MVP dependent on a live external booking website.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Open innovation made it possible for us to build the AI part of Scout around a model we could actually run and integrate ourselves.&lt;/p&gt;

&lt;p&gt;Instead of treating AI as a remote API that receives a prompt and returns an answer, we used &lt;strong&gt;Gemma 3:4b locally through Ollama&lt;/strong&gt; and made it one component inside a larger system.&lt;/p&gt;

&lt;p&gt;That gave us control over how the model is used.&lt;/p&gt;

&lt;p&gt;Gemma is responsible for understanding user intent, while the rest of Scout remains deterministic and inspectable.&lt;/p&gt;

&lt;p&gt;This separation was important for Scout because prices, availability, and changes are factual application data. We don't want an LLM guessing those values.&lt;/p&gt;

&lt;p&gt;Using an open-weight model also made experimentation easier for a small project like ours. We could build around local inference without making the entire application dependent on a closed AI service.&lt;/p&gt;

&lt;p&gt;For Scout, open innovation wasn't just about replacing one API with another. It allowed us to treat the model as a component we could understand, run locally, and design the rest of the system around.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Best Use of Gemma&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Team
&lt;/h2&gt;

&lt;p&gt;This project was built collaboratively by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mohit Anand&lt;/strong&gt; — &lt;code&gt;mohit_anand_9f7275b63f423&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Neeraj&lt;/strong&gt; — &lt;code&gt;ks_neeraj_7b407064bd57e34&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Neeraj suggested the core idea behind Scout, and we worked together to turn that idea into the current MVP.&lt;/p&gt;

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