<?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: Saptadeep Nath</title>
    <description>The latest articles on DEV Community by Saptadeep Nath (@saptanath_dev).</description>
    <link>https://dev.to/saptanath_dev</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%2F4156298%2Fa175cca3-5285-4e7c-b71f-43e5a771d199.png</url>
      <title>DEV Community: Saptadeep Nath</title>
      <link>https://dev.to/saptanath_dev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/saptanath_dev"/>
    <language>en</language>
    <item>
      <title>SlothSort — Tidy Files, Slowly</title>
      <dc:creator>Saptadeep Nath</dc:creator>
      <pubDate>Sun, 25 Oct 2026 19:04:50 +0000</pubDate>
      <link>https://dev.to/saptanath_dev/slothsort-tidy-files-slowly-5e7o</link>
      <guid>https://dev.to/saptanath_dev/slothsort-tidy-files-slowly-5e7o</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;My Downloads folder has a familiar problem: files accumulate faster than I organize them. Screenshots end up beside lecture notes, code files get buried under documents, and filenames like document1.pdf, IMG_1234.jpg, and final_final_v2.txt don't make finding anything easier.&lt;/p&gt;

&lt;p&gt;I built SlothSort, a local-first, AI-powered file organizer that does the tedious part for me.&lt;/p&gt;

&lt;p&gt;SlothSort scans a selected directory, including nested folders, and suggests categories and more descriptive filenames using an open-weight Qwen model running locally through Ollama. It also detects exact duplicate files using SHA-256 hashing.&lt;/p&gt;

&lt;p&gt;Instead of immediately making changes to my filesystem, SlothSort lets me review the proposed changes first. It creates organized copies in a dedicated output directory, preserves the original folder paths beneath category folders, and provides an undo mechanism for its copy operations.&lt;/p&gt;

&lt;p&gt;The idea is simple: spend less time organizing files and more time doing literally anything else.&lt;/p&gt;

&lt;p&gt;What it can do:&lt;/p&gt;

&lt;p&gt;📂 Scan directories recursively.&lt;/p&gt;

&lt;p&gt;🧠 Use local Qwen inference to suggest file categories and names.&lt;/p&gt;

&lt;p&gt;🔍 Detect exact duplicates using file hashes.&lt;/p&gt;

&lt;p&gt;✏️ Let users review and edit naming suggestions.&lt;/p&gt;

&lt;p&gt;🛡️ Keep the original files untouched when creating organized copies.&lt;/p&gt;

&lt;p&gt;↩️ Provide an undo mechanism for supported copy operations.&lt;/p&gt;

&lt;p&gt;📴 Run its core workflow locally after the dependencies and model have been installed.&lt;/p&gt;

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


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://drive.google.com/file/d/1jtJnpoQcKGz7W5jYrGl34lx5QOxb8u6r/view?usp=sharing" rel="noopener noreferrer" class="c-link"&gt;
            dev4.mp4 - Google Drive
          &lt;/a&gt;
        &lt;/h2&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fssl.gstatic.com%2Fdocs%2Fdoclist%2Fimages%2Fdrive_favicon_2026_32dp.png" width="32" height="32"&gt;
          drive.google.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;In the demo, I'll show the workflow from selecting a messy test directory to reviewing AI-generated suggestions and creating an organized copy.&lt;/p&gt;

&lt;p&gt;The most important part is that SlothSort doesn't need to send my files to a third-party AI API to perform its core AI-assisted workflow.&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/Gitcarbonath" rel="noopener noreferrer"&gt;
        Gitcarbonath
      &lt;/a&gt; / &lt;a href="https://github.com/Gitcarbonath/SlothSort" rel="noopener noreferrer"&gt;
        SlothSort
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &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;SlothSort&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;A local-first file organizer designed to make folder cleanup safer and less tedious.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;SlothSort is a work-in-progress project built with Python, FastAPI, a lightweight browser interface, and a locally running Ollama model (Qwen).&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Status:&lt;/strong&gt; In development. Features and setup instructions may change as the project is tested.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What it does&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Scan a selected folder, including subfolders.&lt;/li&gt;
&lt;li&gt;Group files into categories based on their extensions.&lt;/li&gt;
&lt;li&gt;Optionally request naming or categorization suggestions from a local Qwen model for supported files.&lt;/li&gt;
&lt;li&gt;Detect byte-identical files using SHA-256 hashes.&lt;/li&gt;
&lt;li&gt;Copy organized files into a separate output folder rather than moving or deleting originals.&lt;/li&gt;
&lt;li&gt;Preserve relative folder structure where appropriate and avoid overwriting existing files.&lt;/li&gt;
&lt;li&gt;Support undoing the app's copy operations where possible.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;AI analysis may be skipped for file types where it is unlikely to be useful. Exact behavior depends on the current version.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Why SlothSort?&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;File cleanup can be repetitive, and uploading personal…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Gitcarbonath/SlothSort" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;The project is built with Python and a lightweight browser interface. Its core components include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;FastAPI for the backend and API endpoints.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;HTML, CSS, and JavaScript for the user interface.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ollama for local model inference.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Qwen 2.5 3B as the initial language model.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Python filesystem operations and SHA-256 hashing for file management and duplicate detection.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is to keep the application simple enough to run on an ordinary laptop without requiring a cloud deployment or a complicated infrastructure setup.&lt;/p&gt;

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

