<?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: Gourav Chhatwani</title>
    <description>The latest articles on DEV Community by Gourav Chhatwani (@gaming_andtechgt_c3dde2).</description>
    <link>https://dev.to/gaming_andtechgt_c3dde2</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%2F4173658%2Fc0f201b0-1bc9-4045-9cb2-ac9df3464ca6.png</url>
      <title>DEV Community: Gourav Chhatwani</title>
      <link>https://dev.to/gaming_andtechgt_c3dde2</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gaming_andtechgt_c3dde2"/>
    <language>en</language>
    <item>
      <title>TinySteps AI: Building an AI-Powered Task Roadmap Generator with Local Google Gemma, Streamlit, and Full CI/CD</title>
      <dc:creator>Gourav Chhatwani</dc:creator>
      <pubDate>Wed, 21 Oct 2026 10:25:06 +0000</pubDate>
      <link>https://dev.to/gaming_andtechgt_c3dde2/tinysteps-ai-building-an-ai-powered-task-roadmap-generator-with-local-google-gemma-streamlit-and-5f5o</link>
      <guid>https://dev.to/gaming_andtechgt_c3dde2/tinysteps-ai-building-an-ai-powered-task-roadmap-generator-with-local-google-gemma-streamlit-and-5f5o</guid>
      <description>&lt;h1&gt;
  
  
  ⚡ TinySteps AI: Building an AI-Powered Task Roadmap Generator with Local Google Gemma, Streamlit, and Full CI/CD
&lt;/h1&gt;

&lt;p&gt;Hey everyone! 👋&lt;/p&gt;

&lt;p&gt;For Week 3 of Hacktoberfest, I decided to tackle a problem I deal with almost every single day: jumping into a big, intimidating project—like building an ML pipeline from scratch or setting up microservices—and feeling completely paralyzed by where to start.&lt;/p&gt;

&lt;p&gt;To solve that, I built &lt;strong&gt;TinySteps AI&lt;/strong&gt;. It’s a tool that takes any complex software or ML engineering objective and breaks it down into structured, realistic, energy-aware phases you can actually execute without burning out.&lt;/p&gt;

&lt;p&gt;Check out the full walkthrough video below to see it generating roadmaps in real-time and triggering our automated deployment pipeline:&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/znfbmLAjET8" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 What Does TinySteps AI Do?
&lt;/h2&gt;

&lt;p&gt;Instead of just spitting out a generic checklist, TinySteps AI adapts to your real-world setup:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Energy-Aware Planning:&lt;/strong&gt; Select your current energy level (Low, Medium, or High) along with your available time budget (10 to 240 mins). The engine dynamically adjusts phase durations and depth so you don't overcommit when you're tired.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interactive Streamlit Frontend:&lt;/strong&gt; Clean, fast dashboard built with Streamlit for tweaking inputs and viewing instant execution blueprints.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dual-Backend AI Engine:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Local Inference (Google Gemma):&lt;/strong&gt; Runs &lt;code&gt;gemma3:4b&lt;/code&gt; locally via Ollama. It keeps your code ideas completely private, works offline, and costs $0.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloud Fallback (OpenRouter):&lt;/strong&gt; Integrates free cloud endpoints so the app stays functional anywhere.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🏗️ Under the Hood: Full CI/CD &amp;amp; Production Setup
&lt;/h2&gt;

&lt;p&gt;I wanted this to be a production-ready application rather than just a local script, so I packed in several devops and pipeline features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Automated Testing:&lt;/strong&gt; Unit test suite using &lt;code&gt;pytest&lt;/code&gt; verifying engine fallback logic, step sizing, and key mapping.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Actions CI/CD:&lt;/strong&gt; Runs automated tests on every push to &lt;code&gt;main&lt;/code&gt;, builds a Docker container, and publishes the image directly to the &lt;strong&gt;GitHub Container Registry (GHCR)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Live Render Deployment:&lt;/strong&gt; Connected to our registry hooks on Render for automated continuous deployment with zero downtime.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔗 Public Links &amp;amp; Proofs
&lt;/h2&gt;

