🌱 Q Ogród — stan na marzec 2026

Jak działa Q Ogród dziś

Kompletny przegląd wszystkich modułów — od onboardingu, przez planowanie skrzynek, kalkulator upraw, aż po bazę wiedzy AI.

🚀 q-ogrod.pages.dev ↗
7
Kroków onboardingu
4
Główne zakładki
38
Warzyw w bazie
150+
Par sąsiedztwa
248
Rekordów wiedzy AI
5cm
Precyzja siatki skrzynki
📋 Krok 1

Onboarding — 7 kroków

Ewa wchodzi do aplikacji i opowiada o swoim ogrodzie. Q zapamiętuje wszystko i buduje spersonalizowany plan.

1

Typ ogrodu

Kafelki do wyboru: 🏡 Przydomowy / 🌱 Działkowy / 🪴 Balkonowy / 🏗️ Szklarniowy. Multi-select — można mieć kilka typów jednocześnie.

Multi-selectZapis localStorage
2

Co masz w ogrodzie

Checkboxes: ✅ Skrzynki warzywne, ✅ Grządki, ✅ Szklarnia, ✅ Szpalet, ✅ Sad, ✅ Trawnik, ✅ Rośliny ozdobne, ✅ Drzewa owocowe, ✅ Krzewy owocowe. Wybór determinuje kolejne kroki.

Warunkowe krokiKluczowy dla personalizacji
3

Skrzynki warzywne — wymiary i zdjęcia

Dodawanie każdej skrzynki: nazwa, szerokość i długość w cm, typ (raised bed / grządka). Upload zdjęcia skrzynki → zapisywane w Supabase Storage. Można dodać wiele skrzynek.

Upload zdjęćSupabase StorageWiele skrzynek
4

Metoda siewu

3 opcje: 🪴 Przez rozsadę (siew pod dachem → przesadzenie) / 🌱 Bezpośrednio do ziemi / 🔄 Oba sposoby. Wpływa na kalendarz zadań i powiadomienia.

Kalendarz siewówWpływa na zadania
5

Rośliny trwałe + Trawnik

7 kategorii roślin trwałych z checkboxami: byliny, drzewa owocowe, krzewy owocowe, hortensje/iglaki, trawy ozdobne, kwiaty cebulowe, inne ozdobne. Autocomplete z bazy Supabase. Pola: powierzchnia trawnika (m²) + checkbox "Mam robot koszący 🤖".

Autocomplete AI7 kategoriiRobot koszący
6

Decyzja: czy planujemy teraz?

"Czy chcesz teraz zaplanować ogród warzywny?" — ✅ Tak → przejdź do kroku 7 → ⏭️ Nie, zrobię później → aplikacja otwiera się bezpośrednio na zakładce Plan z gotowym widgietem planowania.

Punkt rozgałęzieniaSmart routing
7

Co uprawiam w 2026

Selektor upraw z emoji pogrupowany w 8 kategorii: Warzywa owocowe, Korzeniowe, Liściowe, Cebulowe, Strączkowe, Owoce jagodowe, Zioła, Szparagowe. Każda roślina = kafelek z emoji i nazwą. Zapisuje się w localStorage jako plan sezonu.

8 kategoriiPlan sezonuEmoji UI
📦 Zakładka Plan

Planer skrzynek — precyzja 5cm

Interaktywna siatka każdej skrzynki. Każda komórka = 5×5cm. Drag & drop rzędów, zoom, AI planowanie, historia płodozmianu.

📦 Skrzynka 1

200×100cm · 40×20 komórek

🍅
🍅
🍅
🍅
🍅
🍅
🍅
🍅
🌿
🌿
🌿
🌿
🥕
🥕
🥕
🥕
🥕
🥕
🥕
🥕
🥬
🥬
🥬
🥬
🥬
🥬
🥬
🥬
✏️
Edytuj układ

Otwórz pełny edytor

🧮
Kalkulator skrzynki

Dobierz optymalne warzywa

Siatka 5cm × 5cm

Każda skrzynka rozbita na komórki 5×5cm. Skrzynka 200×100cm = 800 komórek. Każda komórka może zawierać jedną roślinę z emoji.

👆

Kliknięcie komórki