&lt;p&gt;I started with a simple local web application: a Python backend, a browser-based interface, and a local language model.&lt;/p&gt;

&lt;p&gt;The first version could scan a folder and suggest categories, but it had two practical problems. It didn't inspect nested folders, and the AI analysis was slow enough that it wasn't always clear whether anything was happening.&lt;/p&gt;

&lt;p&gt;I iterated on the application to address those issues.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Local AI with Ollama and Qwen&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;SlothSort uses Qwen 2.5 3B through Ollama. The model helps make naming and categorization decisions, while ordinary Python handles deterministic operations such as hashing files, creating directories, and copying files.&lt;/p&gt;

&lt;p&gt;This separation matters: the model proposes what should happen, but the application is responsible for carrying out filesystem operations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Faster analysis&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Calling a language model for every file can be unnecessarily expensive in time and computation. SlothSort therefore uses extension-based rules for familiar file types and reserves AI analysis for text files and unknown file types by default.&lt;/p&gt;

&lt;p&gt;An optional all-file analysis mode can request naming suggestions for additional file types, although binary files may provide only filenames and folder-path clues unless their contents are extracted or analyzed by a suitable model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Recursive scanning and safer organization&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The initial implementation only scanned files directly inside the selected folder. I changed it to scan nested directories and display their relative paths.&lt;/p&gt;

&lt;p&gt;I also changed the organization workflow to create copies in a dedicated output directory rather than scatter files throughout the original directory. Existing destination files are not intentionally overwritten, and the original files remain available.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Human review before changes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AI suggestions aren't always correct. SlothSort lets users inspect the proposed categories and names before applying them.&lt;/p&gt;

&lt;p&gt;The application combines AI assistance with conventional safeguards instead of giving the model unrestricted control over the filesystem.&lt;/p&gt;

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

&lt;p&gt;For SlothSort, open innovation isn't just a way to avoid API costs. It changes where the computation happens and who controls the workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Privacy and local processing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Files can contain personal documents, university assignments, screenshots, source code, and other sensitive information. Sending all of them to a remote AI service just to organize a folder is often unnecessary.&lt;/p&gt;

&lt;p&gt;With Ollama running locally, SlothSort can send supported text previews to a model on the same machine rather than requiring a third-party inference API. This keeps the core workflow local, provided Ollama is configured to use a trusted local endpoint.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Control over the model&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Using an open-weight model means I'm not locked into a single hosted AI provider. I can experiment with different compatible models, adjust prompts, and change how naming suggestions are generated.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A more accessible development process&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Running inference locally makes experimentation practical without needing a paid API key or a deployed AI backend. The main costs are the hardware, storage, and time required to run the model.&lt;/p&gt;

&lt;p&gt;There are trade-offs, of course. Local inference can be slower on a CPU, and a small model may generate inaccurate or overly generic names. Open innovation gives me the freedom to work on those limitations rather than treating a hosted model as a black box.&lt;/p&gt;

&lt;p&gt;For a file organizer, keeping the data and the decision-making process under the user's control is a meaningful advantage.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;p&gt;The intended payoff is straightforward: fewer repetitive file-management decisions.&lt;/p&gt;

&lt;p&gt;Instead of manually opening folders, deciding where files belong, and renaming them one by one, I can scan a directory, review a proposed organization plan, and let SlothSort prepare the copies.&lt;/p&gt;

