<?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: Sahil Jaiswal</title>
    <description>The latest articles on DEV Community by Sahil Jaiswal (@sahil_jaiswal_6affec34584).</description>
    <link>https://dev.to/sahil_jaiswal_6affec34584</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%2F4158334%2F276a766f-7f96-4990-b841-4dccc8e5b85f.jpeg</url>
      <title>DEV Community: Sahil Jaiswal</title>
      <link>https://dev.to/sahil_jaiswal_6affec34584</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sahil_jaiswal_6affec34584"/>
    <language>en</language>
    <item>
      <title>GardenBuddy: A Weather-Aware Plant Assistant That Remembers</title>
      <dc:creator>Sahil Jaiswal</dc:creator>
      <pubDate>Sun, 04 Oct 2026 17:18:08 +0000</pubDate>
      <link>https://dev.to/sahil_jaiswal_6affec34584/gardenbuddy-a-weather-aware-plant-assistant-that-remembers-2m0g</link>
      <guid>https://dev.to/sahil_jaiswal_6affec34584/gardenbuddy-a-weather-aware-plant-assistant-that-remembers-2m0g</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;I built &lt;strong&gt;GardenBuddy&lt;/strong&gt;, a small plant care dashboard for a friend who loves plants but does not want plant care to become another thing to constantly remember.&lt;/p&gt;

&lt;p&gt;The idea is simple: when you add a plant, you also select where it lives. That can be a city and region, plus whether the plant is indoors, outdoors, or on a balcony. GardenBuddy then checks the local weather for that area and turns it into practical care advice.&lt;/p&gt;

&lt;p&gt;So instead of only saying “water every 3 days,” it can notice the situation around the plant. If rain is coming, it may tell you to skip watering. If the day is too hot, it may suggest filtered light or shade. If the night is too cold, it may suggest moving the plant inside. The goal is to make the daily decision easier: what should I do for this plant today?&lt;/p&gt;

&lt;p&gt;Each plant gets its own card with the plant image, weather strip, care status, main action, reason, placement advice, and growth advice. The basic care rules are always available, so the app still works even without AI.&lt;/p&gt;

&lt;p&gt;On top of that, GardenBuddy has a local AI assistant powered by Qwen through Ollama. There are two AI experiences. The first is an AI care plan, where Qwen looks at the plant profile, weather, rule signal, watering history, calendar tasks, and saved memory to create a more detailed plan. The second is plant chat, where you can ask questions about one specific plant.&lt;/p&gt;

&lt;p&gt;This is where GardenBuddy is different from a normal chatbot. A normal AI bot can answer “why are tomato leaves yellow?” but it does not know your tomato plant. GardenBuddy can use the plant’s actual history: when it was watered, what the weather looked like, what advice was given earlier, and whether a similar issue happened before.&lt;/p&gt;

&lt;p&gt;For example, if I ask about yellow tomato leaves today, GardenBuddy can save that incident with the weather, care signal, and answer. Later, if I ask again about the same tomato plant, it can bring that memory back before Qwen answers. That makes the assistant feel more like a plant journal with memory, not just a generic Q&amp;amp;A box.&lt;/p&gt;

&lt;p&gt;There is also a care calendar. It shows upcoming watering checks, weather warnings, and tasks grouped by plant. I can add my own task, remove something that does not apply, or view all plants together. This makes the app useful beyond one-time advice because it helps plan what needs attention over the next few days.&lt;/p&gt;

&lt;p&gt;GardenBuddy is meant to be calm and practical. It does not try to replace gardening knowledge. It helps someone who likes plants make better daily decisions with less guessing.&lt;/p&gt;

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