Otwiera listę roślin A-Z. Wybierz → komórka wypełnia się emoji.

↕️

Drag rzędu

Złap i przesuń ≥8px → tryb drag. Zielone = źródło, żółte = cel.

🔍

Zoom 2×

Przycisk Powiększ — podwaja komórki, siatka scrollowalna.

🎙️

AI głosowe

Nagraj opis ogrodu → Gemini tłumaczy na układ komórek.

Lista rzędów — smart grouping

Rząd poziomy

2+ komórek w tym samym wierszu siatki. Suwak przesuwa góra-dół. Edycja: roślina + odstęp.

Rząd pionowy

1 komórka w wielu wierszach tej samej kolumny. Suwak przesuwa lewo-prawo.

✏️

Edycja inline

Kliknij ✏️ → zmień roślinę + suwaki odstępu → live preview na siatce natychmiast.

Wstawianie rzędów — InsertRowPanel

📐

3 suwaki precyzji

Wszystkie zakresy 1–100cm, krok 1cm (marchewka co 2cm bez problemu!):

Co ile cm (rozstaw) Od brzegu (margines) Odstęp rzędów
🌱

74 rośliny do wyboru

Lista CURRENT_PLANTS_LIST — 74 rośliny pogrupowane w 8 kategorii. Dropdown A-Z. Każda z emoji. Spójne we wszystkich komponentach.

🧮 Kalkulator

Kalkulator skrzynki — optymalizacja AI

Podaj wymiary, historię, porę roku — algorytm dobiera warzywa uwzględniając sąsiedztwo, płodozmian i dostępną przestrzeń.

🧮 Kalkulator skrzynki

Dobierz optymalne rośliny

✅ Optymalny plan (przykład)

🥕
Marchew
32 szt · rzędy co 25cm
Baldaszkowate
🥬
Sałata
24 szt · rzędy co 30cm
Złożone
🌿
Bazylia
12 szt · uzupełnienie
Zioła
🫘
Fasola
8 szt · wiąże azot ✨
Motylkowate

Jak działa algorytm

1️⃣
Oblicz pojemność

floor(W/spacingRec) × floor(L/rowSpacing) = ile sztuk danego warzywa zmieści się

2️⃣
Wyklucz po płodozmianie

Jeśli poprzedni rok = psiankowate → wyklucz pomidor, paprykę, ziemniaka (3 lata przerwy)

3️⃣
Unikaj złych sąsiedztw

150+ par sąsiedztwa — jeśli dwa warzywa to bad neighbors, wybierz tylko jedno

4️⃣
Prioritetuj motylkowate

Fasola/groch wiążą azot → zawsze proponuj jako uzupełnienie

5️⃣
Dobierz poplon

Po głównym zbiorze → sugestia co posadzić (szpinak po pomidorze, rzodkiewka po kapuście)

Baza danych agronomicznych

🔄

10 rodzin botanicznych

Psiankowate, Kapustne, Baldaszkowate, Motylkowate, Liliowate, Dyniowate, Złożone, Komosowate, Trawy, Zioła.

🤝

150+ par sąsiedztwa

Macierz COMPANION_MATRIX z funkcją getCompanionship(id1, id2) zwracającą 'good' | 'bad' | 'neutral'.

Przykłady sąsiedztwa

RoślinaDobre sąsiedztwo ✅Złe sąsiedztwo ❌Rozstaw
🍅 PomidorBazylia, Marchew, Cebula, CzosnekKoper, Ziemniak, Fenkuł60cm / rzędy 70cm
🥕 MarchewPomidor, Cebula, Sałata, RozmarynKoper, Buraki5cm / rzędy 25cm
🥒 OgórekKoper, Fasola, Sałata, CebulaZiemniak, Pomidor40cm / rzędy 60cm
🧄 CzosnekPomidor, Marchew, Truskawka, RóżeFasola, Groch, Kapusta10cm / rzędy 20cm
🥬 SałataMarchew, Rzodkiewka, TruskawkaSeler25cm / rzędy 30cm
📚 Zakładka Wiedza

Baza wiedzy AI — Gemini 2.0

3 pod-zakładki: Moje rośliny (live-sync), Dowiedz się więcej (AI cards z Gemini), Podcast. 248 rekordów w Supabase.

🌱