&lt;p&gt;I'm not claiming a measured time saving yet. I want to evaluate that properly by comparing manual organization with SlothSort on the same test folder.&lt;/p&gt;

&lt;p&gt;The next improvements I'd like to explore are better content-aware naming for PDFs and images, clearer progress reporting, and automated tests for filesystem safety.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>ScopeGuard AI: Catch Scope Creep Before It Costs You</title>
      <dc:creator>Saptadeep Nath</dc:creator>
      <pubDate>Sun, 18 Oct 2026 19:24:59 +0000</pubDate>
      <link>https://dev.to/saptanath_dev/scopeguard-ai-catch-scope-creep-before-it-costs-you-4mjk</link>
      <guid>https://dev.to/saptanath_dev/scopeguard-ai-catch-scope-creep-before-it-costs-you-4mjk</guid>
      <description>&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;ScopeGuard AI is a local-first AI assistant for freelancers, independent developers, consultants, and small agencies who need to manage changing project requirements.&lt;/p&gt;

&lt;p&gt;Here's what it does:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Analyses client requests against the project's original agreed scope.&lt;/li&gt;
&lt;li&gt;Classifies requested changes as in_scope, potentially_out_of_scope, or needs_clarification.&lt;/li&gt;
&lt;li&gt;Provides supporting evidence by quoting relevant wording from the agreement.&lt;/li&gt;
&lt;li&gt;Explains its assessment and recommends the next step.&lt;/li&gt;
&lt;li&gt;Drafts professional client replies that users can review, edit, and copy.&lt;/li&gt;
&lt;li&gt;Stores projects and analysis history in a local SQLite database.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One important design principle is that an unmentioned feature isn't automatically an explicitly excluded feature.&lt;/p&gt;

&lt;p&gt;For example, if an agreement says "Do not implement checkout," ScopeGuard AI should identify checkout as explicitly excluded. If price sorting isn't mentioned, the system should recognise that the agreement may be insufficient to determine whether it was included.&lt;/p&gt;

&lt;p&gt;The goal isn't to replace a freelancer's judgement or provide legal advice. It's to make scope discussions more structured, evidence-based, and less uncomfortable.&lt;/p&gt;

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


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://drive.google.com/file/d/11RPnNoPAuKTIS1d5_f3uL69FE7MjIgHh/view?usp=sharing" rel="noopener noreferrer" class="c-link"&gt;
            dev3.mp4 - Google Drive
          &lt;/a&gt;
        &lt;/h2&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fssl.gstatic.com%2Fdocs%2Fdoclist%2Fimages%2Fdrive_favicon_2026_32dp.png" width="32" height="32"&gt;
          drive.google.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&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/Gitcarbonath" rel="noopener noreferrer"&gt;
        Gitcarbonath
      &lt;/a&gt; / &lt;a href="https://github.com/Gitcarbonath/ScopeGuard-AI" rel="noopener noreferrer"&gt;
        ScopeGuard-AI
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &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;ScopeGuard AI&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;An evidence-led, local-first assistant for reviewing client requests against an agreed project scope.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;ScopeGuard AI helps freelancers and small development teams review proposed changes before agreeing to them. It compares a client's request with the project's stated scope, separates the request into findings, quotes relevant scope evidence, and drafts a professional reply for the user to review.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;ScopeGuard AI is a decision-support tool, not a legal adviser. AI assessments can be incomplete or incorrect. Always review the evidence and use your own judgement before making commitments to a client.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Three-way classification:&lt;/strong&gt; &lt;code&gt;in_scope&lt;/code&gt;, &lt;code&gt;potentially_out_of_scope&lt;/code&gt;, and &lt;code&gt;needs_clarification&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Evidence-led findings:&lt;/strong&gt; relevant quotations from the agreed scope and an explanation of what the wording does—and does not—establish.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Explicit exclusion handling:&lt;/strong&gt; distinguishes a feature expressly excluded by the agreement from one that is simply not mentioned.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Separate findings for combined requests:&lt;/strong&gt; evaluates individual requested features when the analysis returns…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Gitcarbonath/ScopeGuard-AI" 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;p&gt;ScopeGuard AI combines an open-weight language model with a conventional application backend.&lt;/p&gt;

