<?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: Awej Pathan</title>
    <description>The latest articles on DEV Community by Awej Pathan (@awej_04).</description>
    <link>https://dev.to/awej_04</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%2F4168996%2Fd418a191-4e82-4b0e-80bd-13f0fd09ef0b.jpg</url>
      <title>DEV Community: Awej Pathan</title>
      <link>https://dev.to/awej_04</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/awej_04"/>
    <language>en</language>
    <item>
      <title>ReceiptSage: A Local-First AI Receipt Organizer for Freelancers &amp; Creators</title>
      <dc:creator>Awej Pathan</dc:creator>
      <pubDate>Mon, 19 Oct 2026 19:13:03 +0000</pubDate>
      <link>https://dev.to/awej_04/receiptsage-a-local-first-ai-receipt-organizer-for-freelancers-creators-35j4</link>
      <guid>https://dev.to/awej_04/receiptsage-a-local-first-ai-receipt-organizer-for-freelancers-creators-35j4</guid>
      <description>&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;ReceiptSage&lt;/strong&gt; is a local-first receipt and invoice organizer engineered specifically for freelancers, independent creators, side-hustlers, and small business owners.&lt;/p&gt;

&lt;p&gt;Freelancers frequently handle a chaotic avalanche of PDF receipts, phone photos, and digital invoices for cloud infrastructure, domain renewals, coffee client meetings, and office equipment. Existing accounting software creates an unnecessary dilemma:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Manual Entry:&lt;/strong&gt; Hours spent doing tedious, error-prone data entry in spreadsheets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloud SaaS Platforms:&lt;/strong&gt; High recurring fees ($15–$35/month) combined with serious privacy hazards: uploading sensitive financial documents—containing private billing addresses, tax IDs, and bank transactions—to closed cloud AI providers.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;ReceiptSage solves this with &lt;strong&gt;open innovation&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ingestion:&lt;/strong&gt; Ingests pasted text, plain text files, digital PDFs (&lt;code&gt;pypdf&lt;/code&gt;), and scanned images (&lt;code&gt;pytesseract&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-Weight Gemma AI:&lt;/strong&gt; Extracts structured candidate fields (Merchant, Date, Currency, Subtotal, Tax, Total, and Category) using Google's open-weight &lt;strong&gt;Gemma&lt;/strong&gt; model (&lt;code&gt;gemma3:1b&lt;/code&gt;) run locally via &lt;strong&gt;Ollama&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic Rule Fallback:&lt;/strong&gt; Automatically runs a regex extraction engine if Ollama is offline or on resource-constrained devices, ensuring zero application downtime.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Math Reconciliation &amp;amp; Human Verification:&lt;/strong&gt; Checks &lt;code&gt;Subtotal + Tax == Total&lt;/code&gt; and requires user confirmation before marking records verified.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local SQLite Persistence:&lt;/strong&gt; Provides persistent storage in &lt;code&gt;data/receiptsage.db&lt;/code&gt; with dual-mode support for ephemeral in-memory sessions during public demos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Duplicate Detection:&lt;/strong&gt; Prevents accidental double-entries using SHA-256 document hashing and content matching (merchant + date + amount).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Visual Analytics &amp;amp; Filters:&lt;/strong&gt; Real-time filtering by currency, category, and month, paired with visual category spending charts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Monthly Expense Summary:&lt;/strong&gt; Generates an executive plain-language spending audit in Markdown using Gemma or statistical analytics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Safe Exports &amp;amp; Backups:&lt;/strong&gt; Exports RFC 4180 CSV with formula injection protection and creates full JSON backups with one-click restore.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Here is the end-to-end workflow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Privacy Notice &amp;amp; Presets:&lt;/strong&gt; The app opens with a clear local-first privacy notice and 4 realistic synthetic presets (Indian GST, US Cloud SaaS, European Cafe, UK Cab).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Extraction &amp;amp; Math Check:&lt;/strong&gt; Click &lt;strong&gt;"Extract candidate fields"&lt;/strong&gt;. Gemma extracts candidate fields in seconds; an automated check validates whether &lt;code&gt;Subtotal + Tax == Total&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Duplicate Detection:&lt;/strong&gt; If the document or amount was already registered, ReceiptSage alerts the user immediately with the matching record ID.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Human Review:&lt;/strong&gt; The user inspects and edits candidate fields, adds optional project notes, checks the confirmation box, and saves to SQLite.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Currency Register &amp;amp; Charts:&lt;/strong&gt; The register displays live metric totals grouped by currency (&lt;code&gt;INR&lt;/code&gt;, &lt;code&gt;USD&lt;/code&gt;, &lt;code&gt;EUR&lt;/code&gt;, &lt;code&gt;GBP&lt;/code&gt;) and renders an expense breakdown bar chart.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Monthly Summary:&lt;/strong&gt; Clicking &lt;strong&gt;"✨ Generate AI Expense Summary"&lt;/strong&gt; produces a plain-language executive spending review.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Safe Exports:&lt;/strong&gt; One-click download of spreadsheet-safe CSV (&lt;code&gt;utf-8-sig&lt;/code&gt; with formula escaping) and JSON backup export/restore.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;(All public demos use synthetic receipts; no personal or client data is ever exposed.)&lt;/em&gt;&lt;/p&gt;




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

&lt;p&gt;The complete source code is publicly available on GitHub:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/awejofficial/ReceiptSage_Starter_Repo" rel="noopener noreferrer"&gt;https://github.com/awejofficial/ReceiptSage_Starter_Repo&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;License:&lt;/strong&gt; Permissive &lt;strong&gt;MIT License&lt;/strong&gt; (see &lt;code&gt;LICENSE&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Model Terms:&lt;/strong&gt; Governed by Google's &lt;a href="https://ai.google.dev/gemma/terms/" rel="noopener noreferrer"&gt;Gemma Terms of Use&lt;/a&gt; (see &lt;code&gt;MODEL_TERMS.md&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dev Environment:&lt;/strong&gt; Preconfigured for &lt;strong&gt;GitHub Codespaces&lt;/strong&gt; (&lt;code&gt;.devcontainer/devcontainer.json&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CI/CD:&lt;/strong&gt; Automated testing on every push and pull request via &lt;strong&gt;GitHub Actions&lt;/strong&gt; (&lt;code&gt;.github/workflows/tests.yml&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloud Deployment:&lt;/strong&gt; Preconfigured Render Blueprint (&lt;code&gt;render.yaml&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;ReceiptSage was built in Python 3.12 with modular architecture:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Ingestion &amp;amp; Preprocessing
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Digital PDF extraction via &lt;code&gt;pypdf&lt;/code&gt; without network calls.&lt;/li&gt;
&lt;li&gt;Image OCR via &lt;code&gt;Pillow&lt;/code&gt; and &lt;code&gt;pytesseract&lt;/code&gt; with graceful error handling when Tesseract is missing.&lt;/li&gt;
&lt;li&gt;Input security: 10 MB file ceiling and 10,000-character text window.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Open-Weight Gemma Integration (via Ollama)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Connects to Ollama's local REST API (&lt;code&gt;http://127.0.0.1:11434/api/generate&lt;/code&gt;) with candidate model &lt;code&gt;gemma3:1b&lt;/code&gt; (or &lt;code&gt;gemma2:2b&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Prompt injection defense: document content is enclosed inside strict boundary delimiters (&lt;code&gt;--- BEGIN UNTRUSTED RECEIPT TEXT ---&lt;/code&gt;) with system directives ordering the model to treat text strictly as passive data.&lt;/li&gt;
&lt;li&gt;Structured JSON output with zero temperature for deterministic reliability.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Resilient Deterministic Fallback
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Catches network/timeout errors and seamlessly executes regular-expression rules.&lt;/li&gt;
&lt;li&gt;Detects merchants, dates (&lt;code&gt;YYYY-MM-DD&lt;/code&gt;, &lt;code&gt;DD/MM/YYYY&lt;/code&gt;, &lt;code&gt;DD Mon YYYY&lt;/code&gt;), currencies (&lt;code&gt;INR&lt;/code&gt;, &lt;code&gt;USD&lt;/code&gt;, &lt;code&gt;EUR&lt;/code&gt;, &lt;code&gt;GBP&lt;/code&gt;), subtotals, split CGST + SGST tax aggregation, and totals.&lt;/li&gt;
&lt;li&gt;UI explicitly displays whether extraction used &lt;code&gt;Gemma + rules&lt;/code&gt; or &lt;code&gt;Rules-only fallback&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Pydantic Schemas &amp;amp; Local SQLite Persistence
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Schema validation via Pydantic v2 (&lt;code&gt;ReceiptFields&lt;/code&gt;, &lt;code&gt;ExpenseRecord&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Dedicated SQLite database (&lt;code&gt;data/receiptsage.db&lt;/code&gt;) with indices on dates, categories, and hashes.&lt;/li&gt;
&lt;li&gt;Real-time duplicate detection based on SHA-256 source hashing and content matching.&lt;/li&gt;
&lt;li&gt;JSON export and import for full backup/restore.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. Automated Testing (44 Tests, 100% Pass)
&lt;/h3&gt;

&lt;p&gt;A comprehensive 44-test suite verifies all features in under 3 seconds:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python &lt;span class="nt"&gt;-m&lt;/span&gt; pytest &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;span class="c"&gt;# 44 passed in 2.94s&lt;/span&gt;
python &lt;span class="nt"&gt;-m&lt;/span&gt; compileall &lt;span class="nt"&gt;-q&lt;/span&gt; app.py src tests
&lt;span class="c"&gt;# Clean compilation (Exit code 0)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






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

&lt;p&gt;Open innovation—specifically open-weight AI—is transformative for solo entrepreneurs and side-hustlers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Uncompromised Financial Privacy:&lt;/strong&gt; Financial invoices contain banking details, tax numbers, and private residential addresses. Running open-weight Gemma on local hardware guarantees that private documents &lt;strong&gt;never leave the user's laptop&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Marginal Operating Cost:&lt;/strong&gt; Solo creators operating on thin margins cannot afford $20/month AI subscriptions or volatile pay-per-token API fees. Open-weight inference runs on local CPU cycles for free.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resilience &amp;amp; Autonomy:&lt;/strong&gt; Freelancers work from trains, flights, and cafes with spotty connectivity. Local open-weight AI with deterministic fallback ensures 100% uptime regardless of internet availability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compliance &amp;amp; Trust:&lt;/strong&gt; Adheres strictly to Google's &lt;a href="https://ai.google.dev/gemma/terms/" rel="noopener noreferrer"&gt;Gemma Terms of Use&lt;/a&gt; (April 2026), treating AI output as untrusted candidates requiring human sign-off.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Target Audience &amp;amp; Commercial Potential
&lt;/h2&gt;

&lt;p&gt;While ReceiptSage is released as a free, open-source tool, it addresses a validated commercial market:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Target Persona:&lt;/strong&gt; Freelancers, digital nomads, and independent consultants who submit monthly expense reports to clients or accountants.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Commercial Opportunity:&lt;/strong&gt; A one-time purchase desktop application ($29–$49) or a packaged desktop installer (Tauri/Electron bundling the local engine) for non-technical users seeking privacy without command-line setup.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Known Limitations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Scanned PDFs:&lt;/strong&gt; Digital PDFs with embedded text parse natively via &lt;code&gt;pypdf&lt;/code&gt;. Image-only / scanned PDFs require conversion to PNG/JPG or local Tesseract OCR.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hardware Latency:&lt;/strong&gt; Local inference speed with &lt;code&gt;gemma3:1b&lt;/code&gt; depends on the host CPU/GPU (typically 2 to 5 seconds per receipt).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Productivity Aid:&lt;/strong&gt; ReceiptSage is an organizational productivity tool, not certified accounting software or automated tax filing.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma:&lt;/strong&gt; ReceiptSage implements Google's open-weight &lt;code&gt;gemma3:1b&lt;/code&gt; model running locally through Ollama to parse unstructured receipts into schema-validated JSON, featuring untrusted prompt isolation, resilient fallback, and compliance with the official Gemma Terms of Use.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of GitHub Copilot / Actions:&lt;/strong&gt; The repository features automated continuous integration via GitHub Actions (&lt;code&gt;.github/workflows/tests.yml&lt;/code&gt;), testing dependency installation, executing the 44-test pytest suite on Ubuntu with Tesseract, and running module compilation checks on every commit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Render:&lt;/strong&gt; Preconfigured with an infrastructure-as-code Render Blueprint (&lt;code&gt;render.yaml&lt;/code&gt;) for one-click deployment of the headless Streamlit web application on Python 3.12.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;![ ](&lt;a href="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/n3mbcj" rel="noopener noreferrer"&gt;https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/n3mbcj&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpcd2dcxvo9f0bmlmdvxk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpcd2dcxvo9f0bmlmdvxk.png" alt=" " width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;z1ajs3bljyyx29.png)&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>SoilMate: Grow More, Scroll Less 🌱 — An Open-Source AI Gardening Assistant</title>
      <dc:creator>Awej Pathan</dc:creator>
      <pubDate>Sun, 11 Oct 2026 09:46:06 +0000</pubDate>
      <link>https://dev.to/awej_04/soilmate-grow-more-scroll-less-an-open-source-ai-gardening-assistant-3l20</link>
      <guid>https://dev.to/awej_04/soilmate-grow-more-scroll-less-an-open-source-ai-gardening-assistant-3l20</guid>
      <description>&lt;h1&gt;
  
  
  SoilMate: Grow More, Scroll Less 🌱
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;An open-source AI gardening assistant built for Hacktoberfest 2026 — Week 1: Touch Grass.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem: When learning about gardening keeps us indoors
&lt;/h2&gt;

&lt;p&gt;Imagine this.&lt;/p&gt;

&lt;p&gt;You have a few empty pots on your balcony. You want to grow coriander, mint, or maybe some spinach. You are excited to start your first little garden.&lt;/p&gt;

&lt;p&gt;So you pick up your phone and search for a beginner's guide.&lt;/p&gt;

&lt;p&gt;One video leads to another. A gardening blog recommends one soil mix, a forum recommends something completely different, and suddenly you're comparing fertilizer ratios instead of planting seeds.&lt;/p&gt;

&lt;p&gt;An hour passes. You have learned a lot about gardening, but you haven't actually started gardening.&lt;/p&gt;

&lt;p&gt;That got me thinking: &lt;strong&gt;What if technology could help us spend less time learning about the outdoors and more time actually experiencing it?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That is the idea behind &lt;strong&gt;SoilMate&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Built for the Hacktoberfest DEV Open-Source AI Challenge — Week 1, themed &lt;em&gt;Touch Grass&lt;/em&gt; — SoilMate turns the intention to start gardening into a practical plan of small, achievable outdoor activities.&lt;/p&gt;

&lt;p&gt;Its guiding principle is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Grow More. Scroll Less.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  🌿 Introducing SoilMate
&lt;/h2&gt;

&lt;p&gt;SoilMate is an AI-powered gardening companion designed to help beginners turn a small outdoor space into a starting point for growing plants.&lt;/p&gt;

&lt;p&gt;Instead of giving users an endless conversation about gardening, the goal is to help them answer a few practical questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What could I grow in my available space?&lt;/li&gt;
&lt;li&gt;How much sunlight do my plants need?&lt;/li&gt;
&lt;li&gt;What should I do first?&lt;/li&gt;
&lt;li&gt;What is my next gardening task?&lt;/li&gt;
&lt;li&gt;How can I build a consistent habit of spending time outdoors?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The experience starts with a garden profile. Based on the available gardening reference data and the selected garden conditions, SoilMate helps produce a planting plan and a sequence of practical activities.&lt;/p&gt;

&lt;p&gt;The objective isn't to keep someone chatting with AI all afternoon. It is to help them get ready, step outside, and do something with their hands.&lt;/p&gt;

&lt;h2&gt;
  
  
  ☀️ From a garden profile to seven days of action
&lt;/h2&gt;

&lt;p&gt;Gardening can feel overwhelming when you are starting from zero. SoilMate breaks the process into smaller steps.&lt;/p&gt;

&lt;p&gt;A seven-day plan can guide a beginner through activities such as:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 1 — Observe your space&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Spend time outside and identify where direct sunlight falls. Notice shade, wind, and the conditions around your pots.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 2 — Prepare your containers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Check container size, drainage holes, and the space available for roots to grow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 3 — Prepare the growing medium&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Inspect the potting mix and prepare it according to the requirements of the selected plants.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 4 — Start planting&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sow seeds or transplant suitable plants, following their spacing and depth requirements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 5 — Establish a watering routine&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Check soil moisture and learn to water according to the plant's needs rather than following a rigid schedule.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 6 — Observe and care&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Look for changes in the soil and plants. Check moisture, inspect leaves, and make small adjustments where necessary.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 7 — Reflect and plan ahead&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Record what you observed, review your progress, and decide what to do during the next week.&lt;/p&gt;

&lt;p&gt;These activities are a starting template, not a universal planting calendar. Actual sowing, watering, and growing recommendations must reflect the selected plant and relevant local conditions.&lt;/p&gt;

&lt;p&gt;The important part is that every step encourages a real-world action.&lt;/p&gt;

&lt;h2&gt;
  
  
  📵 Outdoor Mode: Your phone should get out of the way
&lt;/h2&gt;

&lt;p&gt;A gardening assistant should be useful when someone is standing next to a pot, not only when they are sitting at a desk.&lt;/p&gt;

&lt;p&gt;That is the thinking behind SoilMate's proposed &lt;strong&gt;Outdoor Mode&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Rather than presenting a long article or an endless AI conversation, Outdoor Mode focuses on the task that matters right now.&lt;/p&gt;

&lt;p&gt;The design goals are straightforward:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Large, easy-to-tap controls.&lt;/li&gt;
&lt;li&gt;High contrast for outdoor visibility.&lt;/li&gt;
&lt;li&gt;One clear task at a time.&lt;/li&gt;
&lt;li&gt;Short, actionable instructions.&lt;/li&gt;
&lt;li&gt;Minimal distractions and unnecessary navigation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The ideal interaction is simple: check the task, put the phone down, and get gardening.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Insert a genuine screenshot of Outdoor Mode here once the feature is implemented and tested.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🧠 Why open-source AI?
&lt;/h2&gt;

&lt;p&gt;The open-source AI part of this project is not just a technology choice. It shapes how SoilMate can be understood, improved, and extended.&lt;/p&gt;

&lt;p&gt;The challenge asks us to build something with open-source AI at its core and explain why open innovation matters. For SoilMate, that means making the model integration replaceable and keeping the gardening logic inspectable.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. A model should be replaceable
&lt;/h3&gt;

&lt;p&gt;AI models change quickly. A gardening assistant should not be permanently tied to one proprietary model or provider.&lt;/p&gt;

&lt;p&gt;By keeping the inference integration separate from the recommendation engine, SoilMate can support compatible open-weight models as provider availability, quality, and cost change.&lt;/p&gt;

&lt;p&gt;This separation also makes it easier for other developers to experiment with different models and compare their outputs.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Gardening facts should not depend entirely on a language model
&lt;/h3&gt;

&lt;p&gt;A language model can explain information in a friendly way, but it can also produce incorrect or unsupported advice.&lt;/p&gt;

&lt;p&gt;SoilMate's intended architecture combines curated gardening reference data with deterministic application logic and hosted AI inference.&lt;/p&gt;

&lt;p&gt;The application can first identify suitable candidate plants using factors such as sunlight, available space, container requirements, and gardening experience. The AI can then help turn that grounded context into an understandable plan.&lt;/p&gt;

&lt;p&gt;This separation matters: &lt;strong&gt;the model helps explain and organize recommendations; it should not be treated as the source of botanical truth.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. A useful fallback matters more than a perfect demo
&lt;/h3&gt;

&lt;p&gt;Hosted inference can fail. Free-tier quotas can run out, a model can become unavailable, and network requests can time out.&lt;/p&gt;

&lt;p&gt;SoilMate is designed to provide a deterministic fallback using its available gardening data and recommendation rules.&lt;/p&gt;

&lt;p&gt;If AI generation is unavailable, the application should communicate that limitation and offer a rule-based plan where sufficient verified data exists.&lt;/p&gt;

&lt;p&gt;A fallback is not a claim that every recommendation is correct. Its quality still depends on the underlying reference data and rules.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Open innovation makes experimentation possible
&lt;/h3&gt;

&lt;p&gt;An open implementation lets contributors inspect the recommendation logic, improve the data, add regional gardening knowledge, test alternative models, and challenge incorrect assumptions.&lt;/p&gt;

&lt;p&gt;That is valuable for a project like this because local growing conditions vary, and no single model should be treated as the final authority on gardening.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open innovation means people can understand the system, question its decisions, and help make it better.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🏗️ How SoilMate works
&lt;/h2&gt;

&lt;p&gt;The intended architecture separates the gardening knowledge, recommendation logic, AI integration, and user interface.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Garden profile
      |
      v
Input validation
      |
      v
Curated gardening reference data
      |
      v
Deterministic plant ranking
      |
      v
Hosted open-weight AI
      |
      v
Structured plan validation
      |
      +---- Valid output ----&amp;gt; Gardening plan
      |
      +---- AI failure ------&amp;gt; Rule-based fallback
                                  |
                                  v
                         Outdoor tasks and journal
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The project uses a Python-based web application approach, with Streamlit as the intended interface where compatible with the final implementation.&lt;/p&gt;

&lt;p&gt;The main technical responsibilities are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gardening data:&lt;/strong&gt; structured plant information and growing requirements.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recommendation engine:&lt;/strong&gt; transparent rules for ranking candidate plants.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI service:&lt;/strong&gt; hosted inference, prompt construction, response parsing, and error handling.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Validation:&lt;/strong&gt; structured input and output validation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User experience:&lt;/strong&gt; the planting plan, task checklist, and outdoor-focused interface.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing:&lt;/strong&gt; automated checks for data integrity, recommendation behavior, and failure handling.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The production application is intended to be accessible through a public hosted URL. AI inference therefore uses a hosted endpoint rather than requiring visitors to install a model or run a local AI server.&lt;/p&gt;

&lt;p&gt;This has a trade-off: hosted AI requires internet access and is subject to the provider's quotas and availability. Open-weight does not automatically mean unlimited, free, or fully offline.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Insert a genuine architecture diagram or application screenshot here.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔒 Privacy and user control
&lt;/h2&gt;

&lt;p&gt;Gardening preferences do not need to become another source of unnecessary data collection.&lt;/p&gt;

&lt;p&gt;SoilMate's intended privacy-first approach avoids requiring an account for the basic experience. Where feasible, plans and journal entries can remain in browser storage, with a JSON export and import option for users who want a backup.&lt;/p&gt;

&lt;p&gt;That approach has limitations. Browser-stored data may not synchronize between devices, and clearing browser data can remove it.&lt;/p&gt;

&lt;p&gt;Hosted AI also introduces a separate consideration: information included in an inference request is sent to the configured provider. The final application should explain what data is transmitted and avoid sending unnecessary personal details.&lt;/p&gt;

&lt;p&gt;Privacy claims should reflect the actual implementation, not just the design intention.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧪 What I want to improve next
&lt;/h2&gt;

&lt;p&gt;SoilMate is a starting point for exploring a different relationship between AI and everyday life.&lt;/p&gt;

&lt;p&gt;Some of the improvements I would prioritize are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better regional growing guidance based on reliable agricultural references.&lt;/li&gt;
&lt;li&gt;More transparent explanations of why a plant was recommended.&lt;/li&gt;
&lt;li&gt;Testing model outputs against deterministic recommendations.&lt;/li&gt;
&lt;li&gt;Better support for different container sizes and sunlight conditions.&lt;/li&gt;
&lt;li&gt;A simpler way to record garden observations over time.&lt;/li&gt;
&lt;li&gt;More testing of the experience in actual outdoor conditions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I would also like to evaluate alternative open-weight models based on recommendation quality, response time, reliability, and inference cost rather than choosing a model based only on popularity.&lt;/p&gt;

&lt;h2&gt;
  
  
  🌱 Try SoilMate and contribute
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Source code:&lt;/strong&gt; &lt;a href="https://github.com/awejofficial/soilmate" rel="noopener noreferrer"&gt;https://github.com/awejofficial/soilmate&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live demo:&lt;/strong&gt; &lt;a href="https://soilmate.streamlit.app" rel="noopener noreferrer"&gt;https://soilmate.streamlit.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository and demo links above should be published only after they have been verified and the corresponding project is available.&lt;/p&gt;

&lt;p&gt;If you are interested in gardening, open-source AI, or building tools that encourage people to spend more time away from their screens, there are several ways to contribute:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improve plant data using reliable horticultural sources.&lt;/li&gt;
&lt;li&gt;Add and test regional growing recommendations.&lt;/li&gt;
&lt;li&gt;Improve the deterministic recommendation engine.&lt;/li&gt;
&lt;li&gt;Evaluate compatible open-weight models.&lt;/li&gt;
&lt;li&gt;Improve accessibility and Outdoor Mode.&lt;/li&gt;
&lt;li&gt;Add tests for failure cases and unsupported recommendations.&lt;/li&gt;
&lt;li&gt;Report bugs and suggest ways to make the experience more useful for beginners.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🌍 The bigger idea: AI that helps us look up
&lt;/h2&gt;

&lt;p&gt;It is easy to judge an AI product by how much time people spend interacting with it.&lt;/p&gt;

&lt;p&gt;SoilMate explores a different measure of usefulness: whether a short interaction helps someone take a meaningful action outside the screen.&lt;/p&gt;

&lt;p&gt;Maybe that action is planting a few coriander seeds. Maybe it is observing how sunlight moves across a balcony. Maybe it is simply learning to care for one small plant.&lt;/p&gt;

&lt;p&gt;The action itself does not need to be extraordinary.&lt;/p&gt;

&lt;p&gt;The important thing is that technology helps make it happen.&lt;/p&gt;

&lt;p&gt;For the &lt;em&gt;Touch Grass&lt;/em&gt; challenge, I wanted to explore how open-weight AI, transparent application logic, and accessible gardening knowledge could work together to support that goal.&lt;/p&gt;

&lt;p&gt;Because sometimes the best result of using AI is knowing when to put your phone down.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Grow More. Scroll Less. Happy Hacktoberfest! 🌱&lt;/strong&gt;&lt;/p&gt;

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