DEV Community

Rajan Patel
Rajan Patel

Posted on

Plant Your Planet | geospatial & temporal analytical guide

PlantMyPlanet: Interactive AI Garden Planner Built on Real-World Soil & Climate Data

Submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass

Built in collaboration with @dkb73

Uploading image

What We Built

PlantMyPlanet is an open-source, hyper-local garden planning application that starts with the ground under your feet instead of relying on a generic plant catalog.

When a user drops a pin on the map, the application fetches real-time soil composition and climate parameters for those exact coordinates, matches them against $2,568$ crops in the FAO EcoCrop dataset, and generates a stage-by-stage outdoor care checklist accompanied by an AI chat advisor tied directly to that specific planting instance.

My Contribution & Engineering Focus

Working alongside @dkb73, my primary responsibilities centered around the FastAPI backend architecture, weather API integration, frontend user interface, and the LLM chat advisor system:

  1. FastAPI Backend Architecture: Designed and built the asynchronous FastAPI endpoints that coordinate requests, manage planting sessions, and handle data flow between the user interface, database, and external services.

  2. Weather API Integration: Built the integration with Open-Meteo and NASA POWER to pull live climate metrics, elevation, solar radiation, and $16$-day local weather forecasts dynamically based on user-selected coordinates.

  3. Frontend UI & Interactive Experience: Created the responsive user interface (HTML/JS) allowing users to drop a location pin, view suitabilities across crops, select planting scales, and track their garden progress stage-by-stage.

  4. Contextual LLM Chat Advisor: Developed the interactive chat system powered by open-weight models (Google Gemma via OpenRouter). The prompt dynamically injects the specific planting context—crop type, days in the ground, current growth stage, pending tasks, and recent garden field notes—to deliver grounded, actionable advice.

Technical Stack

  • Backend: Python, FastAPI, Asyncio

  • Frontend: HTML5, CSS3, JavaScript

  • Weather & Climate APIs: Open-Meteo API, NASA POWER API

  • AI Chat & Models: Google Gemma (google/gemma-4-31b-it:free, google/gemma-4-26b-a4b-it:free), NVIDIA Nemotron, Liquid LFM via OpenRouter

  • Database: PostgreSQL 16 (FAO EcoCrop catalog)

Code Repository & Walkthrough

Local Quickstart

docker compose up -d
python db/ingest_ecocrop.py
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
Enter fullscreen mode Exit fullscreen mode

Why Open Innovation Matters

By combining transparent, public weather and environmental data with swappable open-weight models like Google Gemma, PlantMyPlanet provides grounded advice without hiding its reasoning inside a closed model. If an API key is omitted, the app gracefully falls back to a deterministic agronomic timeline—ensuring that real-world gardeners always have actionable guidance.

Prize Categories

  • Best Use of Gemma

Hacktoberfest #OpenSource #TouchGrass #PlantMyPlanet #Gemma #OpenWeightAI

Top comments (0)