&lt;p&gt;Technology stack&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gemma 3 4B: The language model used for analysing client requests.&lt;/li&gt;
&lt;li&gt;Ollama: Runs the model locally and provides the inference interface.&lt;/li&gt;
&lt;li&gt;FastAPI: Handles API requests and backend analysis logic.&lt;/li&gt;
&lt;li&gt;Pydantic: Validates request and response data.&lt;/li&gt;
&lt;li&gt;SQLite: Stores project information and analysis history.&lt;/li&gt;
&lt;li&gt;React and Vite: Power the interactive frontend.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ol&gt;
&lt;li&gt;A user saves the original agreed scope for a project.&lt;/li&gt;
&lt;li&gt;The user enters a new client request.&lt;/li&gt;
&lt;li&gt;The backend sends the relevant context to the model for analysis.&lt;/li&gt;
&lt;li&gt;The application validates and refines the returned classification and supporting evidence.&lt;/li&gt;
&lt;li&gt;The frontend presents the findings, recommended action, and editable reply.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The most challenging part wasn't simply getting an LLM to classify a request. It was making sure the explanation remained grounded in the agreement.&lt;/p&gt;

&lt;p&gt;During testing, I encountered cases where the model was too cautious about routine visual changes, too confident when the original scope was vague, or selected a valid quotation that wasn't the most relevant evidence.&lt;/p&gt;

&lt;p&gt;I worked on improving feature-level classification, evidence selection, explicit-exclusion handling, and the distinction between missing information and an actual prohibition.&lt;br&gt;
These improvements don't eliminate model errors, but they make the reasoning easier to inspect. The user remains responsible for reviewing the result before making a decision.&lt;/p&gt;

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

&lt;p&gt;For this project, open innovation matters because of control over inference, data handling, and operating costs.&lt;/p&gt;

&lt;p&gt;Client agreements and project requirements can contain commercially sensitive information. By designing ScopeGuard AI around local inference with Ollama, I can analyse project information on my own machine without requiring a hosted model API for every request, provided the model endpoint is configured locally.&lt;/p&gt;

&lt;p&gt;Using an open-weight model also makes experimentation easier. I can try different supported models, compare their classifications, adjust the analysis prompts, and improve the evidence-handling logic without redesigning the entire application around a proprietary API.&lt;/p&gt;

&lt;p&gt;There are trade-offs. Local inference requires sufficient hardware, and smaller models can still make mistakes. Downloading a model may require an internet connection, and the privacy benefits depend on the endpoint and deployment configuration.&lt;br&gt;
For this use case, however, having control over where inference happens is a meaningful advantage.&lt;/p&gt;

&lt;p&gt;Open-source application code also lets other developers inspect the implementation, reproduce issues, contribute improvements, and adapt the project to their own workflows.&lt;/p&gt;

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

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

&lt;p&gt;ScopeGuard AI uses Gemma 3 4B through Ollama as its core language model for analysing client requests against agreed project scopes.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>REALITY.EXE: Some Problems Can't Be Solved on a Screen 🌿</title>
      <dc:creator>Saptadeep Nath</dc:creator>
      <pubDate>Sun, 11 Oct 2026 04:52:38 +0000</pubDate>
      <link>https://dev.to/saptanath_dev/realityexe-some-problems-cant-be-solved-on-a-screen-14na</link>
      <guid>https://dev.to/saptanath_dev/realityexe-some-problems-cant-be-solved-on-a-screen-14na</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;p&gt;REALITY.EXE is a scavenger-hunt-style game where the real world becomes the game environment.&lt;/p&gt;

&lt;p&gt;Instead of navigating a fictional map or completing conventional digital quests, players receive challenges that encourage them to explore their surroundings, observe everyday objects, and find evidence in the physical world.&lt;/p&gt;

&lt;p&gt;Here's how it works:&lt;/p&gt;

&lt;p&gt;🎯 AI-generated missions: Players receive challenges containing objectives and clues.&lt;/p&gt;

&lt;p&gt;🌎 Real-world exploration: Players must step away from their screens and search their physical environment for things that match the mission.&lt;/p&gt;

&lt;p&gt;📸 Photo-based evidence: Players submit photographs of what they discover.&lt;/p&gt;

&lt;p&gt;🤖 AI-powered analysis: A vision-language model analyses submitted images to help evaluate whether the evidence matches the challenge.&lt;/p&gt;

&lt;p&gt;🏆 XP and progression: Completing challenges rewards experience points and advances player progression.&lt;/p&gt;

