{"slug": "i-built-g-buudddyy-bringing-ai-powered-experiences-beyond-the-screen", "title": "I Built G-Buudddyy : Bringing AI-Powered Experiences Beyond the Screen", "summary": "A developer built AI Garden Buddy, a local-first gardening assistant that runs a Google Gemma model through Ollama to generate personalized plant recommendations and seven-day gardening plans. The FastAPI and React application validates model output with JSON Schema and Pydantic, and reports model failures rather than presenting fabricated plans.", "body_md": "# \n  \n  \n  AI Garden Buddy\n\n**Less scrolling. More growing.**\n\nAI Garden Buddy is a local-first gardening assistant that uses AI to help people start gardening. It recommends suitable plants, generates a personalized seven-day gardening plan, and suggests one small outdoor task to complete each day.\n\nBuilt for the **Hacktoberfest Open-Source AI Challenge — Week 1: Touch Grass**.\n\n## \n  \n  \n  Live Demo\n\n**Live Application:** [https://hacktoberfest-tawny.vercel.app/](https://hacktoberfest-tawny.vercel.app/)\n\n**GitHub Repository:** [https://github.com/yogesh968/hacktoberfest](https://github.com/yogesh968/hacktoberfest)\n\nNote: AI plan generation requires the FastAPI backend and Ollama. The deployed frontend needs a reachable backend to generate plans for online users.\n\n## \n  \n  \n  Features\n\n- \n**Personalized Plant Recommendations:** Suggests plants based on city, garden type, sunlight, and gardening experience.\n- \n**Seven-Day Gardening Plan:** Generates a practical daily schedule based on available time.\n- \n**Daily Outdoor Tasks:** Provides actionable gardening activities with instructions and estimated completion times.\n- \n**Progress Tracking:** Allows users to mark tasks as complete and record reflections in their browser.\n- \n**Safety Notes:** Highlights considerations such as plant toxicity, heat exposure, heavy pots, and tools.\n- \n**Uncertainty Notes:** Explains limitations, including the lack of live weather and frost-date information.\n- \n**Local AI Inference:** Runs a Gemma model locally through Ollama.\n- \n**Structured Output Validation:** Uses JSON Schema and Pydantic to validate AI-generated plans.\n- \n**Reliable Error Handling:** Reports model failures instead of presenting fabricated AI-generated plans.\n\n## \n  \n  \n  Tech Stack\n\n### \n  \n  \n  Frontend\n\n- React 18\n- Vite 6\n- Tailwind CSS v4\n- lucide-react\n- Fontsource\n\n### \n  \n  \n  Backend\n\n- Python\n- FastAPI\n- Pydantic v2\n- Uvicorn\n- httpx\n- pydantic-settings\n\n### \n  \n  \n  AI and Testing\n\n- Google Gemma\n- Ollama\n- JSON Schema\n- pytest\n- ESLint\n\n## \n  \n  \n  How It Works\n\n1. The user enters their city, garden type, sunlight conditions, experience level, and available daily time.\n2. The React frontend sends the information to the FastAPI backend.\n3. The backend sends a prompt and JSON Schema to a Gemma model through Ollama.\n4. Pydantic validates the generated response.\n5. The frontend displays the gardening plan, plant recommendations, safety notes, and daily task.\n6. The user completes the outdoor task, marks it as done, and records a reflection.\n\n### \n  \n  \n  Architecture\n\n## \n  \n  \n  Getting Started\n\n### \n  \n  \n  Prerequisites\n\n- Python 3.10 or later\n- Node.js and npm\n- [Ollama](https://ollama.com/download)\n- Sufficient memory and disk space for your selected AI model\n\n### \n  \n  \n  1. Clone the Repository\n\n### \n  \n  \n  2. Download the AI Model\n\nInstall Ollama and run:\n\nAlternatively, use the smaller model:\n\n### \n  \n  \n  3. Set Up the Backend\n\nActivate the environment.\n\n**Windows PowerShell:**\n\n**macOS/Linux:**\n\nInstall dependencies:\n\nCopy the example environment file:\n\n### \n  \n  \n  4. Set Up the Frontend\n\nOpen another terminal from the repository root:\n\nCopy the frontend environment file:\n\nFor local development, configure the backend URL:\n\n### \n  \n  \n  5. Run the Application\n\nStart Ollama if it is not already running:\n\nStart the backend from the `backend` directory:\n\nStart the frontend from the `frontend` directory:\n\nOpen the application:\n\nMake sure the model configured in the backend has been downloaded.\n\n## \n  \n  \n  API Overview\n\n### \n`GET /api/health`\n\nChecks backend health and model connectivity.\n\n### \n`POST /api/garden-plan`\n\nGenerates a personalized gardening plan.\n\nExample request:\n\nUse the exact request fields and accepted values defined by the backend's Pydantic model.\n\n## \n  \n  \n  Reliability and Error Handling\n\nThe backend uses multiple validation layers to improve reliability:\n\n- Ollama structured outputs constrain the response using JSON Schema.\n- Pydantic validates the generated response.\n- Additional checks enforce application-specific requirements, including seven days and between two and six plant recommendations.\n- Invalid output triggers one retry.\n- If validation still fails, the backend returns a clear error.\n\nWhen AI generation is unavailable, the application can display general gardening advice labelled **\"Not AI-generated\"** instead of pretending it came from the model.\n\n## \n  \n  \n  Testing\n\nThe backend includes **13 automated API tests using pytest**.\n\nThe tests use a fake HTTP transport instead of Ollama, allowing API behavior and failure scenarios to be tested without running an actual model.\n\nCoverage includes:\n\n- Valid plans\n- Malformed model output and retry behavior\n- Ollama being unavailable\n- Missing models\n- Request timeouts\n- Invalid form input\n\nRun the backend tests:\n\nRun frontend checks from the frontend directory:\n\n## \n  \n  \n  Privacy\n\nWith the default local configuration:\n\n- User inputs are sent to the local FastAPI backend and Ollama service.\n- The backend does not log the city or other form inputs.\n- Task completion and reflections are stored in the browser.\n- Local AI inference does not require a hosted AI API key.\n\nThese privacy statements apply to the local configuration. A remote backend or cloud model may process data outside the user's computer.\n\n## \n  \n  \n  Limitations\n\n- The application does not automatically retrieve live weather or frost-date information.\n- Plant recommendations may not account for every local growing condition.\n- Smaller AI models may occasionally generate invalid or imperfect responses.\n- Generation speed depends on the user's hardware.\n- Users should verify plant toxicity and local growing advice, especially around children and pets.\n\n## \n  \n  \n  Model Licensing\n\nGemma models have their own licensing terms. Gemma 3 is distributed under Google's Gemma Terms of Use, which differ from an OSI-approved open-source license.\n\nCheck the applicable terms for the specific model version you use. The application's code license and the AI model's license are separate.\n\n## \n  \n  \n  Contributing\n\nContributions and suggestions are welcome.\n\n1. Fork the repository.\n2. Create a branch for your changes.\n3. Implement your changes and add tests where appropriate.\n4. Run the relevant tests and code-quality checks.\n5. Submit a pull request describing your changes.\n\nPlease do not commit secrets, environment files, or other sensitive information.\n\n## \n  \n  \n  Future Improvements\n\n- Integration with verified weather and climate information\n- Multilingual gardening assistance\n- Plant images with appropriate attribution\n- Saved gardening plans and streaks\n- Improved regional plant recommendations\n- Simplified local setup using Docker Compose\n\n## \n  \n  \n  Acknowledgements\n\nBuilt for the **Hacktoberfest Open-Source AI Challenge — Week 1: Touch Grass**.\n\nAI Garden Buddy explores how locally run AI can help people move from browsing and learning to taking meaningful action in the real world.\n\n**Less scrolling. More growing.**", "url": "https://wpnews.pro/news/i-built-g-buudddyy-bringing-ai-powered-experiences-beyond-the-screen", "canonical_source": "https://dev.to/yogesh968/i-built-g-buudddyy-bringing-ai-powered-experiences-beyond-the-screen-12e2", "published_at": "2026-10-16 04:59:17+00:00", "updated_at": "2026-10-16 05:04:52.863504+00:00", "lang": "en", "topics": ["ai-tools", "large-language-models", "generative-ai", "developer-tools"], "entities": ["AI Garden Buddy", "Ollama", "Google Gemma", "FastAPI", "React", "Pydantic", "Hacktoberfest"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/i-built-g-buudddyy-bringing-ai-powered-experiences-beyond-the-screen", "markdown": "https://wpnews.pro/news/i-built-g-buudddyy-bringing-ai-powered-experiences-beyond-the-screen.md", "text": "https://wpnews.pro/news/i-built-g-buudddyy-bringing-ai-powered-experiences-beyond-the-screen.txt", "jsonld": "https://wpnews.pro/news/i-built-g-buudddyy-bringing-ai-powered-experiences-beyond-the-screen.jsonld"}}