Moje rośliny

Agreguje ze wszystkich 6 źródeł danych jednocześnie. Zawsze aktualne — każda zmiana w onboardingu lub planerze pojawia się natychmiast.

6 źródełLive sync
📚

Dowiedz się więcej

Kliknij dowolne warzywo → Gemini generuje szczegółową kartę wiedzy. Cache w localStorage — po pierwszym ładowaniu błyskawicznie.

Gemini AICache offline
🎙️

Podcast

Lista odcinków podcastu ogrodniczego z playerem audio. Transkrypty weszłyby do bazy Supabase plant_knowledge.

Audio player

Karta wiedzy AI — przykład: Pomidor 🍅

🍅

Pomidor

Solanum lycopersicum · Psiankowate · Gemini 2.0 Flash

🌱
Siew
Luty–marzec pod dachem. Głębokość 0,5–1cm. Temp. kiełkowania 20–25°C. Wschody po 7–14 dniach.
🌿
Rozsada
Pikowanie gdy 2 liście właściwe. Hartowanie 2 tyg. przed sadzeniem. Idealna rozsada: 20–25cm.
🏡
Sadzenie
Maj–czerwiec, po ostatnim mrozie. Rozstaw 60cm, rzędy 70cm. Głęboko — aż po liście cotyledonowe.
💧
Pielęgnacja
Usuwanie pędów bocznych (wyłamywanie). Nawadnianie u podstawy. Paliki lub klatki podporowe. Nawożenie co 2 tyg.
🌾
Zbiory
Lipiec–październik (90 dni od sadzenia). Zbieraj gdy w pełni czerwone. Przechowuj w temperaturze pokojowej, nie w lodówce.

6 źródeł danych — Moje rośliny

📦

Rośliny użytkowe

Z setup.functionalPlants (onboarding krok 2)

🏗️

Rośliny szklarniowe

Z setup.greenhousePlants (jeśli ma szklarnię)

🌸

Rośliny trwałe

Z setup.perennials (onboarding krok 5)

✍️

Własne dodane

Z q-ogrod-my-plants (EditPlantsModal)

🗓️

Plan sezonu

Z q-ogrod-season-{rok} (onboarding krok 7)

🗺️

Siatka skrzynek

Z beds grid — co jest narysowane w planerze

🏠 Zakładka Dziś

HomeView — co robić teraz

Zadania generowane dynamicznie na podstawie kalendarza siewów, roślin trwałych i historii ogrodu.

🌱 Dziś w ogrodzie

Wtorek, 10 marca · Wiosna

🔴
Przycinanie drzew
Lutowy cięcie — do zrobienia!
🟢
Siew pomidorów pod dachem
Marzec — idealny czas
🔵
Siew papryki
Marzec — przez rozsadę
🌡️Warszawa · 8°C · Zachmurzenie
Animacja ukończenia

Kliknij zadanie → zielone ✓ → 2 sekundy → fade out. iPhone Reminders style.

👈
Swipe-left do usunięcia

Przesuń w lewo → pojawia się 🗑 → tap "Usuń?" → tap → usunięte trwale.

📊
Progress breadcrumb

3 kroki: 📦 Skrzynki / 🌸 Rośliny / 🗓️ Plan. Żółty = do zrobienia, zielony = gotowe.

🌤️
WeatherWidget

Temperatura, ikona, opis. Dane z wttr.in. Lokalizacja z ClimateContext.

💚 Głos użytkownika

Czego chce Ewa

Ewa (główna użytkowniczka) testuje aplikację na żywo i zgłasza konkretne potrzeby. To jest nasz kompas produktowy.

"Chcę aplikację która wie kiedy siać, mówi mi co do czego pasuje, i pokazuje mi to wizualnie w mojej konkretnej skrzynce — nie ogólnie, ale dokładnie jak to ma wyglądać."
— Ewa Strzelczyk, ogrodniczka, mama Bruna i Tymka
📦

Planer skrzynek z siatką

Interaktywna siatka 5cm/komórka. Drag & drop rzędów. Zoom. Każde warzywo z emoji.

✅ LIVE
↕️

Przeciąganie rzędów

Złap rząd i przesuń góra-dół lub lewo-prawo. Threshold 8px, działa myszą i palcem.