&lt;p&gt;The game also includes a timer, hints, and a progression system to make exploration feel like a game rather than a checklist.&lt;/p&gt;

&lt;p&gt;The central idea is simple: use AI to encourage people to interact with the physical world, not just generate more content for them to consume on a screen.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://drive.google.com/file/d/13slxoySy0zVNZGcVZyhnaPa9PrEGQlEq/view?usp=sharing" rel="noopener noreferrer"&gt;https://drive.google.com/file/d/13slxoySy0zVNZGcVZyhnaPa9PrEGQlEq/view?usp=sharing&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/Gitcarbonath" rel="noopener noreferrer"&gt;
        Gitcarbonath
      &lt;/a&gt; / &lt;a href="https://github.com/Gitcarbonath/REALITY.exe" rel="noopener noreferrer"&gt;
        REALITY.exe
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      An AI-powered real-world exploration game where some problems can't be solved on a screen.
    &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;REALITY.EXE — v0.1&lt;/h1&gt;

&lt;/div&gt;
&lt;p&gt;A mobile-first PWA concept for Hacktoberfest 2026 "Touch Grass".&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Core loop&lt;/h2&gt;

&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Configure a case.&lt;/li&gt;
&lt;li&gt;Open-source AI generates the mystery.&lt;/li&gt;
&lt;li&gt;Put the phone away and explore the real world.&lt;/li&gt;
&lt;li&gt;Photograph evidence.&lt;/li&gt;
&lt;li&gt;Vision AI verifies it.&lt;/li&gt;
&lt;li&gt;Solve the case or receive a new clue.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Run locally&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Backend&lt;/h3&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-powershell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;cd backend
python &lt;span class="pl-k"&gt;-&lt;/span&gt;m venv .venv
.venv\\Scripts\\Activate.ps1
pip install &lt;span class="pl-k"&gt;-&lt;/span&gt;r requirements.txt
uvicorn app.main:app &lt;span class="pl-k"&gt;--&lt;/span&gt;reload&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Frontend&lt;/h3&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-powershell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;cd frontend
npm install
npm run dev&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Open the Vite URL on your computer. For phone testing on the same Wi-Fi, run Vite with &lt;code&gt;npm run dev -- --host&lt;/code&gt; and set &lt;code&gt;VITE_API_URL&lt;/code&gt; to the computer's LAN URL before starting the frontend.&lt;/p&gt;
&lt;p&gt;The backend currently uses Ollama if available and has safe fallback cases for development. Default models are &lt;code&gt;gemma3:4b&lt;/code&gt; for text and vision; change &lt;code&gt;TEXT_MODEL&lt;/code&gt; and &lt;code&gt;VISION_MODEL&lt;/code&gt; environment variables if needed.&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Gitcarbonath/REALITY.exe" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;p&gt;The project is open source, and the repository contains the application code and setup instructions.&lt;/p&gt;

&lt;p&gt;The main technologies are:&lt;/p&gt;

&lt;p&gt;Frontend: React + Vite&lt;br&gt;
Backend: Python + FastAPI&lt;br&gt;
AI inference: Ollama&lt;br&gt;
AI model: Gemma 3 4B, used for text generation and vision tasks&lt;br&gt;
Persistence: SQLite&lt;/p&gt;

&lt;p&gt;The architecture keeps the frontend, backend, and local inference separate, making it possible to develop and test the application without relying on a paid cloud AI API.&lt;/p&gt;

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

&lt;p&gt;Open innovation made this project possible without requiring a paid AI API.&lt;/p&gt;

&lt;p&gt;Using an open-weight model through Ollama gave me the ability to experiment with AI-powered gameplay on my own hardware. I could iterate on prompts, test challenge generation, and experiment with image analysis without having every interaction depend on a paid external service.&lt;/p&gt;

&lt;p&gt;It also gave me more control over the development environment and the way the model integrates with the application.&lt;/p&gt;

&lt;p&gt;For an independent developer working with a zero-budget constraint, that freedom matters. It makes experimentation accessible and allows the focus to remain on the idea itself rather than the cost of every model request.&lt;/p&gt;

&lt;p&gt;Open innovation also makes the project easier for other developers to inspect, learn from, modify, and extend.&lt;/p&gt;

&lt;p&gt;I see REALITY.EXE as an experiment in a broader possibility: AI doesn't have to keep us inside digital environments. It can help us engage more meaningfully with the world outside them.&lt;/p&gt;

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

