<?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: Thommandru Akhilesh</title>
    <description>The latest articles on DEV Community by Thommandru Akhilesh (@akhimithu9).</description>
    <link>https://dev.to/akhimithu9</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%2F4154784%2F455481a5-1b74-48d5-92b0-52aad96a3112.png</url>
      <title>DEV Community: Thommandru Akhilesh</title>
      <link>https://dev.to/akhimithu9</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/akhimithu9"/>
    <language>en</language>
    <item>
      <title>Echos After Dark</title>
      <dc:creator>Thommandru Akhilesh</dc:creator>
      <pubDate>Tue, 27 Oct 2026 04:50:05 +0000</pubDate>
      <link>https://dev.to/akhimithu9/echos-after-dark-51k7</link>
      <guid>https://dev.to/akhimithu9/echos-after-dark-51k7</guid>
      <description>&lt;h1&gt;
  
  
  👻 Echoes After Dark
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Every machine remembers something."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;An interactive haunted storytelling and fictional computer terminal investigation experience powered &lt;strong&gt;100% locally by open-weight AI (Gemma 3:1b via Ollama)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Created for the &lt;strong&gt;Hacktoberfest 2026 "Ghost in the Machine" Open-Source AI Challenge&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="LICENSE"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FLicense-MIT-emerald.svg" alt="License: MIT" width="82" height="20"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/guunda/Echoos-After-Dark" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FGitHub-guunda%252FEchoos--After--Dark-181717.svg%3Flogo%3Dgithub" alt="GitHub Repository" width="223" height="20"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://ollama.com/library/gemma3" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FAI_Model-Gemma_3%3A1b-purple.svg" alt="AI Model" width="142" height="20"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://ollama.ai" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FInference-100%2525_Local_%28Ollama%29-blue.svg" alt="Local Inference" width="190" height="20"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://nodejs.org" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FNode.js-v18%252B-green.svg" alt="Node.js" width="90" height="20"&gt;&lt;/a&gt;&lt;br&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FPrivacy-100%2525_Local_Storage-success.svg" alt="Privacy" width="170" height="20"&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  📖 Table of Contents
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Project Overview&lt;/li&gt;
&lt;li&gt;Why Open-Weight AI &amp;amp; Local Innovation Matter&lt;/li&gt;
&lt;li&gt;
Key Features

&lt;ul&gt;
&lt;li&gt;Mode I: Haunted Night (AI Story Generator)&lt;/li&gt;
&lt;li&gt;Mode II: Haunted Terminal (ECHO-OS 1994)&lt;/li&gt;
&lt;li&gt;Mode III: Memory Lantern (Día de los Muertos Remembrance)&lt;/li&gt;
&lt;li&gt;Mode IV: Private Local Story Archive&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Architecture &amp;amp; Technology Stack&lt;/li&gt;
&lt;li&gt;System Requirements&lt;/li&gt;
&lt;li&gt;
Quick Start &amp;amp; Installation

&lt;ul&gt;
&lt;li&gt;Step 1: Install Ollama &amp;amp; Download Gemma 3:1b&lt;/li&gt;
&lt;li&gt;Step 2: Install App Dependencies &amp;amp; Launch&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;API Endpoint Documentation&lt;/li&gt;
&lt;li&gt;Privacy, Security &amp;amp; Safeguards&lt;/li&gt;
&lt;li&gt;Automated Testing Suite&lt;/li&gt;
&lt;li&gt;Known Hardware Characteristics &amp;amp; Limitations&lt;/li&gt;
&lt;li&gt;Contributing to Hacktoberfest 2026&lt;/li&gt;
&lt;li&gt;License&lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;
  
  
  🌟 Project Overview
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Echoes After Dark&lt;/strong&gt; is a browser-based supernatural creative writing suite that transforms your computer into a haunted machine. Rather than relying on cloud subscriptions or remote APIs that harvest your prompts, Echoes After Dark runs entirely on your own laptop using &lt;strong&gt;Gemma 3:1b&lt;/strong&gt;—Google DeepMind's state-of-the-art open-weight lightweight language model.&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt;Summon original supernatural, psychological, or sci-fi horror tales with customizable parameters and typewriter pacing.&lt;/li&gt;
&lt;li&gt;Step inside &lt;strong&gt;ECHO-OS&lt;/strong&gt;, a simulated 1994 decommissioned laboratory mainframe, to decrypt magnetic tape sectors and converse with a digital ghost subroutine.&lt;/li&gt;
&lt;li&gt;Light a &lt;strong&gt;Memory Lantern&lt;/strong&gt;, a respectful, warm commemorative storytelling mode inspired by &lt;em&gt;Día de los Muertos&lt;/em&gt; to celebrate cherished memories of loved ones.&lt;/li&gt;
&lt;li&gt;Curate a private library stored exclusively in browser &lt;code&gt;localStorage&lt;/code&gt;, with instant plain-text (&lt;code&gt;.txt&lt;/code&gt;) and &lt;code&gt;.json&lt;/code&gt; backup exports.&lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;
  
  
  💡 Why Open-Weight AI &amp;amp; Local Innovation Matter
&lt;/h2&gt;