✅ LIVE
🔍

Zoom siatki

Przycisk "Powiększ" — 2× rozmiar komórek. Małe warzywa jak marchewka co 2cm widoczne.

✅ LIVE
📐

Suwaki 1–100cm krok 1cm

"Marchewka sieje się co 2cm" — wcześniej minimum było 5cm. Teraz od 1cm.

✅ LIVE
🌱

Moje rośliny — live sync

Lista roślin zawsze aktualna ze wszystkich 6 źródeł. Zmiana w planerze = natychmiastowe odzwierciedlenie.

✅ LIVE
✏️

Edycja moich roślin

Modal "Edytuj moje rośliny" — 7 kategorii, dodaj Miskant, Dereń, cokolwiek. Z checkboxami.

✅ LIVE
🤝

Dobre sąsiedztwo warzyw

Tabela 150+ par. Kalkulator ostrzega jeśli dwa warzywa to złe sąsiedztwo.

✅ LIVE
🔄

Płodozmian z ostrzeżeniami

Kalkulator wyklucza rodziny które były w zeszłym roku. Pokazuje sekwencję przedplon→plon→poplon.

✅ LIVE
🎙️

AI — głosowe planowanie

Nagraj opis co chcesz posadzić → Gemini tłumaczy na układ skrzynki. "Chcę pomidory z lewej, marchew po środku".

✅ LIVE
📚

Karta wiedzy AI

Kliknij warzywo → Gemini generuje: siew, rozsada, sadzenie, pielęgnacja, zbiory. Cache offline.

✅ LIVE
🗺️

Legenda nie zakrywa warzyw

Bug zgłoszony przez Ewę podczas visual test. Legenda planera zakrywa część warzyw.

🔧 DO NAPRAWY
⚠️

Ostrzeżenia allelopatii

Popup gdy dwa warzywa ze złym sąsiedztwem są blisko siebie w siatce. "Pomidor i koper — zły sąsiad!"

📋 PLANOWANE
🔁

Restore danych testowych

Przycisk "Przywróć moje dane" — szybkie przywrócenie zapisanego zestawu danych do testowania.

📋 PLANOWANE
🛒

Frisco.pl auto-zamówienie

Lista zakupów z Qook → automatyczne zamówienie na Frisco.pl. Ewa bardzo na to czeka.

🔜 KOLEJNY SPRINT
🏗️ Pod maską

Architektura techniczna

Zero backendu dla danych użytkownika — wszystko w localStorage. Supabase tylko dla bazy roślin. Gemini dla AI.

⚛️

React 18 + Vite

SPA bez routera. Stan w useState. Build w 800ms.

🎨

Tailwind CSS

Utility-first. Mobile-first. max-width 480px. Font: Poppins.

☁️

Cloudflare Pages

Deploy w sekundy. Functions API. Bezpłatne, nieograniczona bandwidth.

🗄️

Supabase

248 rekordów plant_knowledge. Storage zdjęć. Tokeny Withings.

🧠

Gemini 2.0 Flash

Karta wiedzy AI, planowanie głosowe, analiza układu skrzynki, lista zakupów.

💾

localStorage

Wszystkie dane użytkownika lokalnie. Prywatność by design. Offline-first.

🐙

GitHub

Repo: damianstrzelczyk/q-ogrod. Private. CI/CD przez Cloudflare Pages.

🗺️ Co dalej

Roadmap — następne kroki

Trzy priorytety dla GardenOS — nowego agenta deweloperskiego Q Ogrodu.

🔴

Must Have (Sprint 1)

Krytyczne dla UX:

  • QA Kalkulatora w przeglądarce
  • Persystencja układu skrzynki po refresh
  • Restore danych testowych dla Ewy
  • Legenda nie zakrywa warzyw
🟡

Should Have (Ten miesiąc)

Zwiększa wartość:

  • Export planu do PDF
  • Historia płodozmianu 3 lata
  • Ostrzeżenia allelopatii na siatce
  • Powiadomienia o czasie siewu
🟢

Nice to Have (Backlog)

Duże różnicowanie:

  • PWA — install + offline
  • Frisco.pl auto-zamówienie 🛒
  • White label dla PNOS/Torseed
  • 596 transkryptów Kasia YouTube