&lt;p&gt;Open innovation made this project possible without requiring a paid AI API.&lt;/p&gt;

&lt;p&gt;Using an open-weight model through Ollama gave me the ability to experiment with AI-powered gameplay on my own hardware. I could iterate on prompts, test challenge generation, and experiment with image analysis without having every interaction depend on a paid external service.&lt;/p&gt;

&lt;p&gt;It also gave me more control over the development environment and the way the model integrates with the application.&lt;/p&gt;

&lt;p&gt;For an independent developer working with a zero-budget constraint, that freedom matters. It makes experimentation accessible and allows the focus to remain on the idea itself rather than the cost of every model request.&lt;/p&gt;

&lt;p&gt;Open innovation also makes the project easier for other developers to inspect, learn from, modify, and extend.&lt;/p&gt;

&lt;p&gt;I see REALITY.EXE as an experiment in a broader possibility: AI doesn't have to keep us inside digital environments. It can help us engage more meaningfully with the world outside them.&lt;/p&gt;

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

&lt;p&gt;This submission is for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass.&lt;/p&gt;

&lt;p&gt;I am entering Best Use of Gemma.&lt;/p&gt;

&lt;p&gt;Gemma 3 is the central AI component of REALITY.EXE. It runs locally through Ollama and is responsible for converting unstructured team updates into structured project events that drive the referee's analysis.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Group Project Referee: A local-AI assistant for understanding the real state of collaborative projects</title>
      <dc:creator>Saptadeep Nath</dc:creator>
      <pubDate>Sun, 04 Oct 2026 23:24:37 +0000</pubDate>
      <link>https://dev.to/saptanath_dev/group-project-referee-a-local-ai-assistant-for-understanding-the-real-state-of-collaborative-4ad6</link>
      <guid>https://dev.to/saptanath_dev/group-project-referee-a-local-ai-assistant-for-understanding-the-real-state-of-collaborative-4ad6</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;Group Project Referee is a local-AI project coordination assistant built for my hackathon teammates.&lt;/p&gt;

&lt;p&gt;Group projects have a surprisingly common problem: everyone gives updates, but nobody has a reliable picture of what is actually happening.&lt;/p&gt;

&lt;p&gt;One person says an API is finished. Someone else says they still cannot access it. Another person is waiting for a database migration. A blocker gets fixed, but the old blocker continues to make the project look unhealthy.&lt;/p&gt;

&lt;p&gt;I built Group Project Referee to act as a neutral referee for these situations.&lt;/p&gt;

&lt;p&gt;Team members simply submit updates in plain language, such as:&lt;br&gt;
"I am working on the authentication tests. I need Priya's database migration before I can run the tests."&lt;/p&gt;

&lt;p&gt;The referee extracts useful project information from those updates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Completed work&lt;/li&gt;
&lt;li&gt;Work currently in progress&lt;/li&gt;
&lt;li&gt;Blocked work&lt;/li&gt;
&lt;li&gt;Dependencies&lt;/li&gt;
&lt;li&gt;Risks&lt;/li&gt;
&lt;li&gt;Potential conflicts&lt;/li&gt;
&lt;li&gt;Resolved issues&lt;/li&gt;
&lt;li&gt;Suggested next actions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The important part is that the system keeps an evidence trail. AI conclusions can be traced back to the actual team updates that produced them.&lt;/p&gt;

&lt;p&gt;It doesn't try to decide who is lying or who is right. It identifies statements that may need clarification and lets the team investigate them.&lt;/p&gt;