&lt;p&gt;Everything is 100% open-source and publicly accessible without any auth walls:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🌐 &lt;strong&gt;Live App on Render:&lt;/strong&gt; &lt;a href="https://slothsort-ai-latest.onrender.com" rel="noopener noreferrer"&gt;https://slothsort-ai-latest.onrender.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;💻 &lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/GouravGC/tinysteps-ai" rel="noopener noreferrer"&gt;https://github.com/GouravGC/tinysteps-ai&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;⚙️ &lt;strong&gt;GitHub Actions (CI/CD Runs):&lt;/strong&gt; &lt;a href="https://github.com/GouravGC/tinysteps-ai/actions" rel="noopener noreferrer"&gt;Pipeline Activity&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📦 &lt;strong&gt;GitHub Container Registry:&lt;/strong&gt; &lt;a href="https://github.com/GouravGC?tab=packages" rel="noopener noreferrer"&gt;Published Packages&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🚀 Running it Locally
&lt;/h2&gt;

&lt;p&gt;If you want to spin it up on your local machine with Google Gemma:&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
bash
# 1. Clone &amp;amp; install
git clone [https://github.com/GouravGC/tinysteps-ai.git](https://github.com/GouravGC/tinysteps-ai.git)
cd tinysteps-ai
pip install -r requirements.txt

# 2. Start local Ollama model (Google Gemma)
ollama run gemma3:4b

# 3. Launch Streamlit UI
python -m streamlit run app.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>I Built GraphSleuth AI with FalkorDB for Graph Hacks — Here's What I Learned</title>
      <dc:creator>Gourav Chhatwani</dc:creator>
      <pubDate>Sun, 18 Oct 2026 18:23:25 +0000</pubDate>
      <link>https://dev.to/gaming_andtechgt_c3dde2/i-built-graphsleuth-ai-with-falkordb-for-graph-hacks-heres-what-i-learned-26e</link>
      <guid>https://dev.to/gaming_andtechgt_c3dde2/i-built-graphsleuth-ai-with-falkordb-for-graph-hacks-heres-what-i-learned-26e</guid>
      <description>&lt;h2&gt;
  
  
  Why I built this
&lt;/h2&gt;

&lt;p&gt;For Graph Hacks: Context for AI Agents, I wanted to build something practical around graph databases instead of just reading about them. I decided to try a cybersecurity investigation tool because investigating suspicious activity often means connecting the dots between accounts, devices, servers, and alerts.&lt;/p&gt;

&lt;p&gt;That's how &lt;strong&gt;GraphSleuth AI&lt;/strong&gt; came together.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/GouravGC/GraphSleuth-AI" rel="noopener noreferrer"&gt;https://github.com/GouravGC/GraphSleuth-AI&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What does it do?
&lt;/h2&gt;

&lt;p&gt;Imagine you're looking into a suspicious user account. You might want to know which device it accessed, which server that device connected to, and whether any security alerts are related.&lt;/p&gt;

&lt;p&gt;Looking at those details separately doesn't always make the bigger picture obvious. GraphSleuth AI lets you explore these connections through a graph.&lt;/p&gt;

&lt;p&gt;I built the prototype with Python, Streamlit, and FalkorDB. The application uses Cypher queries to trace account-to-device-to-server paths, connect relevant alerts, and display the evidence found in the graph.&lt;/p&gt;

&lt;p&gt;The project currently uses synthetic cybersecurity data, so it's a prototype rather than a tool intended for real security investigations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where FalkorDB fits in
&lt;/h2&gt;

&lt;p&gt;FalkorDB isn't just there to draw a graph. It's the database behind the investigation logic.&lt;/p&gt;

&lt;p&gt;I represent entities such as accounts, devices, servers, and alerts as nodes, with relationships connecting them. Then I use Cypher queries to follow those relationships and retrieve connected evidence.&lt;/p&gt;

&lt;p&gt;That was the interesting part for me: instead of looking at each record in isolation, I could explore how several entities were connected through multiple steps.&lt;/p&gt;

&lt;h2&gt;
  
  
  The tech stack
&lt;/h2&gt;

&lt;p&gt;Here's what I used:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python for the application logic&lt;/li&gt;
&lt;li&gt;FalkorDB for storing and querying the graph&lt;/li&gt;
&lt;li&gt;Cypher for traversing relationships&lt;/li&gt;
&lt;li&gt;Streamlit for the interface&lt;/li&gt;
&lt;li&gt;Docker Compose to run FalkorDB locally&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I kept the setup local and documented the steps in the repository README.&lt;/p&gt;

&lt;h2&gt;
  
  
  A few things I learned
&lt;/h2&gt;

&lt;p&gt;One thing that stood out to me was how much the graph model matters. You need to think about which entities belong in the graph and what their relationships actually mean. Otherwise, even a working query won't give you useful investigation results.&lt;/p&gt;

&lt;p&gt;I also got a practical reminder that running an app locally and deploying it to the cloud are different challenges. If the database is running on your own machine, a cloud-hosted interface can't automatically connect to it.&lt;/p&gt;

&lt;p&gt;There is still plenty I'd like to improve, including adding more investigation scenarios, expanding the tests, and eventually exploring a proper remote deployment.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next?
&lt;/h2&gt;

&lt;p&gt;GraphSleuth AI is an early prototype, and I don't want to present it as a finished cybersecurity product. For now, it demonstrates one idea: graph relationships can help make investigation paths easier to follow and explain.&lt;/p&gt;

&lt;p&gt;If you'd like to explore the code, here's the repository:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/GouravGC/GraphSleuth-AI" rel="noopener noreferrer"&gt;https://github.com/GouravGC/GraphSleuth-AI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This was my project for &lt;strong&gt;Graph Hacks: Context for AI Agents&lt;/strong&gt;, organized by WeMakeDevs and FalkorDB. Building it gave me a more practical understanding of how graph databases can be used beyond simple visualization.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>cybersecurity</category>
      <category>database</category>
      <category>github</category>
    </item>
    <item>
      <title>FreelanceFlow AI: Generate Client Proposals with Open-Weight AI</title>
      <dc:creator>Gourav Chhatwani</dc:creator>
      <pubDate>Sat, 17 Oct 2026 10:38:57 +0000</pubDate>
      <link>https://dev.to/gaming_andtechgt_c3dde2/freelanceflow-ai-generate-client-proposals-with-open-weight-ai-3o9f</link>
      <guid>https://dev.to/gaming_andtechgt_c3dde2/freelanceflow-ai-generate-client-proposals-with-open-weight-ai-3o9f</guid>
      <description>&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Watch the project walkthrough:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/0vEj6Pujp5Y" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try FreelanceFlow AI:&lt;/strong&gt; &lt;a href="https://freelanceflow-ai-2du9.onrender.com/" rel="noopener noreferrer"&gt;https://freelanceflow-ai-2du9.onrender.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Source code:&lt;/strong&gt; &lt;a href="https://github.com/GouravGC/freelanceflow-ai" rel="noopener noreferrer"&gt;https://github.com/GouravGC/freelanceflow-ai&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project evidence and screenshots:&lt;/strong&gt; &lt;a href="https://github.com/GouravGC/freelanceflow-ai/tree/main/evidences" rel="noopener noreferrer"&gt;https://github.com/GouravGC/freelanceflow-ai/tree/main/evidences&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Freelancers often spend valuable time converting client requirements into clear, professional project proposals. FreelanceFlow AI helps simplify that process.&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;FreelanceFlow AI&lt;/strong&gt;, an AI-powered proposal generator for freelancers, independent consultants, and small service businesses.&lt;/p&gt;

&lt;p&gt;Users enter a client name, project brief, hourly rate, and estimated hours. The application generates a structured proposal with a title, summary, requirements, assumptions, deliverables, exclusions, milestones, risks, and a client email. It also calculates the estimated project cost and supports downloading the proposal as JSON.&lt;/p&gt;

&lt;p&gt;For example, a freelancer can enter the requirements for an e-commerce website and generate a proposal with a cost estimate and a clear breakdown of the work.&lt;/p&gt;

&lt;p&gt;The people most likely to benefit are freelance developers, designers, consultants, and agencies that repeatedly prepare client proposals. It could be useful as a time-saving tool for people who want to spend less time on repetitive writing and more time delivering client work.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Live application:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://freelanceflow-ai-2du9.onrender.com/" rel="noopener noreferrer"&gt;https://freelanceflow-ai-2du9.onrender.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project evidence and screenshots:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/GouravGC/freelanceflow-ai/tree/main/evidences" rel="noopener noreferrer"&gt;https://github.com/GouravGC/freelanceflow-ai/tree/main/evidences&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;br&gt;&lt;br&gt;
&lt;a href="https://github.com/GouravGC/freelanceflow-ai" rel="noopener noreferrer"&gt;https://github.com/GouravGC/freelanceflow-ai&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project uses a modular Python structure, automated tests, Docker, and GitHub Actions. The repository includes the application source code, tests, configuration examples, and documentation.&lt;/p&gt;

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

&lt;p&gt;I built FreelanceFlow AI using Python and Streamlit, with a modular structure to keep the application organized and maintainable.&lt;/p&gt;

&lt;p&gt;The project supports two AI generation options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Google Gemma through Ollama:&lt;/strong&gt; A local inference option that runs an open-weight model on compatible hardware.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenRouter:&lt;/strong&gt; A cloud-based option for AI-powered proposal generation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The application takes the user's project requirements and pricing details, calculates the estimated cost, and generates a structured proposal. Pydantic supports data validation, while pytest covers the pricing logic, decimal rates, and invalid input values.&lt;/p&gt;

&lt;p&gt;I also added Docker support and a GitHub Actions workflow for automated testing and container publishing. The web application is deployed on Render.&lt;/p&gt;

&lt;p&gt;This project brought together AI integration, modular Python development, testing, containerization, and deployment in one practical application.&lt;/p&gt;

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

&lt;p&gt;Freelancers may work with client briefs, budgets, and business requirements that they do not want to send to an external AI service unnecessarily.&lt;/p&gt;

&lt;p&gt;By supporting local inference through Gemma and Ollama, FreelanceFlow AI gives users an alternative to sending every generation request to a hosted AI provider. When generation runs locally, the prompt can be processed on the user's own machine, subject to the local setup and model requirements.&lt;/p&gt;

&lt;p&gt;Open-weight models also provide more flexibility to experiment with model choices and deployment approaches instead of depending entirely on one hosted provider. The cloud option remains available when convenience is more important.&lt;/p&gt;

&lt;p&gt;For a side hustle, these choices matter. Freelancers need tools that fit their budgets, workflows, hardware, and client confidentiality requirements. Open-weight AI makes it possible to explore a more flexible approach to building those tools.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Best Use of Gemma&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;FreelanceFlow AI integrates Google's Gemma open-weight model through Ollama for local proposal generation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best Use of Render&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Streamlit application is deployed on Render and accessible through a live web application. I am entering this category based on its use for hosting the application's frontend.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;FreelanceFlow AI began with a straightforward goal: make client proposal writing faster and more&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>gemma</category>
      <category>render</category>
    </item>
    <item>
      <title>🌿 Walk &amp; Notice — AI That Gets You Off the Screen</title>
      <dc:creator>Gourav Chhatwani</dc:creator>
      <pubDate>Sat, 10 Oct 2026 13:35:19 +0000</pubDate>
      <link>https://dev.to/gaming_andtechgt_c3dde2/walk-notice-ai-that-gets-you-off-the-screen-5hdf</link>
      <guid>https://dev.to/gaming_andtechgt_c3dde2/walk-notice-ai-that-gets-you-off-the-screen-5hdf</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;h3&gt;
  
  
  🌿 Walk &amp;amp; Notice
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;AI should help you leave the screen — not keep you on it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For Hacktoberfest Week 1, I built &lt;strong&gt;Walk &amp;amp; Notice&lt;/strong&gt;, an AI-powered outdoor observation mission generator built around one simple idea:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The AI interaction should end when the real-world experience begins.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Instead of creating another chatbot that encourages people to spend more time on their phones, Walk &amp;amp; Notice uses AI to create a short, personalized outdoor mission — and then tells the user to put the phone away.&lt;/p&gt;

&lt;p&gt;The project has a &lt;strong&gt;proper Streamlit frontend&lt;/strong&gt; where users configure the experience before generating their mission.&lt;/p&gt;

&lt;p&gt;The interface lets users choose:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🤖 AI provider&lt;/li&gt;
&lt;li&gt;⏱️ Available time&lt;/li&gt;
&lt;li&gt;🌳 Outdoor environment&lt;/li&gt;
&lt;li&gt;🔎 What they want to notice&lt;/li&gt;
&lt;li&gt;⚡ Energy level&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The application turns those choices into a short four-step observation mission.&lt;/p&gt;

&lt;p&gt;Every mission ends with:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Now put your phone away.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The idea is intentionally simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Generate it. Read it. Go outside. Notice something.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The screen is supposed to be the shortest part of the experience.&lt;/p&gt;




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

&lt;h3&gt;
  
  
  ▶️ Quick Video Preview
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://youtu.be/4_qidfn2heQ" rel="noopener noreferrer"&gt;Watch the full 3-minute demo on YouTube&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Live Production App
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://walk-and-notice-latest.onrender.com/" rel="noopener noreferrer"&gt;Open Walk &amp;amp; Notice on Render&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🌐 Streamlit Demo
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://walk-and-notice.streamlit.app/" rel="noopener noreferrer"&gt;Open the Streamlit application&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎥 High-Quality Demo Download
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/GouravGC/Hacktoberfest_2026_01_Walk_and_Notice/blob/main/evidence/demo/demo_video.mp4" rel="noopener noreferrer"&gt;Download the original high-quality demo from GitHub&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;GitHub may not preview the video directly because of its file size. The original high-quality video is available for download.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  🔄 Alternative Video Download
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.jioaicloud.com/l/?u=bdo30L1Rac9G26jDFEZgAipGAYiVwZi7DOXKI894om_LIIAgBjya8s7y2Kkl8R0pb3F" rel="noopener noreferrer"&gt;Download the demo from JioCloud&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Alternative download option if the GitHub file is inconvenient to access.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  📸 Evidence
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/GouravGC/Hacktoberfest_2026_01_Walk_and_Notice/tree/main/evidence" rel="noopener noreferrer"&gt;View screenshots and supporting evidence&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




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

&lt;h3&gt;
  
  
  💻 GitHub Repository
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/GouravGC/Hacktoberfest_2026_01_Walk_and_Notice" rel="noopener noreferrer"&gt;View Walk &amp;amp; Notice on GitHub&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The repository contains the complete implementation, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Streamlit frontend&lt;/li&gt;
&lt;li&gt;AI provider abstraction&lt;/li&gt;
&lt;li&gt;Gemma 4 E4B + Ollama integration&lt;/li&gt;
&lt;li&gt;OpenRouter integration&lt;/li&gt;
&lt;li&gt;Prompt engineering&lt;/li&gt;
&lt;li&gt;Automated tests&lt;/li&gt;
&lt;li&gt;Docker configuration&lt;/li&gt;
&lt;li&gt;GitHub Actions CI/CD&lt;/li&gt;
&lt;li&gt;GitHub Container Registry publishing&lt;/li&gt;
&lt;li&gt;Render deployment&lt;/li&gt;
&lt;li&gt;Documentation&lt;/li&gt;
&lt;li&gt;Demo and supporting evidence&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;I wanted the AI to be part of the solution without making the AI interaction itself the main experience.&lt;/p&gt;

&lt;p&gt;The project therefore has two AI inference paths: a &lt;strong&gt;local open-weight path for development&lt;/strong&gt; and a &lt;strong&gt;production path through OpenRouter&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  🦙 Local AI — Gemma 4 E4B + Ollama
&lt;/h3&gt;

&lt;p&gt;During development, I run &lt;strong&gt;Gemma 4 E4B locally through Ollama&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The local architecture is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Streamlit
    ↓
Python
    ↓
Ollama
    ↓
Gemma 4 E4B
    ↓
Outdoor Mission
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This allows the application to generate missions locally using an open-weight model.&lt;/p&gt;

&lt;p&gt;The local model runs on my RTX 3060, allowing me to develop and test the core AI experience without requiring a hosted AI API.&lt;/p&gt;

&lt;h3&gt;
  
  
  ☁️ Production AI — OpenRouter
&lt;/h3&gt;

&lt;p&gt;For the public deployment, I added a second provider using OpenRouter with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;openai/gpt-oss-20b
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The application keeps the AI provider behind the same Python interface, allowing the frontend and mission-generation logic to work with different inference providers.&lt;/p&gt;

&lt;p&gt;The overall application flow is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                     Streamlit Frontend
                           │
              ┌────────────┴────────────┐
              ↓                         ↓
       Local AI Provider        Production Provider
              ↓                         ↓
       Gemma 4 E4B                 OpenRouter
              ↓                         ↓
           Ollama                  GPT-OSS-20B
              └────────────┬────────────┘
                           ↓
                  Personalized Mission
                           ↓
                  "Put your phone away."
                           ↓
                         🌳 Outdoors
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🎨 Streamlit Frontend
&lt;/h3&gt;

&lt;p&gt;Rather than asking users to interact directly with an LLM, I built a proper Streamlit frontend around the model.&lt;/p&gt;

&lt;p&gt;The interface collects structured preferences and passes them to the mission generator.&lt;/p&gt;

&lt;p&gt;This turns the project from a raw model experiment into a small usable application.&lt;/p&gt;

&lt;p&gt;The frontend controls the experience.&lt;/p&gt;

&lt;p&gt;The model handles the generation.&lt;/p&gt;

&lt;p&gt;And then the user leaves the screen.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧠 Prompt Engineering
&lt;/h3&gt;

&lt;p&gt;The mission generator is intentionally constrained.&lt;/p&gt;

&lt;p&gt;The model is instructed to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generate exactly four numbered steps&lt;/li&gt;
&lt;li&gt;Keep each step short&lt;/li&gt;
&lt;li&gt;Match the user's selected preferences&lt;/li&gt;
&lt;li&gt;Create safe outdoor activities&lt;/li&gt;
&lt;li&gt;Require no special equipment&lt;/li&gt;
&lt;li&gt;Avoid interacting with wildlife&lt;/li&gt;
&lt;li&gt;Avoid traffic and dangerous locations&lt;/li&gt;
&lt;li&gt;Avoid requiring a phone, camera, or recording&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The final instruction is always:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Now put your phone away.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The goal isn't to generate a long AI response.&lt;/p&gt;

&lt;p&gt;The goal is to generate something useful enough to read quickly and then act on in the real world.&lt;/p&gt;

&lt;h3&gt;
  
  
  🛡️ Safety by Design
&lt;/h3&gt;

&lt;p&gt;Because Walk &amp;amp; Notice encourages people to go outdoors, safety is built into the generation instructions.&lt;/p&gt;

&lt;p&gt;The model is explicitly prevented from creating missions involving things such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Traffic&lt;/li&gt;
&lt;li&gt;Approaching wildlife&lt;/li&gt;
&lt;li&gt;Dangerous climbing&lt;/li&gt;
&lt;li&gt;Dangerous objects&lt;/li&gt;
&lt;li&gt;Unsafe locations&lt;/li&gt;
&lt;li&gt;Required equipment&lt;/li&gt;
&lt;li&gt;Recording or photographing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The activities are designed around observation rather than risky physical challenges.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧪 Automated Testing
&lt;/h3&gt;

&lt;p&gt;I added automated tests for both AI provider paths:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Ollama generation
OpenRouter generation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The local test suite currently passes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;2 passed
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These tests are also executed automatically through GitHub Actions before the production image is built.&lt;/p&gt;

&lt;h3&gt;
  
  
  🐳 Docker
&lt;/h3&gt;

&lt;p&gt;The application is containerized with Docker.&lt;/p&gt;

&lt;p&gt;The production image is published to GitHub Container Registry:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ghcr.io/gouravgc/walk-and-notice:latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This provides a reproducible production artifact that can be deployed without manually configuring the application environment.&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚙️ GitHub Actions CI/CD
&lt;/h3&gt;

&lt;p&gt;I built an automated GitHub Actions pipeline for testing and container delivery.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GitHub Push
     ↓
Run pytest
     ↓
Build Docker Image
     ↓
Push Image to GHCR
     ↓
Render
     ↓
Production Application
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/GouravGC/Hacktoberfest_2026_01_Walk_and_Notice/actions/runs/37967290589" rel="noopener noreferrer"&gt;View the successful GitHub Actions workflow&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This means a code change can move through testing and container publishing automatically instead of requiring a manual Docker build and registry push.&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Render Deployment
&lt;/h3&gt;

&lt;p&gt;The production application runs on Render using the Docker image published to GHCR.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://walk-and-notice-latest.onrender.com/" rel="noopener noreferrer"&gt;Open the production application&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This takes Walk &amp;amp; Notice beyond a local prototype and gives the project a publicly accessible production deployment.&lt;/p&gt;




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

&lt;p&gt;Open innovation matters to Walk &amp;amp; Notice because &lt;strong&gt;the AI itself is part of the project's philosophy&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The application was built around an open-weight model that can run locally.&lt;/p&gt;

&lt;p&gt;With Gemma 4 E4B and Ollama, I can run the AI on my own hardware, experiment with prompts, change the model configuration, and develop the application without making a proprietary hosted API the only way the system can work.&lt;/p&gt;

&lt;p&gt;That is particularly relevant to this project.&lt;/p&gt;

&lt;p&gt;Walk &amp;amp; Notice is designed to reduce unnecessary screen time.&lt;/p&gt;

&lt;p&gt;A local inference path means the core mission-generation experience can work without sending every development interaction to a remote AI provider.&lt;/p&gt;

&lt;p&gt;It also gives me more control over experimentation.&lt;/p&gt;

&lt;p&gt;I can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run the model locally&lt;/li&gt;
&lt;li&gt;Modify the prompts&lt;/li&gt;
&lt;li&gt;Experiment with the model&lt;/li&gt;
&lt;li&gt;Change the application's behavior&lt;/li&gt;
&lt;li&gt;Keep the core AI workflow under my control&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The production deployment adds an OpenRouter path for public access, but the application architecture still keeps local open-weight inference as a first-class option.&lt;/p&gt;

&lt;p&gt;For me, that is where open innovation fits this project best:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The AI can be experimented with locally, while the experience itself is designed to get the user away from the screen.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




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

&lt;p&gt;I am entering the following partner categories:&lt;/p&gt;

&lt;h3&gt;
  
  
  🟢 Best Use of Gemma
&lt;/h3&gt;

&lt;p&gt;Walk &amp;amp; Notice uses &lt;strong&gt;Gemma 4 E4B locally through Ollama&lt;/strong&gt; as one of its AI providers.&lt;/p&gt;

&lt;p&gt;Gemma is directly responsible for generating the personalized outdoor observation missions.&lt;/p&gt;

&lt;h3&gt;
  
  
  🟠 Best Use of Render
&lt;/h3&gt;

&lt;p&gt;The production version of Walk &amp;amp; Notice is deployed on &lt;strong&gt;Render&lt;/strong&gt; using the Docker image published to GitHub Container Registry.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://walk-and-notice-latest.onrender.com/" rel="noopener noreferrer"&gt;Open the production application&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🟣 Best Use of GitHub Copilot
&lt;/h3&gt;

&lt;p&gt;Walk &amp;amp; Notice uses &lt;strong&gt;GitHub Actions&lt;/strong&gt; to automate its software delivery workflow.&lt;/p&gt;

&lt;p&gt;The pipeline automatically runs tests, builds the Docker image, and publishes the production image to GHCR.&lt;/p&gt;

&lt;p&gt;This uses the GitHub Actions automation route explicitly listed in the challenge's &lt;strong&gt;Best Use of GitHub Copilot&lt;/strong&gt; category.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌍 The Idea Behind Walk &amp;amp; Notice
&lt;/h2&gt;

&lt;p&gt;The easiest thing for an AI application to do is give us another reason to stay online.&lt;/p&gt;

&lt;p&gt;I wanted to build something different.&lt;/p&gt;

&lt;p&gt;Walk &amp;amp; Notice uses AI to create the starting point for a real-world experience — and then gets out of the way.&lt;/p&gt;

&lt;p&gt;The AI generates the mission.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You do the walking.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You do the noticing.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The real world does the rest.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🌿&lt;/p&gt;

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