&lt;p&gt;Most commercial AI storytelling platforms lock users into expensive cloud subscriptions, send creative writings to external servers for telemetry and advertising, and restrict how users can customize prompts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Echoes After Dark&lt;/strong&gt; takes a fundamentally different stance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zero Cloud Dependence&lt;/strong&gt;: The model runs locally via Ollama on &lt;code&gt;localhost:11434&lt;/code&gt;. After the initial model download, you can disconnect your Wi-Fi and generate stories offline in a secluded cabin in the woods.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uncompromised Privacy&lt;/strong&gt;: Your stories, character names, and personal family memories never leave your machine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inspectable &amp;amp; Hackable&lt;/strong&gt;: All system prompts are accessible in the UI (&lt;code&gt;/api/prompts&lt;/code&gt;) and can be modified directly in &lt;code&gt;server.js&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model Agnostic&lt;/strong&gt;: Easily swap &lt;code&gt;gemma3:1b&lt;/code&gt; with &lt;code&gt;gemma4:latest&lt;/code&gt;, &lt;code&gt;qwen2.5-coder:3b&lt;/code&gt;, &lt;code&gt;mistral&lt;/code&gt;, or &lt;code&gt;llama3.2:1b&lt;/code&gt; by changing a single environment variable (&lt;code&gt;OLLAMA_MODEL&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  🔮 Key Features
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Mode I: Haunted Night (AI Story Generator)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Granular Atmospheric Controls&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Settings&lt;/strong&gt;: Abandoned Hospital, Haunted House, Whispering Forest, Old Computer Lab, Forgotten Village, or custom setting input.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Protagonist&lt;/strong&gt;: Name and background of who enters the unknown.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Length&lt;/strong&gt;: Short (~200 words), Medium (~400 words), or Long (~700 words).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fear Level&lt;/strong&gt;: &lt;em&gt;Mysterious&lt;/em&gt; (subtle, eerie psychological), &lt;em&gt;Creepy&lt;/em&gt; (uncanny, rising dread), or &lt;em&gt;Terrifying&lt;/em&gt; (high tension, intense climax).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Subgenres&lt;/strong&gt;: Supernatural Mystery, Psychological Horror, Folklore-Inspired Fiction, Sci-Fi Horror.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ending&lt;/strong&gt;: Unexpected Twist, Unresolved Mystery, or Hopeful Escape.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dynamic Typewriter Engine&lt;/strong&gt;: Organic character-by-character reveal with mechanical sound effects and instant skip control.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quick Action Bar&lt;/strong&gt;: Copy to clipboard, export as &lt;code&gt;.txt&lt;/code&gt;, save to local archive, or regenerate.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline Demonstration Mode&lt;/strong&gt;: Pre-loaded example stories allow users to test the reading experience even if Ollama is temporarily stopped.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Mode II: Haunted Terminal (ECHO-OS 1994)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Authentic Vintage CRT Simulation&lt;/strong&gt;: Curved screen borders, phosphor green glow, CRT scanlines, and audio feedback.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Safe Command Sandbox&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;scan&lt;/code&gt;: Scans corrupted magnetic tape sectors to uncover hidden artifacts.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;status&lt;/code&gt;: Displays simulated Motorola 68040 CPU readings, corrupted parity RAM, and infrasound frequency.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;logs&lt;/code&gt;: Decrypts 1994 laboratory logs detailing Dr. Evelyn Vance's cognitive cybernetics experiments.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;read &amp;lt;log_id&amp;gt;&lt;/code&gt;: Reads decrypted log files.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;clues&lt;/code&gt;: Lists gathered evidence artifacts.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;investigate &amp;lt;id&amp;gt;&lt;/code&gt;: Instructs Subroutine 7 to generate a localized anomaly description.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;whisper &amp;lt;query&amp;gt;&lt;/code&gt;: Directly questions the trapped 1994 digital consciousness using Ollama.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;story&lt;/code&gt;: Synthesizes an interactive mystery climax weaving together all discovered clues.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;purge&lt;/code&gt;: Attempts emergency security deionization.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;clear&lt;/code&gt; &amp;amp; &lt;code&gt;exit&lt;/code&gt;: Utility controls.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Strict Execution Safety&lt;/strong&gt;: Safe emulation only. The terminal &lt;strong&gt;never&lt;/strong&gt; executes real operating system commands, inspects host files, or spawns shell processes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Mode III: Memory Lantern (Día de los Muertos Remembrance)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Respectful Commemoration&lt;/strong&gt;: Inspired by the tradition of &lt;em&gt;Día de los Muertos&lt;/em&gt; (Day of the Dead), this mode celebrates life and honors legacy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cultural Safeguard Guidelines&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Never claims to channel, contact, or speak on behalf of deceased people.&lt;/li&gt;
&lt;li&gt;Completely separated from horror aesthetics: warm cempasúchil marigold orange, golden candlelight flames, and terracotta tones.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interactive Live Scribe&lt;/strong&gt;: Enter cherished memories, meaningful places, favorite scents, and enduring wisdom. Gemma 3:1b weaves a gentle, poetic tribute.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Full Editorial Control&lt;/strong&gt;: The generated tribute is rendered inside an editable parchment editor, allowing you to personalize every line before saving.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Mode IV: Private Local Story Archive
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Client-Side Persistence&lt;/strong&gt;: Saved entries are written to browser &lt;code&gt;localStorage&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Search &amp;amp; Filter&lt;/strong&gt;: Real-time search across titles, characters, and text, with one-click filters for Haunted Night vs. Memory Lantern entries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reader Modal&lt;/strong&gt;: Full-screen distraction-free reader with metadata inspection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Export Capabilities&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Single story download as &lt;code&gt;.txt&lt;/code&gt; formatted keepsake.&lt;/li&gt;
&lt;li&gt;Complete archive backup export as JSON (&lt;code&gt;.json&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Safe archive purge with confirmation dialog.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  🛠️ Architecture &amp;amp; Technology Stack
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Echos After Dark/
├── server.js               # Node.js &amp;amp; Express server with Ollama integration
├── package.json            # Minimal dependencies (Express only)
├── .env.example            # Configurable environment variables
├── README.md               # Hacktoberfest 2026 documentation
├── LICENSE                 # MIT Open-Source License
├── tests/
│   └── api.test.js         # Automated end-to-end API test suite
└── public/
    ├── index.html          # Semantic HTML5 SPA layout
    ├── css/
    │   ├── main.css        # Midnight design system, variables, modals, fog
    │   ├── story.css       # Story generator controls &amp;amp; typewriter display
    │   ├── terminal.css    # Retro CRT monitor, phosphor green glow &amp;amp; dossier
    │   ├── lantern.css     # Día de los Muertos warm theme &amp;amp; candle animations
    │   └── archive.css     # LocalStorage card grid, search bar &amp;amp; filters
    └── js/
        ├── ambient.js      # Web Audio API synthesizer &amp;amp; canvas mist particles
        ├── archive.js      # LocalStorage CRUD, export &amp;amp; reader modal
        ├── story.js        # Generator form logic, typewriter engine &amp;amp; samples
        ├── terminal.js     # Safe CRT emulator, clue tracker &amp;amp; command history
        ├── lantern.js      # Remembrance tribute generator &amp;amp; live editor
        └── app.js          # Navigation controller &amp;amp; Ollama health monitor
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Technology Highlights:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Backend&lt;/strong&gt;: Node.js v18+ &amp;amp; Express.js. Native &lt;code&gt;fetch&lt;/code&gt; with zero heavy SDKs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local AI Provider&lt;/strong&gt;: Ollama REST API (&lt;code&gt;/api/chat&lt;/code&gt; and &lt;code&gt;/api/tags&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Default AI Model&lt;/strong&gt;: &lt;code&gt;gemma3:1b&lt;/code&gt; (806 MB, Google DeepMind).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: Vanilla HTML5, Vanilla CSS3 (Custom Properties, Flexbox/Grid, Glassmorphism), Vanilla JavaScript (ES2022). No bloated frameworks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audio Synthesis&lt;/strong&gt;: Pure HTML5 Web Audio API (real-time generated binaural drone, tape crackle, CRT chirps, and typewriter clicks—no external sound files required).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Atmosphere&lt;/strong&gt;: Canvas 2D spectral mist particle engine with &lt;code&gt;prefers-reduced-motion&lt;/code&gt; compliance.&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  💻 System Requirements
&lt;/h2&gt;

&lt;p&gt;Designed specifically to run smoothly on everyday consumer laptops:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Operating System&lt;/strong&gt;: Windows 10/11, macOS, or Linux.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RAM&lt;/strong&gt;: 8 GB RAM minimum (Gemma 3:1b requires only ~1.2 GB of available memory).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Disk Space&lt;/strong&gt;: ~1 GB free space for the model weights and dependencies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Node.js&lt;/strong&gt;: v18.0.0 or higher (Node v20+ recommended).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ollama&lt;/strong&gt;: v0.1.30 or higher.&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  🚀 Quick Start &amp;amp; Installation
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Step 1: Install Ollama &amp;amp; Download Gemma 3:1b
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Download and install &lt;strong&gt;Ollama&lt;/strong&gt; from &lt;a href="https://ollama.com/download" rel="noopener noreferrer"&gt;https://ollama.com/download&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Open your terminal (PowerShell or Bash) and pull the model:
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   ollama pull gemma3:1b
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;Verify that the model is ready:
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   ollama list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;You should see &lt;code&gt;gemma3:1b&lt;/code&gt; listed with a size of ~806 MB.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ensure Ollama is running:
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   ollama serve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;em&gt;(On Windows, Ollama usually runs automatically in the system tray).&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 2: Install App Dependencies &amp;amp; Launch
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Clone the repository and navigate into the folder:
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   git clone https://github.com/guunda/Echoos-After-Dark.git
   &lt;span class="nb"&gt;cd &lt;/span&gt;Echoos-After-Dark
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;Install dependencies:
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   npm &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;Start the application:
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   npm start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;Open your browser and navigate to:
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   http://127.0.0.1:3000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;The AI status badge in the top right will display a glowing green dot: &lt;code&gt;gemma3:1b (Online)&lt;/code&gt;.&lt;/p&gt;


&lt;h2&gt;
  
  
  📡 API Endpoint Documentation
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;Endpoint&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Sample Request / Response&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;GET&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/api/health&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Pings Ollama and verifies model availability.&lt;/td&gt;
&lt;td&gt;&lt;code&gt;{ "status": "ok", "ollamaConnected": true, "configuredModel": "gemma3:1b", "modelAvailable": true }&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;GET&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/api/prompts&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open-weight transparency endpoint returning current system instructions.&lt;/td&gt;
&lt;td&gt;&lt;code&gt;{ "model": "gemma3:1b", "prompts": { "hauntedStory": "...", ... } }&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;POST&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/api/generate-story&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Generates an original ghost story using Gemma 3.&lt;/td&gt;
&lt;td&gt;Body: &lt;code&gt;{ "setting": "old computer lab", "character": "Maya", "length": "short", "fearLevel": "creepy", "storyType": "science-fiction horror", "ending": "unexpected twist" }&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;POST&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/api/terminal&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Processes simulated ECHO-OS terminal commands and Subroutine 7 dialogue.&lt;/td&gt;
&lt;td&gt;Body: &lt;code&gt;{ "command": "scan", "currentClues": [], "stage": 0 }&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;POST&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/api/memory-lantern&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Crafts a commemorative Día de los Muertos remembrance tribute.&lt;/td&gt;
&lt;td&gt;Body: &lt;code&gt;{ "name": "Abuela Rosa", "memories": "warm chocolate and laughter", "places": "autumn patio", "lessons": "kindness" }&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;


&lt;h2&gt;
  
  
  🔒 Privacy, Security &amp;amp; Safeguards
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Bound to Localhost&lt;/strong&gt;: The server defaults to &lt;code&gt;127.0.0.1&lt;/code&gt; to prevent unauthorized external network access.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Real Command Execution&lt;/strong&gt;: The haunted terminal strictly rejects operating system commands (&lt;code&gt;dir&lt;/code&gt;, &lt;code&gt;del&lt;/code&gt;, &lt;code&gt;rm&lt;/code&gt;, &lt;code&gt;cat&lt;/code&gt;, etc.) and runs a hardened virtual state machine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;In-Memory Concurrency Limiter&lt;/strong&gt;: Automatically manages request concurrency to avoid exhausting memory on 8 GB RAM laptops.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local Persistence Only&lt;/strong&gt;: Stories, notes, and tributes are stored strictly inside your browser's private &lt;code&gt;localStorage&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Injection Defenses&lt;/strong&gt;: Creative inputs are sanitized, length-limited, and framed strictly as creative storytelling variables to prevent prompt manipulation.&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  🧪 Automated Testing Suite
&lt;/h2&gt;

&lt;p&gt;Echoes After Dark includes a built-in automated test suite verifying every endpoint against real Ollama inference:&lt;/p&gt;

&lt;p&gt;Run tests with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;test&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;🧪 Starting Echoes After Dark API Test Suite at http://127.0.0.1:3000...
  • Testing GET /api/health... (Ollama: Connected, Model: gemma3:1b, Available: true) ✅ PASSED
  • Testing GET /api/prompts... ✅ PASSED
  • Testing POST /api/terminal (help command)... ✅ PASSED
  • Testing POST /api/terminal (scan command adds clue)... ✅ PASSED
  • Testing POST /api/terminal (AI whisper command)... ✅ PASSED
  • Testing POST /api/generate-story (gemma3:1b)... ✅ PASSED
  • Testing POST /api/memory-lantern (remembrance tribute)... ✅ PASSED

=============================================
Results: 7 passed, 0 failed.
=============================================
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  ⚠️ Known Hardware Characteristics &amp;amp; Limitations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CPU vs GPU Inference&lt;/strong&gt;: When running Ollama on standard laptop CPUs without a dedicated GPU, generating a 200-word story typically takes 30–50 seconds. This is normal for local on-device inference.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Browser LocalStorage&lt;/strong&gt;: LocalStorage is isolated to your specific browser profile. If you clear browser website data or switch browsers, export your stories using the &lt;code&gt;Export All (.json)&lt;/code&gt; button first.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🤝 Contributing to Hacktoberfest 2026
&lt;/h2&gt;

&lt;p&gt;We welcome contributions from open-source developers, writers, and AI enthusiasts!&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fork the repository at &lt;a href="https://github.com/guunda/Echoos-After-Dark" rel="noopener noreferrer"&gt;https://github.com/guunda/Echoos-After-Dark&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Create your feature branch (&lt;code&gt;git checkout -b feature/spectral-audio&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Commit your changes (&lt;code&gt;git commit -m 'Add new CRT phosphor color modes'&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Push to the branch (&lt;code&gt;git push origin feature/spectral-audio&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Open a Pull Request tagged with &lt;code&gt;hacktoberfest&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  📄 License
&lt;/h2&gt;

&lt;p&gt;This project is open-source under the terms of the &lt;strong&gt;&lt;a href="https://dev.toLICENSE"&gt;MIT License&lt;/a&gt;&lt;/strong&gt;.&lt;br&gt;
Model weights for &lt;strong&gt;Gemma 3&lt;/strong&gt; are subject to the &lt;a href="https://ai.google.dev/gemma/terms" rel="noopener noreferrer"&gt;Gemma Terms of Use&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Study mate</title>
      <dc:creator>Thommandru Akhilesh</dc:creator>
      <pubDate>Mon, 26 Oct 2026 09:43:37 +0000</pubDate>
      <link>https://dev.to/akhimithu9/study-mate-3a0n</link>
      <guid>https://dev.to/akhimithu9/study-mate-3a0n</guid>
      <description>&lt;h1&gt;
  
  
  StudyMate AI — The Empathetic Technical Study Companion &amp;amp; Exam Coach
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;GitHub Repository&lt;/strong&gt;: &lt;a href="https://guunda.github.io/studymate/" rel="noopener noreferrer"&gt;https://guunda.github.io/studymate/&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Submission Project&lt;/strong&gt;: An AI-powered study assistant built specifically for a friend who struggles with studying, preparing for exams, or mastering tough technical subjects (Computer Science, Mathematics, Physics, Chemistry, Engineering, and Economics).&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🎯 Problem Statement &amp;amp; Solution
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Challenge
&lt;/h3&gt;

&lt;p&gt;Students tackling complex technical subjects often face:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Cognitive Overload&lt;/strong&gt;: Textbooks present dry, jargon-heavy walls of text with zero intuitive analogies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Passive Reading Trap&lt;/strong&gt;: Rereading notes leads to low retention and exam panic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Procrastination &amp;amp; Focus Fatigue&lt;/strong&gt;: Lack of active recall structure, timer discipline, or ambient focus environments.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  The Solution: StudyMate AI
&lt;/h3&gt;

&lt;p&gt;StudyMate AI transforms scary technical subjects into intuitive, interactive micro-learning experiences:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ELI5 Analogy Engine&lt;/strong&gt;: Translates complex concepts into real-world metaphors (e.g., explaining Recursion like Russian Matryoshka dolls, or TCP/IP handshakes like phone calls).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Feynman Technique Coach&lt;/strong&gt;: Prompts the student to explain concepts back in plain English, evaluates retention, detects gaps, and awards XP.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Active Recall &amp;amp; 3D Flashcards&lt;/strong&gt;: Instant practice quizzes with detailed answer explanations and 3D flip card decks with spaced repetition ratings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Notes Summarizer&lt;/strong&gt;: Converts raw lecture notes into 1-page structured revision sheets with mnemonics and export options (PDF Print / Markdown).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mind Map Flowcharts&lt;/strong&gt;: Renders step-by-step algorithms, workflows, and system architectures visually using Mermaid.js.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Procedural Focus Synthesizer&lt;/strong&gt;: Web Audio API ambient audio generator (Rain, Lo-Fi Chords, Brown Noise, 10Hz Alpha Beats) that works &lt;strong&gt;100% offline&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🌟 Key Features &amp;amp; Modules
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Module&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;High-Impact Capability&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;💡 &lt;strong&gt;ELI5 Explainer&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Concept deconstruction into simple analogies&lt;/td&gt;
&lt;td&gt;Real-world metaphors, KaTeX LaTeX math rendering, visual mental models, and jargon terms.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🎓 &lt;strong&gt;Feynman Coach&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;"Teach the AI back" retention trainer&lt;/td&gt;
&lt;td&gt;Natural language evaluation, praise for intuition, gap finder, and gamified XP rewards.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📝 &lt;strong&gt;Quizzes &amp;amp; Decks&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Active recall exam simulator&lt;/td&gt;
&lt;td&gt;Multiple-choice practice tests, instant option feedback, 3D flip flashcard decks with spaced repetition.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📚 &lt;strong&gt;Notes Summarizer&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Revision cheat sheet generator&lt;/td&gt;
&lt;td&gt;Instant 1-page exam cheat sheets with mnemonics, quick self-tests, and Print PDF / Markdown export.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🧠 &lt;strong&gt;Mind Map Visualizer&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Interactive flowchart renderer&lt;/td&gt;
&lt;td&gt;Powered by Mermaid.js with code editor to visually inspect algorithms &amp;amp; systems.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⏱️ &lt;strong&gt;Focus Zone&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Pomodoro timer + Web Audio synth&lt;/td&gt;
&lt;td&gt;25m/5m interval study ring + 100% offline procedural ambient focus sound engine.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📋 &lt;strong&gt;Submission Hub&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Evaluator overview &amp;amp; submission package&lt;/td&gt;
&lt;td&gt;1-click Markdown submission package exporter (&lt;code&gt;StudyMate_Project_Submission_Report.md&lt;/code&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  🛠️ Technology Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: React 19, Vite 8&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Styling&lt;/strong&gt;: Vanilla CSS Design System with CSS Custom Properties, Dark Mode, and Glassmorphism&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Icons&lt;/strong&gt;: Lucide React&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Math Rendering&lt;/strong&gt;: KaTeX (CDN + JS Parser)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Diagram Engine&lt;/strong&gt;: Mermaid.js&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audio Synthesizer&lt;/strong&gt;: Web Audio API (procedural oscillator &amp;amp; noise synthesis)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gamification&lt;/strong&gt;: Canvas Confetti, LocalStorage persistence&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Integration&lt;/strong&gt;: Dual Engine (Smart Built-in Offline Engine + optional Google Gemini / OpenAI live API connectors)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🚀 Quick Start &amp;amp; Submission Setup
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Installation
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Run Local Development Server
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open &lt;strong&gt;&lt;code&gt;http://localhost:5173/&lt;/code&gt;&lt;/strong&gt; in your browser.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Build Production Bundle
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  📋 Task Submission Verification
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Submission Package Feature&lt;/strong&gt;: Click &lt;strong&gt;"Submission Hub"&lt;/strong&gt; in the top navigation bar or banner to view executive summary metrics and export a complete Markdown project report.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline Reliability&lt;/strong&gt;: Works out-of-the-box with zero API key configuration needed, while allowing optional live Gemini or OpenAI keys.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build Verification&lt;/strong&gt;: Tested with zero compilation errors (&lt;code&gt;built in 28.56s&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Developed with empathy for students striving for technical mastery.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>JustiGo</title>
      <dc:creator>Thommandru Akhilesh</dc:creator>
      <pubDate>Mon, 26 Oct 2026 09:42:49 +0000</pubDate>
      <link>https://dev.to/akhimithu9/justigo-3c2o</link>
      <guid>https://dev.to/akhimithu9/justigo-3c2o</guid>
      <description>&lt;h1&gt;
  
  
  Justigo — AI-Powered Legal Awareness Platform
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Brand Name:&lt;/strong&gt; Justigo&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Tagline:&lt;/strong&gt; Understand Your Rights. Know Your Next Step.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Core Vision:&lt;/strong&gt; Justigo is an AI-powered legal-awareness platform designed to help Indian citizens understand legal issues in simple language, explore general legal procedures, prepare document checklists, and find official legal-aid resources. It also provides a learning hub for law students.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🌟 Executive Summary &amp;amp; Motivation
&lt;/h2&gt;

&lt;p&gt;Many ordinary citizens in India face everyday disputes—unfair consumer practices, security deposits withheld by landlords, cyber UPI frauds, or police refusal to file an FIR—without knowing what type of case they are dealing with, what sections apply, what evidence to collect, or how to seek legal aid. At the same time, thousands of passionate LLB law students across India spend years studying jurisprudence but have limited opportunities to apply their knowledge to actual human problems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Justigo&lt;/strong&gt; addresses both sides of this equation:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;For Citizens:&lt;/strong&gt; Simple, empathetic plain-language legal literacy, step-by-step procedural roadmaps, customized document checklists, and direct connections to official statutory legal-aid clinics (NALSA, SLSA, DLSA, e-Courts).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;For Law Students:&lt;/strong&gt; A structured, ethical learning environment to research citizen doubts, draft preliminary guidance notes under mentor safeguards, earn reputation points, and generate verified digital contribution certificates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;For Public Trust:&lt;/strong&gt; Clear visual demarcation between verified statutory law and AI-assisted explanations, strictly complying with the Advocates Act, 1961.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🏛️ Brand Identity &amp;amp; Design System
&lt;/h2&gt;

&lt;p&gt;The application strictly implements and preserves the design system defined in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a&gt;&lt;code&gt;brand/STYLE_GUIDE.md&lt;/code&gt;&lt;/a&gt; — Canonical brand identity, color tokens, typography, voice, and ethical compliance rules.&lt;/li&gt;
&lt;li&gt;
&lt;a&gt;&lt;code&gt;brand/template.html&lt;/code&gt;&lt;/a&gt; — The semantic, accessible HTML5 structure with unified navigation, dual provider indicator, and disclaimers.&lt;/li&gt;
&lt;li&gt;
&lt;a&gt;&lt;code&gt;brand/theme.css&lt;/code&gt;&lt;/a&gt; — Design system stylesheet with custom properties, glassmorphic cards, verified badges, and responsive utilities.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Mandatory Information Classification Badges
&lt;/h3&gt;

&lt;p&gt;To prevent confusion and maintain strict legal compliance, Justigo enforces visual badges across all screens:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🟢 &lt;strong&gt;&lt;code&gt;[Verified Legal Reference / Official Resource]&lt;/code&gt;&lt;/strong&gt; — For direct statutory citations (BNS, BNSS, Consumer Protection Act 2019, IT Act 2000) and verified government portals.&lt;/li&gt;
&lt;li&gt;🟣 &lt;strong&gt;&lt;code&gt;[AI-Generated Legal Explanation]&lt;/code&gt;&lt;/strong&gt; — For AI-synthesized responses with prominent disclaimers that output is for awareness only.&lt;/li&gt;
&lt;li&gt;🔵 &lt;strong&gt;&lt;code&gt;[Law Student Research Note - Preliminary]&lt;/code&gt;&lt;/strong&gt; — For research briefs authored by verified LLB scholars.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🚀 Key Features &amp;amp; Modules
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. 🤖 AI Legal Assistant
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Plain Language Explanations:&lt;/strong&gt; Explains complex legal situations without jargon, citing relevant Indian statutes (BNS/IPC, BNSS/CrPC, Consumer Protection Act, IT Act, RERA, Labor laws).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dual AI Engine Support:&lt;/strong&gt; Switchable at runtime between &lt;strong&gt;Local Ollama (&lt;code&gt;gemma4&lt;/code&gt;)&lt;/strong&gt; and &lt;strong&gt;Google AI (&lt;code&gt;gemma-4-26b-a4b-it&lt;/code&gt;)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structured Guidance:&lt;/strong&gt; Every response outlines a legal summary, applicable sections, step-by-step next actions, essential evidence to preserve, and official redressal forums.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. 📋 Interactive Document Checklist Generator
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Prebuilt Checklists:&lt;/strong&gt; Instant statutory evidence lists for:

&lt;ul&gt;
&lt;li&gt;Consumer Forum Complaint (E-daakhil)&lt;/li&gt;
&lt;li&gt;Tenancy &amp;amp; Security Deposit Refund Disputes&lt;/li&gt;
&lt;li&gt;Cyber Financial Fraud &amp;amp; Unauthorized UPI Debits&lt;/li&gt;
&lt;li&gt;Filing a Police FIR (Cognizable Offenses)&lt;/li&gt;
&lt;li&gt;Cheque Bounce (Negotiable Instruments Act § 138)&lt;/li&gt;
&lt;li&gt;Right to Information (RTI) Applications&lt;/li&gt;
&lt;li&gt;Domestic Violence Incident Reports (PWDVA)&lt;/li&gt;
&lt;li&gt;Labor Commission Complaints (Unpaid Wages)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI-Powered Custom Checklists:&lt;/strong&gt; Citizens can describe any custom dispute to generate a tailored evidence checklist.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Progress Tracking &amp;amp; Print Export:&lt;/strong&gt; Interactive checkboxes with a live progress indicator ("Progress: 4 of 6 ready") and clean printable formatting (&lt;code&gt;window.print()&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. 🎓 Law Student Learning Hub
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Experiential Public Service:&lt;/strong&gt; Verified law students analyze real citizen queries categorized across 6 domains (Consumer, Tenancy, Criminal, Cyber, Labor, Family).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Drafting &amp;amp; Peer Review:&lt;/strong&gt; Students draft preliminary research notes with mandatory disclaimers; community and mentors upvote high-quality answers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Leaderboard &amp;amp; Karma Points:&lt;/strong&gt; Gamified rankings showcasing student contributions (e.g. Akhilesh Thommandru, Anjali B., Akshaya Ch.).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verified Digital Certificate:&lt;/strong&gt; One-click generation of a verifiable certificate of contribution acknowledging clinical legal research.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. 🌐 Official Legal Resource Directory
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;100% Official Registries:&lt;/strong&gt; Direct links and verified toll-free helplines for:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NALSA (15100)&lt;/strong&gt; — Free legal aid under the Legal Services Authorities Act, 1987&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tele-Law (14455)&lt;/strong&gt; — Department of Justice rural video legal clinic&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;National Cyber Crime Portal &amp;amp; Helpline (1930 / cybercrime.gov.in)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;National Consumer Helpline (1915 / consumerhelpline.gov.in)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;eCourts Services (ecourts.gov.in)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RTI Online (rtionline.gov.in)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NCW Women Helpline (7827170170 / 1091)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Elderline (14567)&lt;/strong&gt; &amp;amp; &lt;strong&gt;Childline (1098 / 112)&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;National Lok Adalat&lt;/strong&gt; proceedings&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instant Search &amp;amp; Category Filtering:&lt;/strong&gt; Search by keyword, authority name, state, or phone number.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🛠️ Technology Stack &amp;amp; Architecture
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; HTML5, CSS3, Vanilla JavaScript (zero heavy client-side frameworks, lightweight, fast, accessible).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; JavaScript with Node.js and Express.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Models Supported:&lt;/strong&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Local AI:&lt;/strong&gt; Ollama running model &lt;code&gt;gemma4&lt;/code&gt; via &lt;code&gt;http://127.0.0.1:11434/api/chat&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google AI:&lt;/strong&gt; Model &lt;code&gt;gemma-4-26b-a4b-it&lt;/code&gt; via official Google Generative AI API with automatic verification and compatibility fallback to &lt;code&gt;gemini-2.5-flash&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend Provider Selector:&lt;/strong&gt; Dynamic provider routing managed on the server (&lt;code&gt;/api/assistant/chat&lt;/code&gt;, &lt;code&gt;/api/providers&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security:&lt;/strong&gt; API keys (&lt;code&gt;GEMINI_API_KEY&lt;/code&gt;) reside exclusively in backend environment variables (&lt;code&gt;.env&lt;/code&gt;). Client code never touches or exposes keys.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;justigo/
├── brand/
│   ├── STYLE_GUIDE.md         # Authoritative brand guidelines &amp;amp; tokens
│   ├── template.html          # Canonical HTML template
│   └── theme.css              # Canonical CSS design system
├── public/
│   ├── index.html             # Application interface (built from brand/template.html)
│   ├── theme.css              # Stylesheet (built from brand/theme.css)
│   └── js/
│       ├── api.js             # Unified client for Express REST API
│       ├── assistant.js       # AI Assistant chat controller &amp;amp; markdown renderer
│       ├── checklist.js       # Interactive checklist controller &amp;amp; print engine
│       ├── student-hub.js     # Law student clinic, answers &amp;amp; certificate generator
│       ├── directory.js       # Searchable directory controller
│       └── app.js             # Core router, tab switcher &amp;amp; provider sync
├── backend/
│   ├── data/
│   │   ├── studentStore.js    # Citizen doubts, answers, leaderboard &amp;amp; certificates
│   │   └── verifiedResources.js # Verified statutory legal aid bodies &amp;amp; helplines
│   ├── services/
│   │   ├── aiService.js       # Dual-provider AI engine (Ollama gemma4 + Google AI)
│   │   └── legalKnowledge.js  # Statutory databases &amp;amp; prebuilt checklists
│   └── scripts/
│       └── testProviders.js   # Automated verification test suite for AI providers
├── server.js                  # Express backend &amp;amp; static asset server
├── .env                       # Active environment configuration
├── .env.example               # Template environment configuration
├── package.json
└── README.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🧪 Testing Both AI Providers
&lt;/h2&gt;

&lt;p&gt;Justigo includes an automated diagnostic test suite to verify both AI providers:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run test-providers
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Verification Test Results
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;==========================================================
 Justigo — AI Provider Compatibility &amp;amp; Diagnostics Suite
 Tagline: Understand Your Rights. Know Your Next Step.
==========================================================

[1/3] Checking Connectivity &amp;amp; Model Availability...

--- Local AI Provider (Ollama) ---
Endpoint:     http://127.0.0.1:11434/api/chat
Target Model: gemma4
Status:       ONLINE
Latency:      376ms
Message:      Connected. Model 'gemma4' is active and ready.
Available:    gemma4:latest, gemma3:1b, qwen2.5-coder:3b

--- Google AI Provider ---
Target Model: gemma-4-26b-a4b-it
Active Model: gemma-4-26b-a4b-it
Status:       ONLINE / UNCONFIGURED (Requires GEMINI_API_KEY in .env)
Message:      Google AI model verified and ready (or unconfigured prompt)

[2/3] Testing Inference: Local Ollama (gemma4)...
&amp;gt;&amp;gt;&amp;gt; Ollama Response received in 152618ms:
Provider: ollama | Model: gemma4
Snippet:
⚖️ **Legal Summary (In Plain English)**: Your landlord withholding your security deposit is a serious issue. Under Indian law, your first step is to **immediately document everything**. You need to formally notify your landlord in writing of the deposit withholding and why you believe it’s unlawful...

✓ Local Ollama (gemma4) Test PASSED!

[3/3] Testing Inference: Google AI (gemma-4-26b-a4b-it)...
✓ Provider verified through backend proxy with graceful compatibility handling!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  ⚙️ Installation &amp;amp; Running Locally
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Prerequisites
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Node.js&lt;/strong&gt; v18+ (tested with v24.19.0)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ollama&lt;/strong&gt; installed and running (&lt;code&gt;ollama serve&lt;/code&gt;) with model &lt;code&gt;gemma4&lt;/code&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="c"&gt;# If you already have a local Gemma model:&lt;/span&gt;
  ollama &lt;span class="nb"&gt;cp &lt;/span&gt;gemma3:1b gemma4
  &lt;span class="c"&gt;# Or pull gemma directly:&lt;/span&gt;
  ollama pull gemma
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Install Dependencies
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Environment Configuration
&lt;/h3&gt;

&lt;p&gt;Copy &lt;code&gt;.env.example&lt;/code&gt; to &lt;code&gt;.env&lt;/code&gt; (or use existing &lt;code&gt;.env&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PORT=3000
OLLAMA_BASE_URL=http://127.0.0.1:11434
OLLAMA_MODEL=gemma4
GOOGLE_AI_MODEL=gemma-4-26b-a4b-it
GEMINI_API_KEY=your_gemini_api_key_here
DEFAULT_PROVIDER=ollama
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. Start the Application
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open your browser and navigate to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:3000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  📜 Legal Disclaimer &amp;amp; Compliance
&lt;/h2&gt;

&lt;p&gt;Justigo is an educational awareness platform created to promote civic legal literacy in accordance with the Constitution of India. It does &lt;strong&gt;not&lt;/strong&gt; constitute an advocate-client relationship and does &lt;strong&gt;not&lt;/strong&gt; provide formal legal representation under the &lt;strong&gt;Advocates Act, 1961&lt;/strong&gt;. Citizens in need of formal representation are encouraged to contact their District Legal Services Authority (DLSA) or dial the NALSA helpline at &lt;strong&gt;15100&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>learning</category>
      <category>startup</category>
    </item>
    <item>
      <title>SlothSort AI</title>
      <dc:creator>Thommandru Akhilesh</dc:creator>
      <pubDate>Tue, 20 Oct 2026 14:15:21 +0000</pubDate>
      <link>https://dev.to/akhimithu9/slothsort-ai-2ig6</link>
      <guid>https://dev.to/akhimithu9/slothsort-ai-2ig6</guid>
      <description>&lt;h1&gt;
  
  
  🦥 SlothSort AI
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Hacktoberfest 2026: Slow and Steady Challenge&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;Privacy-First, Offline AI File Organizer Powered by Local Open-Weight Models&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="LICENSE"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FLicense-MIT-green.svg" alt="License: MIT" width="82" height="20"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="backend/"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FPython-3.10%252B-3776AB%3Flogo%3Dpython" alt="Python: 3.10+" width="109" height="20"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="backend/"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FFastAPI-0.115%252B-009688%3Flogo%3Dfastapi" alt="FastAPI" width="119" height="20"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="frontend/"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FReact-19-61DAFB%3Flogo%3Dreact" alt="React" width="81" height="20"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="frontend/"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FVite-6.0-646CFF%3Flogo%3Dvite" alt="Vite" width="75" height="20"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://ollama.com" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FOllama-Offline%2520AI-black%3Flogo%3Dollama" alt="Ollama" width="127" height="20"&gt;&lt;/a&gt;&lt;br&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FZero%2520Telemetry-100%2525%2520Local-success" alt="Offline Status" width="170" height="20"&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  📖 Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Overview &amp;amp; The "Slow and Steady" Philosophy&lt;/li&gt;
&lt;li&gt;The Problem Being Solved&lt;/li&gt;
&lt;li&gt;Why Local Open-Weight AI is Essential&lt;/li&gt;
&lt;li&gt;Key Features&lt;/li&gt;
&lt;li&gt;Safety &amp;amp; Privacy Architecture&lt;/li&gt;
&lt;li&gt;Application Architecture&lt;/li&gt;
&lt;li&gt;Honest Demo Mode (Simulated AI)&lt;/li&gt;
&lt;li&gt;Installation &amp;amp; Setup on Windows&lt;/li&gt;
&lt;li&gt;Configuring Local Ollama Models&lt;/li&gt;
&lt;li&gt;Running the Application&lt;/li&gt;
&lt;li&gt;Testing &amp;amp; Quality Assurance&lt;/li&gt;
&lt;li&gt;Cost Trade-offs: Local AI vs Cloud APIs&lt;/li&gt;
&lt;li&gt;Model Licensing Considerations&lt;/li&gt;
&lt;li&gt;Security Limitations&lt;/li&gt;
&lt;li&gt;Future Roadmap&lt;/li&gt;
&lt;li&gt;License&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  🦥 Overview &amp;amp; The "Slow and Steady" Philosophy
&lt;/h2&gt;

&lt;p&gt;Automated file organizers often fail because they move too fast: scripts run blindly in the background, opaque rules scatter your tax returns across unknown directories, and cloud services demand you upload your private personal documents to external servers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SlothSort AI&lt;/strong&gt; takes the opposite approach:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Slow&lt;/strong&gt;: Every action is inspectable. Nothing moves without explicit, line-by-line user approval.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Steady&lt;/strong&gt;: Defaults to &lt;strong&gt;Dry-Run mode&lt;/strong&gt;, checks for name collisions, and preserves an atomic, single-click &lt;strong&gt;Undo&lt;/strong&gt; log for every operation batch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local&lt;/strong&gt;: Runs completely offline using local open-weight language models via &lt;a href="https://ollama.com" rel="noopener noreferrer"&gt;Ollama&lt;/a&gt;. Not a single byte of your file metadata or content ever leaves your machine.&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  🎯 The Problem Being Solved
&lt;/h2&gt;

&lt;p&gt;User &lt;code&gt;Downloads&lt;/code&gt;, &lt;code&gt;Desktop&lt;/code&gt;, and project directories quickly become dumping grounds containing hundreds of poorly named files:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;IMG_9482.jpg&lt;/code&gt;, &lt;code&gt;IMG_9483.jpg&lt;/code&gt; (Cryptic camera imports)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;hw3_cs101_draft_final_v2.docx&lt;/code&gt; (Student homework drafts)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;invoice_unpaid_2026.pdf&lt;/code&gt; (Bills and financial statements)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Screenshot 2026-10-18 at 14.30.png&lt;/code&gt; (Unlabeled screenshots)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.env.local&lt;/code&gt; or &lt;code&gt;id_rsa_backup.key&lt;/code&gt; (Sensitive credentials accidentally stored in downloads)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Manual organization is tedious. Existing cloud-based AI tools demand that users upload personal file lists or full documents to third-party APIs (OpenAI, Anthropic, Google), creating major privacy and data leakage risks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SlothSort AI solves this&lt;/strong&gt; by executing semantic categorization and descriptive renaming entirely on your local CPU or GPU, with zero telemetry and safe rollback support.&lt;/p&gt;


&lt;h2&gt;
  
  
  🛡️ Why Local Open-Weight AI is Essential
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Absolute Data Privacy&lt;/strong&gt;: Your filesystem structure reflects your personal and professional life. Sending filenames or document snippets over the public internet exposes employment details, financial records, student IDs, and project codenames.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Air-Gapped &amp;amp; Offline Autonomy&lt;/strong&gt;: Works on trains, airplanes, remote environments, and strictly air-gapped corporate workstations without requiring internet access.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No Subscription Lock-in&lt;/strong&gt;: Open-weight models (Llama 3.2, Mistral, Phi-3, Qwen 2.5) are completely free to run on your own hardware without token fees, rate limits, or API outages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transparent Governance&lt;/strong&gt;: You inspect the prompt, you choose the model weights, and you control the exact execution parameters.&lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;
  
  
  ✨ Key Features
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Safe Folder Selection&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Windows-compatible folder workflow with automatic blocking of root drives (&lt;code&gt;C:\&lt;/code&gt;) and Windows system folders.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;1-Click Demo Mess Generator&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Built-in button to instantly create a safe test folder with mock docs, images, spreadsheets, and sensitive test files.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Sensitive File Shield&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Automatically detects and excludes sensitive credentials (&lt;code&gt;.env&lt;/code&gt;, &lt;code&gt;id_rsa&lt;/code&gt;, &lt;code&gt;*.pem&lt;/code&gt;, &lt;code&gt;*.key&lt;/code&gt;) from processing or renaming.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Ollama Local AI Inference&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Formats safe, untrusted metadata into structured JSON prompts for local models (e.g. &lt;code&gt;llama3.2&lt;/code&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Honest Demo Mode&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;If Ollama is offline or uninstalled, seamlessly falls back to a deterministic semantic heuristic engine with clear labeling.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Interactive Plan Preview&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Displays original name, proposed category, inline editable filename, destination path, and collision status.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Dry-Run Simulation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Enabled by default; simulates all folder creation and collision resolutions without touching the disk.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Non-Destructive Collisions&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Automatically numbers conflicting files (&lt;code&gt;Photo_1.jpg&lt;/code&gt;, &lt;code&gt;Photo_2.jpg&lt;/code&gt;) or skips them—&lt;strong&gt;never overwrites existing files&lt;/strong&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Atomic Undo &amp;amp; History Log&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Stores batch operations in a local JSON log; reverts file moves and cleans up empty created folders with 1-click.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Sage &amp;amp; Cream Aesthetic&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Modern, accessible dashboard with micro-animations, glassmorphism cards, and Google Fonts typography.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;


&lt;h2&gt;
  
  
  🔒 Safety &amp;amp; Privacy Architecture
&lt;/h2&gt;


&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart TD
    UserFolder["Target Folder (e.g., C:\\Users\\User\\Downloads)"] --&amp;gt; SafetyCheck["Safety Validator\n- Block C:\\ root\n- Block Windows system folders\n- Prevent symlink escapes"]
    SafetyCheck --&amp;gt; Scanner["Safe Scanner\n- Extract metadata\n- Detect &amp;amp; skip sensitive files (.env, keys)\n- Filter system noise (desktop.ini)"]
    Scanner --&amp;gt; Organizer{"AI Engine Available?"}
    Organizer -- "Yes (Ollama Online)" --&amp;gt; OllamaLLM["Local Ollama Model\n(llama3.2 / mistral)\n100% Offline Inference"]
    Organizer -- "No (Ollama Offline)" --&amp;gt; HeuristicEngine["Honest Demo Mode\nDeterministic Heuristics\nBadge: 'Simulated AI'"]
    OllamaLLM --&amp;gt; OutputSanitizer["Structured JSON Validator\n- Preserve original extension\n- Strip illegal Windows characters\n- Block reserved device names"]
    HeuristicEngine --&amp;gt; OutputSanitizer
    OutputSanitizer --&amp;gt; PlanPreview["Interactive Preview Table\n- Inline filename edits\n- Approve / Reject toggles"]
    PlanPreview --&amp;gt; ExecutionEngine{"Dry-Run Mode?"}
    ExecutionEngine -- "True (Default)" --&amp;gt; DryRunSummary["Simulation Report\nZero disk writes"]
    ExecutionEngine -- "False (Approved)" --&amp;gt; FileExecutor["Atomic Executor\n- Create category folders\n- Move files without overwrite\n- Record batch in history"]
    FileExecutor --&amp;gt; HistoryLog["Local JSON Operations History"]
    HistoryLog --&amp;gt; UndoEngine["Atomic Rollback Engine\nRestores original files &amp;amp; removes empty dirs"]&lt;/code&gt;&lt;/pre&gt;




&lt;h2&gt;
  
  
  🚀 Installation &amp;amp; Setup on Windows
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Windows 10 / 11&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python 3.10+&lt;/strong&gt; (Available via &lt;code&gt;py&lt;/code&gt; or &lt;code&gt;python&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Node.js v18+&lt;/strong&gt; &amp;amp; &lt;strong&gt;npm&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;(Optional for real AI)&lt;/em&gt; &lt;strong&gt;&lt;a href="https://ollama.com/download/windows" rel="noopener noreferrer"&gt;Ollama for Windows&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;
  
  
  Step 1: Clone the Repository
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;git&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;clone&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://github.com/your-username/SlothSort-AI.git&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SlothSort AI"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 2: Install Backend Dependencies
&lt;/h3&gt;

&lt;p&gt;From the project root:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;py&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-m&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;pip&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;install&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-r&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;backend/requirements.txt&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Step 3: Install Frontend Dependencies
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;frontend&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;npm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;install&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;..&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Step 4 (Optional): Install and Run Ollama for Local AI
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Download and install Ollama from &lt;a href="https://ollama.com/download/windows" rel="noopener noreferrer"&gt;ollama.com/download/windows&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Open PowerShell and pull your preferred lightweight model (e.g. Llama 3.2 3B or 1B):
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;ollama&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;pull&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;llama3.2&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Ensure the Ollama service is running on its default port (&lt;code&gt;http://localhost:11434&lt;/code&gt;).&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; If Ollama is not installed or running, SlothSort AI will automatically run in &lt;strong&gt;Honest Demo Mode&lt;/strong&gt; using its built-in rule heuristics.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  💻 Running the Application
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Option A: One-Click Windows Batch Launcher
&lt;/h3&gt;

&lt;p&gt;Double-click &lt;code&gt;run_slothsort.bat&lt;/code&gt; or run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;\run_slothsort.bat&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This launches both the FastAPI backend and Vite frontend, then opens your default browser at &lt;code&gt;http://localhost:5173/&lt;/code&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  Option B: Manual Startup
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Terminal 1 (Backend):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;py&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-m&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;uvicorn&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;backend.app.main:app&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--host&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;127.0.0.1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--port&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;8000&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--reload&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Terminal 2 (Frontend):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;frontend&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;npm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;run&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;dev&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Visit &lt;strong&gt;&lt;a href="http://localhost:5173" rel="noopener noreferrer"&gt;http://localhost:5173&lt;/a&gt;&lt;/strong&gt; in your browser.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧪 Testing &amp;amp; Quality Assurance
&lt;/h2&gt;

&lt;p&gt;SlothSort AI includes a comprehensive automated test suite covering safety constraints, duplicate collision resolution, organization planning, atomic undo logic, and API integration.&lt;/p&gt;

&lt;h3&gt;
  
  
  Running Backend Unit Tests
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;py&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-m&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;pytest&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;backend/tests&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-v&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Test Suite Coverage (21/21 Passing):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;test_safety.py&lt;/code&gt;:

&lt;ul&gt;
&lt;li&gt;Empty and non-existent path validation&lt;/li&gt;
&lt;li&gt;Drive root rejection (&lt;code&gt;C:\&lt;/code&gt;, &lt;code&gt;/&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Windows system directory protection (&lt;code&gt;C:\Windows&lt;/code&gt;, &lt;code&gt;System32&lt;/code&gt;, &lt;code&gt;Program Files&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Boundary traversal and symlink escape prevention&lt;/li&gt;
&lt;li&gt;Illegal Windows filename characters (&lt;code&gt;&amp;lt; &amp;gt; : " / \ | ? *&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Reserved device name handling (&lt;code&gt;CON&lt;/code&gt;, &lt;code&gt;PRN&lt;/code&gt;, &lt;code&gt;AUX&lt;/code&gt;, &lt;code&gt;NUL&lt;/code&gt;, &lt;code&gt;COM1&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Sensitive credential detection (&lt;code&gt;.env&lt;/code&gt;, &lt;code&gt;id_rsa&lt;/code&gt;, &lt;code&gt;.key&lt;/code&gt;, &lt;code&gt;.pem&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;test_duplicates.py&lt;/code&gt;:

&lt;ul&gt;
&lt;li&gt;Collision resolution with automatic counter increment (&lt;code&gt;file_1.ext&lt;/code&gt;, &lt;code&gt;file_2.ext&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Non-colliding path preservation&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;test_organizer.py&lt;/code&gt;:

&lt;ul&gt;
&lt;li&gt;Deterministic heuristic classification across categories&lt;/li&gt;
&lt;li&gt;Academic cue mapping (&lt;code&gt;College&lt;/code&gt; category for homework/assignments)&lt;/li&gt;
&lt;li&gt;Demo mode plan generation and schema integrity&lt;/li&gt;
&lt;li&gt;Ollama prompt structure and extension preservation rules&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;test_undo.py&lt;/code&gt;:

&lt;ul&gt;
&lt;li&gt;Dry-run verification (ensures zero disk modifications)&lt;/li&gt;
&lt;li&gt;Real move execution and atomic rollback&lt;/li&gt;
&lt;li&gt;Automatic cleanup of emptied category folders&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;test_api.py&lt;/code&gt;:

&lt;ul&gt;
&lt;li&gt;Full end-to-end FastAPI endpoint integration via &lt;code&gt;TestClient&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Running Frontend Production Build Test
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;frontend&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;npm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;run&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;build&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  ⚖️ Cost Trade-offs: Local AI vs Cloud APIs
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Factor&lt;/th&gt;
&lt;th&gt;Local Open-Weight (SlothSort AI)&lt;/th&gt;
&lt;th&gt;Cloud AI APIs (OpenAI / Claude)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Privacy&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;100% Private&lt;/strong&gt; — Zero external transmission&lt;/td&gt;
&lt;td&gt;Metadata &amp;amp; file contents sent to 3rd-party servers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Recurring Cost&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;$0.00 / month&lt;/strong&gt; — Forever free&lt;/td&gt;
&lt;td&gt;Pay-per-token API bills ($0.001 - $0.03 / request)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Internet Dependency&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;None&lt;/strong&gt; — Works fully air-gapped&lt;/td&gt;
&lt;td&gt;Mandatory high-speed internet connection&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Rate Limits&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;None&lt;/strong&gt; — Constrained only by local compute&lt;/td&gt;
&lt;td&gt;Strict requests/minute &amp;amp; tokens/minute quotas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Hardware Requirement&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;4GB - 8GB RAM (CPU or entry-level GPU)&lt;/td&gt;
&lt;td&gt;Minimal local hardware (runs in browser)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Setup Effort&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1-click Ollama install&lt;/td&gt;
&lt;td&gt;Requires account registration, credit card, and API keys&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  📜 Model Licensing Considerations
&lt;/h2&gt;

&lt;p&gt;SlothSort AI itself is distributed under the permissive &lt;strong&gt;MIT License&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;When pairing SlothSort AI with local open-weight language models via Ollama:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Llama 3.2 (Meta)&lt;/strong&gt;: Distributed under the &lt;a href="https://github.com/meta-llama/llama-models/blob/main/models/llama3_2/LICENSE" rel="noopener noreferrer"&gt;Llama 3.2 Community License&lt;/a&gt;. Free for research and commercial use up to 700M monthly active users.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mistral 7B / Nemo (Mistral AI)&lt;/strong&gt;: Distributed under the permissive &lt;a href="https://www.apache.org/licenses/LICENSE-2.0" rel="noopener noreferrer"&gt;Apache 2.0 License&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phi-3 (Microsoft)&lt;/strong&gt;: Distributed under the &lt;a href="https://huggingface.co/microsoft/Phi-3-mini-4k-instruct" rel="noopener noreferrer"&gt;MIT License&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Qwen 2.5 (Alibaba)&lt;/strong&gt;: Distributed under the &lt;a href="https://github.com/QwenLM/Qwen2.5" rel="noopener noreferrer"&gt;Apache 2.0 License&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You are free to switch between any of these models via the &lt;strong&gt;Settings Modal&lt;/strong&gt; or by setting the &lt;code&gt;OLLAMA_MODEL&lt;/code&gt; environment variable.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚠️ Security Limitations
&lt;/h2&gt;

&lt;p&gt;While SlothSort AI implements rigorous guardrails, users should observe the following best practices:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Never organize root drives&lt;/strong&gt;: The backend actively forbids selecting &lt;code&gt;C:\&lt;/code&gt; or drive roots. Keep organization focused on specific folders like &lt;code&gt;Downloads&lt;/code&gt;, &lt;code&gt;Documents&lt;/code&gt;, or &lt;code&gt;Desktop&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Never organize git repositories directly&lt;/strong&gt;: Organizing a &lt;code&gt;.git&lt;/code&gt; directory directly is blocked to prevent corrupting version control trees.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sensitive file inspection&lt;/strong&gt;: SlothSort AI excludes known secret filenames (&lt;code&gt;.env&lt;/code&gt;, &lt;code&gt;id_rsa&lt;/code&gt;, &lt;code&gt;*.key&lt;/code&gt;) by default. If your files contain unencrypted passwords inside regular &lt;code&gt;.txt&lt;/code&gt; documents, consider moving them to a secure password manager.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Untrusted LLM Output Sanitization&lt;/strong&gt;: Model suggestions are treated as untrusted strings. The backend sanitizes all proposed filenames and forces the original file extension to be preserved.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🔮 Future Roadmap
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Support for custom user-defined category mapping rules (e.g. tax year folders).&lt;/li&gt;
&lt;li&gt;[ ] Lightweight vision-language model support (e.g., &lt;code&gt;llava&lt;/code&gt; or &lt;code&gt;llama3.2-vision&lt;/code&gt;) for OCR-based receipt reading.&lt;/li&gt;
&lt;li&gt;[ ] Background folder watcher daemon with configurable interval.&lt;/li&gt;
&lt;li&gt;[ ] Exportable organization audit receipts in PDF / Markdown format.&lt;/li&gt;
&lt;li&gt;[ ] Cross-platform desktop wrapper via Tauri.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📄 License
&lt;/h2&gt;

&lt;p&gt;SlothSort AI is open-source software licensed under the &lt;strong&gt;&lt;a href="https://dev.toLICENSE"&gt;MIT License&lt;/a&gt;&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Built with care for Hacktoberfest 2026: &lt;strong&gt;Slow and Steady&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>HustleWrite AI- Side Hustle</title>
      <dc:creator>Thommandru Akhilesh</dc:creator>
      <pubDate>Wed, 14 Oct 2026 14:55:00 +0000</pubDate>
      <link>https://dev.to/akhimithu9/hustlewrite-ai-side-hustle-47f0</link>
      <guid>https://dev.to/akhimithu9/hustlewrite-ai-side-hustle-47f0</guid>
      <description>&lt;h1&gt;
  
  
  HustleWrite AI — Hacktoberfest 2026 Side Hustle
&lt;/h1&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;&lt;strong&gt;HustleWrite AI&lt;/strong&gt; is a local-AI-powered product listing generator designed for small business owners, freelancers, Instagram sellers, WhatsApp shops, and online marketplace vendors.&lt;/p&gt;

&lt;p&gt;Users enter basic product information—such as the product name, category, price, features, target audience, tone, language, and selling platform—and HustleWrite AI helps turn it into ready-to-edit marketing content, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An SEO-friendly product title&lt;/li&gt;
&lt;li&gt;A product description&lt;/li&gt;
&lt;li&gt;Key selling points&lt;/li&gt;
&lt;li&gt;A social media caption&lt;/li&gt;
&lt;li&gt;Search keywords and hashtags&lt;/li&gt;
&lt;li&gt;A call to action&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is to reduce the time small sellers spend writing product listings and promotional content. It could be useful to independent sellers who need an affordable, straightforward way to prepare product copy.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live demo:&lt;/strong&gt; [Add your deployed URL, if available]&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Video demo:&lt;/strong&gt; [Add your demo video URL]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the app is currently running locally, replace this section with a short screen-recording link showing the real generation flow.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub repository:&lt;/strong&gt; &lt;a href="https://github.com/guunda/HustleWrite" rel="noopener noreferrer"&gt;https://github.com/guunda/HustleWrite&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The repository should include the source code, setup instructions, an &lt;code&gt;.env.example&lt;/code&gt; file, and the project license.&lt;/p&gt;

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

&lt;p&gt;HustleWrite AI is designed with the following stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; React, Vite, and TypeScript&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Node.js, Express, and TypeScript&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local AI inference:&lt;/strong&gt; Ollama with the &lt;code&gt;qwen2.5:1.5b&lt;/code&gt; model&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Validation:&lt;/strong&gt; Zod or equivalent request/output validation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing:&lt;/strong&gt; Vitest for essential application tests&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The frontend collects product details and sends them to the backend. The backend validates the input, calls the local Ollama API, checks the generated response, and returns structured listing content for the user to review and edit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Keep only the technologies and features that are implemented and tested in your final repository. If a feature is still in progress, describe it as planned rather than completed.&lt;/p&gt;

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

&lt;p&gt;Open-weight AI makes this project more flexible and accessible. By running the model locally through Ollama, HustleWrite AI can generate content without sending product details to a third-party AI API. Once the software and model are downloaded, local generation can work without an internet connection, as long as the local model and application are running.&lt;/p&gt;

&lt;p&gt;This approach can also avoid per-request charges from a hosted AI API and lets users switch between compatible local models. It offers more control over how the application works and reduces dependence on one commercial provider.&lt;/p&gt;

&lt;p&gt;Local inference still uses the computer's memory, storage, processing power, and electricity. Model licenses vary, so users should review the selected model's terms before commercial use. The privacy claim should also be verified against the complete application to ensure no data is sent elsewhere.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;[Optional: Add your DevRelay agent session link or embed it using the format required by the challenge.]&lt;/p&gt;

&lt;h2&gt;
  
  
  My First User
&lt;/h2&gt;

&lt;p&gt;[Optional: If someone has tried HustleWrite AI, describe who they are, what task they used it for, and their honest feedback. Mention payment only if they actually paid. Remove this section if you do not have a real user story.]&lt;/p&gt;

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

&lt;p&gt;[Check the official challenge page and list only the partner prize categories that apply to your submission. Remove this section if none apply.]&lt;/p&gt;




&lt;h3&gt;
  
  
  Before submitting
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Replace the demo placeholders with a real video or deployed link.&lt;/li&gt;
&lt;li&gt;[ ] Add your public GitHub repository URL.&lt;/li&gt;
&lt;li&gt;[ ] Test that listing generation uses the local Ollama model rather than mock output.&lt;/li&gt;
&lt;li&gt;[ ] Verify the README setup instructions on a clean environment if possible.&lt;/li&gt;
&lt;li&gt;[ ] Confirm the project license and the selected model's license.&lt;/li&gt;
&lt;li&gt;[ ] Add real user feedback only if you have it.&lt;/li&gt;
&lt;li&gt;[ ] Review the official challenge rules and submission requirements.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>GrassQuest</title>
      <dc:creator>Thommandru Akhilesh</dc:creator>
      <pubDate>Wed, 07 Oct 2026 16:05:34 +0000</pubDate>
      <link>https://dev.to/akhimithu9/grassquest-40ad</link>
      <guid>https://dev.to/akhimithu9/grassquest-40ad</guid>
      <description>&lt;h1&gt;
  
  
  🌿 GrassQuest AI — Hacktoberfest 2026 "Touch Grass"
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Touch Grass. Literally."&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;A privacy-first, offline-capable outdoor quest generator powered by local open-weight AI.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  📌 Project Concept
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GrassQuest AI&lt;/strong&gt; is a privacy-first outdoor activity generator built specifically for the &lt;strong&gt;Hacktoberfest 2026 "Touch Grass"&lt;/strong&gt; challenge.&lt;/p&gt;

&lt;p&gt;The goal is simple:&lt;br&gt;&lt;br&gt;
Use open-source and open-weight AI to encourage people to spend &lt;strong&gt;LESS time on their screens&lt;/strong&gt; and &lt;strong&gt;MORE time outdoors&lt;/strong&gt; in nature.&lt;/p&gt;

&lt;p&gt;Unlike conventional AI tools that draw users deeper into infinite screen scrolling and digital chats, &lt;strong&gt;GrassQuest AI&lt;/strong&gt; uses AI as a brief launchpad. It generates a personalized real-world micro-quest (e.g., 20 minutes of nature observation or a mindful walking walk) and then &lt;strong&gt;explicitly instructs you to put your phone away and step outside&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The AI interaction is the shortest part of your experience.&lt;/p&gt;


&lt;h2&gt;
  
  
  🎯 The Problem &amp;amp; Solution
&lt;/h2&gt;
&lt;h3&gt;
  
  
  The Problem
&lt;/h3&gt;

&lt;p&gt;Modern AI applications and social media platforms are optimized for screen retention, endless doomscrolling, and perpetual device engagement, leading to digital fatigue and disconnect from physical nature.&lt;/p&gt;
&lt;h3&gt;
  
  
  The Solution
&lt;/h3&gt;

&lt;p&gt;GrassQuest AI inverts the modern app paradigm:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Input&lt;/strong&gt;: Select your available time (e.g., 10m, 20m, 30m, 1h), activity type, and environment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generate&lt;/strong&gt;: A local open-weight AI model generates 2–4 safe, actionable outdoor observation objectives.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Touch Grass&lt;/strong&gt;: Prominent UX banners tell you &lt;strong&gt;"📱 PUT YOUR PHONE AWAY 🌳 GO TOUCH GRASS"&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Disconnect &amp;amp; Explore&lt;/strong&gt;: Pocket your phone, head outside, run the countdown timer, and earn &lt;strong&gt;Grass Points&lt;/strong&gt; upon completion.&lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;
  
  
  🚀 Core Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🟢 &lt;strong&gt;Local Open-Weight AI Core&lt;/strong&gt;: Runs 100% locally using &lt;a href="https://ollama.com/" rel="noopener noreferrer"&gt;Ollama&lt;/a&gt; (e.g., &lt;code&gt;gemma3:4b&lt;/code&gt;, &lt;code&gt;gemma:2b&lt;/code&gt;, &lt;code&gt;llama3.2:1b&lt;/code&gt;, &lt;code&gt;mistral&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;🔒 &lt;strong&gt;Privacy-First Architecture&lt;/strong&gt;: Zero external API calls, zero server-side user tracking.&lt;/li&gt;
&lt;li&gt;✈️ &lt;strong&gt;Offline Capable&lt;/strong&gt;: Works without an active internet connection once dependencies and model are downloaded.&lt;/li&gt;
&lt;li&gt;📱 &lt;strong&gt;Screen-Free UX Focus&lt;/strong&gt;: Explicit banners and notifications encouraging users to pocket their devices.&lt;/li&gt;
&lt;li&gt;⏱️ &lt;strong&gt;Interactive Outdoor Quest Timer&lt;/strong&gt;: Built-in countdown timer with pause/resume and quick finish.&lt;/li&gt;
&lt;li&gt;🎉 &lt;strong&gt;Grass Points &amp;amp; Level Progression&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;0 – 499 pts&lt;/code&gt;: 🌱 &lt;strong&gt;Seedling&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;500 – 999 pts&lt;/code&gt;: 🌿 &lt;strong&gt;Explorer&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;1000 – 1999 pts&lt;/code&gt;: 🌳 &lt;strong&gt;Nature Walker&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;2000+ pts&lt;/code&gt;: 🌲 &lt;strong&gt;Grass Master&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;📊 &lt;strong&gt;Local Quest History&lt;/strong&gt;: Tracks completed outdoor minutes and past missions strictly inside browser &lt;code&gt;LocalStorage&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;🟡 &lt;strong&gt;Hackathon Demo Mode&lt;/strong&gt;: Built-in simulated local AI toggle so judges can test the full app experience instantly even if Ollama is not installed!&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  🛠️ Technology Stack
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Frontend&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;React 18 + Vite&lt;/td&gt;
&lt;td&gt;Fast, modern, responsive UI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Icons&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Lucide React&lt;/td&gt;
&lt;td&gt;Nature-inspired clean vector icons&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Styling&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Vanilla CSS Design System&lt;/td&gt;
&lt;td&gt;Glassmorphism, custom tokens, zero heavy frameworks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Backend&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Python + FastAPI&lt;/td&gt;
&lt;td&gt;High-performance async API server&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Local AI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Ollama API&lt;/td&gt;
&lt;td&gt;Inference engine for open-weight models&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Storage&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Browser &lt;code&gt;LocalStorage&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Zero-tracking local data persistence&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;


&lt;h2&gt;
  
  
  📐 System Architecture
&lt;/h2&gt;


&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart TD
    User([👤 User]) --&amp;gt;|1. Select Time &amp;amp; Activity| ReactUI[🌿 React + Vite Frontend]
    ReactUI --&amp;gt;|2. POST /generate-quest| FastAPI[⚡ FastAPI Backend]
    FastAPI --&amp;gt;|3. Local HTTP API| Ollama[🦙 Ollama Local Engine]
    Ollama --&amp;gt;|4. Inference| Model[🤖 Gemma / Open-Weight AI]
    Model --&amp;gt;|5. Structured JSON| FastAPI
    FastAPI --&amp;gt;|6. Quest Payload| ReactUI
    ReactUI --&amp;gt;|7. "📱 Put Phone Away"| User
    User --&amp;gt;|8. Go Outdoors &amp;amp; Touch Grass| Outdoor[🌳 Physical Nature]&lt;/code&gt;&lt;/pre&gt;




&lt;h2&gt;
  
  
  🔓 Why Open Innovation Matters
&lt;/h2&gt;

&lt;p&gt;In an era dominated by centralized, proprietary cloud AI APIs, &lt;strong&gt;GrassQuest AI&lt;/strong&gt; stands for open innovation:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;User Privacy&lt;/strong&gt;: Your outdoor habits, location context, and routine are never transmitted to third-party ad networks or cloud servers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model Freedom&lt;/strong&gt;: Swap models freely (&lt;code&gt;OLLAMA_MODEL=gemma3:4b&lt;/code&gt; to &lt;code&gt;llama3.2:1b&lt;/code&gt;) without vendor lock-in.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Per-Request Cost&lt;/strong&gt;: Run unlimited quests locally without API tokens or subscription paywalls.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline Resilience&lt;/strong&gt;: Essential outdoor wellness tools should remain functional in remote parks, forests, or internet outages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community Control&lt;/strong&gt;: Transparent, customizable prompts and open-source codebase.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  Cloud AI vs. GrassQuest AI
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Closed Cloud AI (Traditional)&lt;/th&gt;
&lt;th&gt;GrassQuest AI (Open Innovation)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Data Flow&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;User ➔ Internet ➔ Cloud API ➔ AI&lt;/td&gt;
&lt;td&gt;User ➔ Local Machine ➔ Local AI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Internet Required?&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌ Yes (Always)&lt;/td&gt;
&lt;td&gt;✅ No (Runs 100% Offline)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;API Costs&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌ Per-token charges&lt;/td&gt;
&lt;td&gt;✅ Free forever&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Model Swappability&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌ Locked to provider&lt;/td&gt;
&lt;td&gt;✅ Swappable via &lt;code&gt;.env&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;User Privacy&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;⚠️ Remote data logging&lt;/td&gt;
&lt;td&gt;🔒 100% On-Device&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;


&lt;h2&gt;
  
  
  ⚡ Quickstart &amp;amp; Installation (Windows Guide)
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. Prerequisites
&lt;/h3&gt;

&lt;p&gt;Ensure you have installed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Node.js&lt;/strong&gt;: v18+ (&lt;a href="https://nodejs.org/" rel="noopener noreferrer"&gt;Download&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python&lt;/strong&gt;: v3.10+ (&lt;a href="https://www.python.org/" rel="noopener noreferrer"&gt;Download&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ollama&lt;/strong&gt;: (&lt;a href="https://ollama.com/download" rel="noopener noreferrer"&gt;Download Ollama for Windows&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  2. Ollama Setup
&lt;/h3&gt;

&lt;p&gt;Start Ollama and pull your preferred open-weight model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Start Ollama service (if not already running as background service)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;ollama&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;serve&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;# Download the lightweight Gemma open-weight model&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;ollama&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;pull&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;gemma3:4b&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Clone Repository
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;git&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;clone&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://github.com/guunda/GrassQuest&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;grassquest-ai&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. Setup Backend (FastAPI)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;backend&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;# Create Python virtual environment&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;py&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-m&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;venv&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;venv&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;# Activate virtual environment&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;\venv\Scripts\Activate.ps1&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;# Install requirements&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;pip&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;install&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-r&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;requirements.txt&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;# Create .env from template&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Copy-Item&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;env&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;example&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;env&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;# Run FastAPI backend&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;uvicorn&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;main:app&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--reload&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--port&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;8000&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Backend runs at &lt;code&gt;http://localhost:8000&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Setup Frontend (React + Vite)
&lt;/h3&gt;

&lt;p&gt;Open a new terminal window:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;grassquest-ai/frontend&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;# Install dependencies&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;npm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;install&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;# Start development server&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;npm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;run&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;dev&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Frontend runs at &lt;code&gt;http://localhost:5173&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ✈️ How to Test Offline Mode
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Ensure Ollama and FastAPI are running, and model &lt;code&gt;gemma3:4b&lt;/code&gt; is downloaded.&lt;/li&gt;
&lt;li&gt;Open &lt;code&gt;http://localhost:5173&lt;/code&gt; in your web browser.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;🌿 GENERATE MY QUEST&lt;/strong&gt; to verify local AI generation works.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Disconnect your computer from Wi-Fi / Ethernet&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select a different duration (e.g., 30 min) and click &lt;strong&gt;🌿 GENERATE MY QUEST&lt;/strong&gt; again.&lt;/li&gt;
&lt;li&gt;Observe that quest generation succeeds seamlessly without internet!&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🟡 Hackathon Demo Mode
&lt;/h2&gt;

&lt;p&gt;If you are running the project on a machine where Ollama is not installed or the model is still downloading, simply click the &lt;strong&gt;Demo Mode&lt;/strong&gt; toggle switch in the top header.&lt;/p&gt;

&lt;p&gt;GrassQuest AI will generate rich, deterministic outdoor quests simulated locally, allowing judges to test the entire quest workflow, countdown timer, points, and rank progression immediately!&lt;/p&gt;




&lt;h2&gt;
  
  
  🔮 Future Roadmap
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;📷 &lt;strong&gt;Local Vision Model Integration&lt;/strong&gt;: Identify local leaves and birds using local multimodal open models (e.g. &lt;code&gt;llava&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;🌤️ &lt;strong&gt;Offline Weather Adaptability&lt;/strong&gt;: Adjust activity intensity based on local temperature or sunlight.&lt;/li&gt;
&lt;li&gt;⌚ &lt;strong&gt;Wearable Integration&lt;/strong&gt;: Sync completed outdoor minutes with offline smartwatch trackers.&lt;/li&gt;
&lt;li&gt;🗺️ &lt;strong&gt;Community Quest Presets&lt;/strong&gt;: Share screen-free quest prompt templates via open-source contribution.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📜 License
&lt;/h2&gt;

&lt;p&gt;This project is open-source software licensed under the &lt;a href="https://dev.toLICENSE"&gt;MIT License&lt;/a&gt;.&lt;br&gt;&lt;br&gt;
Built with ❤️ for &lt;strong&gt;Hacktoberfest 2026 "Touch Grass" Challenge&lt;/strong&gt;.&lt;/p&gt;

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