&lt;p&gt;&lt;iframe src="https://player.vimeo.com/video/1232801749" width="710" height="399"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

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


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Sahil-Jaiswal-189" rel="noopener noreferrer"&gt;
        Sahil-Jaiswal-189
      &lt;/a&gt; / &lt;a href="https://github.com/Sahil-Jaiswal-189/GardenBuddy" rel="noopener noreferrer"&gt;
        GardenBuddy
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;GardenBuddy&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;GardenBuddy is a weather-aware plant care dashboard for people who want simple, practical help with their plants.&lt;/p&gt;
&lt;p&gt;It tracks each plant separately, checks the local forecast for that plant's city, creates a care calendar, and can use a local open-weight model through Ollama for plant-specific planning and chat. The app is designed to stay useful even when the AI model is not running.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What It Does&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Add plants with name, type, city, region, stage, placement, sunlight, watering rhythm, and notes.&lt;/li&gt;
&lt;li&gt;Fetch a 7-day forecast for each plant location using Open-Meteo.&lt;/li&gt;
&lt;li&gt;Show clear care signals such as &lt;code&gt;Needs water&lt;/code&gt;, &lt;code&gt;Skip watering&lt;/code&gt;, &lt;code&gt;Heat watch&lt;/code&gt;, &lt;code&gt;Protect from rain&lt;/code&gt;, and &lt;code&gt;Too cold outside&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Build a horizontal care calendar with watering checks, weather warnings, and user-added tasks.&lt;/li&gt;
&lt;li&gt;Let you log care actions such as watering.&lt;/li&gt;
&lt;li&gt;Keep plant-specific memory, so later AI answers can refer to past issues for that…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Sahil-Jaiswal-189/GardenBuddy" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


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

&lt;p&gt;GardenBuddy is a lightweight full-stack app with a plain HTML, CSS, and JavaScript frontend and a small Node.js backend.&lt;/p&gt;

&lt;p&gt;When a user adds a plant, the app saves the plant profile and location. The backend uses Open-Meteo to fetch weather for that city and region. The frontend then combines that weather with the plant’s watering rhythm, placement, sunlight preference, and last watered date to show the basic rule-based care signal.&lt;/p&gt;

&lt;p&gt;I wanted the rules to exist separately from AI because they make the app dependable. Even if the model is offline, GardenBuddy can still show useful care actions like watering, skipping watering because of rain, protecting from heat, or moving a plant away from cold weather.&lt;/p&gt;

&lt;p&gt;The AI layer runs locally through Ollama using &lt;code&gt;qwen2.5:3b&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Qwen is used after the basic signal is calculated. It does not blindly decide everything from scratch. It receives structured context from the app: the selected plant, today’s weather, the care signal, care logs, calendar tasks, previous AI plans, and relevant plant memories. That context is what makes the answer feel connected to the actual plant.&lt;/p&gt;

&lt;p&gt;MongoDB Atlas is used as the persistent data layer. It stores the garden state, plant profiles, calendar tasks, care logs, generated AI plans, and plant memories.&lt;/p&gt;

&lt;p&gt;The most important collection is &lt;code&gt;plantMemories&lt;/code&gt;. When the user chats about a plant, GardenBuddy can save the question, answer, current weather, care signal, and tags. The next time the user asks something about that same plant, the backend searches those memories and passes the relevant ones to Qwen.&lt;/p&gt;

&lt;p&gt;The calendar is also part of the main workflow. GardenBuddy automatically creates useful upcoming tasks from watering rhythm and weather forecast, and the user can add custom tasks too. The calendar is grouped by plant so advice does not become one messy list.&lt;/p&gt;

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

&lt;p&gt;Open innovation matters here because GardenBuddy works with personal routines and home context.&lt;/p&gt;

&lt;p&gt;A plant care app can know someone’s city, balcony setup, indoor placement, watering habits, travel rhythm, and repeated plant problems. Using a local open-weight model through Ollama means the AI part can run on the user’s own machine instead of depending on a paid closed API for every answer.&lt;/p&gt;

&lt;p&gt;It also makes the system more flexible. The model can be swapped, prompts can be changed, and the app can still work when the model is offline because the rule layer remains available.&lt;/p&gt;

&lt;p&gt;For me, the useful part is the combination: rules for reliable daily decisions, weather for real-world context, MongoDB for memory, and Qwen for personalized guidance. The AI is not just pasted on top. It is grounded in the plant’s saved history and the app’s actual care logic.&lt;/p&gt;

&lt;p&gt;That is what makes GardenBuddy different from asking a normal chatbot. It does not only know general plant advice. It can remember what happened to your plant.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Best Use of MongoDB Atlas&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GardenBuddy uses MongoDB Atlas as the data layer for plant profiles, garden state, calendar tasks, care logs, generated AI plans, and plant-specific memories.&lt;/p&gt;

&lt;p&gt;MongoDB is especially important for the memory feature. Before Qwen answers a plant question, GardenBuddy retrieves relevant memories for that same plant and includes them in the context. This lets the assistant respond with awareness of past symptoms, watering decisions, weather stress, and previous care advice.&lt;/p&gt;

&lt;p&gt;MongoDB Atlas is not just where the data sits. It is what lets GardenBuddy become more useful the longer someone uses it.&lt;/p&gt;

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