&lt;p&gt;The result is a shared project dashboard that answers:&lt;br&gt;
"What is actually happening in our project right now?"&lt;/p&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://drive.google.com/file/d/1UFVnYGsj6oXr8sYMaWgfnMKzoPrJS7zS/view?usp=sharing" rel="noopener noreferrer"&gt;https://drive.google.com/file/d/1UFVnYGsj6oXr8sYMaWgfnMKzoPrJS7zS/view?usp=sharing&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/Gitcarbonath" rel="noopener noreferrer"&gt;
        Gitcarbonath
      &lt;/a&gt; / &lt;a href="https://github.com/Gitcarbonath/group-project-referee" rel="noopener noreferrer"&gt;
        group-project-referee
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &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;Group Project Referee&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;A local-AI assistant for understanding the real state of collaborative projects.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Built for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01" rel="nofollow"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Repository:&lt;/strong&gt; &lt;a href="https://github.com/Gitcarbonath/group-project-referee" rel="noopener noreferrer"&gt;https://github.com/Gitcarbonath/group-project-referee&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Why I built it&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Group projects are difficult to coordinate when updates arrive as informal messages. One teammate may finish an API while another still cannot access it; a blocker may be resolved without everyone noticing. Group Project Referee was built to help teammates see progress, dependencies, risks, and unresolved work without assigning blame.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What it does&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Teammates submit natural-language updates, such as:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I am working on the authentication tests. I need the database migration before I can run them.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The application stores the updates and uses &lt;strong&gt;Gemma 3 running locally through Ollama&lt;/strong&gt; to interpret project events. A project dashboard displays:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Completed, in-progress, and blocked work&lt;/li&gt;
&lt;li&gt;Risks and possible conflicts&lt;/li&gt;
&lt;li&gt;Dependencies and suggested next actions&lt;/li&gt;
&lt;li&gt;A chronological update timeline&lt;/li&gt;
&lt;li&gt;Evidence linking findings to…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Gitcarbonath/group-project-referee" 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;p&gt;The core of the project is Google's Gemma 3, running locally through Ollama.&lt;/p&gt;

&lt;p&gt;Instead of sending team updates to a hosted AI API, the application sends them to a local Gemma model for structured extraction.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                Team Member
                     │
                     │ Natural-language update
                     ▼
              React Dashboard
                     │
                     ▼
                FastAPI
                /       \
               /         \
              ▼           ▼
         SQLite        Ollama
                          │
                          ▼
                       Gemma 3
                          │
                          ▼
                 Structured events
                          │
                          ▼
                Project State Engine
                          │
                          ▼
                Referee Dashboard
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Gemma is responsible for understanding the natural-language updates and extracting events such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;completed work&lt;/li&gt;
&lt;li&gt;started work&lt;/li&gt;
&lt;li&gt;blockers&lt;/li&gt;
&lt;li&gt;dependencies&lt;/li&gt;
&lt;li&gt;risks&lt;/li&gt;
&lt;li&gt;conflicts&lt;/li&gt;
&lt;li&gt;resolutions
The backend then uses deterministic project-state logic to distinguish historical events from the current project state.
For example, if someone originally says:
"I can't access the login API."&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;and later says:&lt;br&gt;
"The login API access issue is fixed."&lt;/p&gt;

&lt;p&gt;the original blocker remains visible in the project timeline, but it should no longer be counted as an active blocker. This separation between history and current state became one of the most important design decisions in the project.&lt;/p&gt;

&lt;p&gt;The dashboard also supports multiple devices connecting to the same local FastAPI server, allowing team members on the same network to see updates from one another.&lt;/p&gt;

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

&lt;p&gt;For this project, using an open-weight model locally wasn't just a way to satisfy the challenge requirement. It directly changes what the application can be.&lt;/p&gt;

&lt;p&gt;A group-project referee deals with potentially sensitive information:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;unfinished work&lt;/li&gt;
&lt;li&gt;internal project problems&lt;/li&gt;
&lt;li&gt;disagreements between teammates&lt;/li&gt;
&lt;li&gt;technical blockers&lt;/li&gt;
&lt;li&gt;project architecture&lt;/li&gt;
&lt;li&gt;development progress&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sending all of that to a closed third-party AI API would introduce an external dependency and require trusting another service with the team's project data.&lt;/p&gt;

&lt;p&gt;With Gemma running locally, the team can keep its updates on its own machine.&lt;/p&gt;

&lt;p&gt;It also gives us much more control over the system. We can experiment with prompts, model versions, extraction formats and deterministic logic without redesigning the application around a proprietary API.&lt;/p&gt;

&lt;p&gt;Most importantly, the AI becomes a component we can run, inspect and build around rather than a remote service that the project depends on.&lt;/p&gt;

&lt;p&gt;That is what open innovation made possible here: a private, local AI referee that can become part of the project's infrastructure itself.&lt;/p&gt;

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

&lt;p&gt;I am entering Best Use of Gemma.&lt;/p&gt;

&lt;p&gt;Gemma 3 is the central AI component of Group Project Referee. It runs locally through Ollama and is responsible for converting unstructured team updates into structured project events that drive the referee's analysis.&lt;/p&gt;

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