Přeskočit obsah

Rozhodnutí: Feed jako hlavní obrazovka rodiče

Problém

Proč by rodič chodil do aplikace každý den? Dashboard s tlačítky nestačí. Potřebujeme "pull mechanismus" — něco, co rodiče vtáhne a dá mu důvod se vracet.

Rozhodnutí: Scrollovací Feed (à la Instagram)

Výchozí landing page rodiče je chronologický feed o jeho dětech a školních událostech.

Proč

  • Rodič → dítě: Při vyzvedávání se dívám do apky a vím, na co se zeptat. "Tak jaký byl ten projekt o vesmíru?" místo "Co jste dělali?" → "Nevím."
  • Rodič → učitel: Vidím, že učitel fotí práce, eviduje → cítím hodnotu školy → důvěra.
  • Učitel → rodič: Učitel ví, že rodič reaguje → motivace evidovat → řeší riziko #10 "kdo krmí AI".
  • Engagement loop: Appka žije, rodič se vrací, data pro AI rostou.

Struktura feedu

┌─────────────────────────────────┐
│ 📌 Souhrn od poslední návštěvy    │
│ "Od včera: 📸 2 nové fotky,       │
│  ✅ Přítomna, 🍽️ Oběd č. 2"       │
├─────────────────────────────────┤
│ 📸 Evidence (14:30)              │
│ [Fotka práce]                   │
│ "Anička — Projekt vesmír"       │
│ 🏷️ Přírodověda · Týmová práce    │
├─────────────────────────────────┤
│ 📢 Zpráva školy (12:00)         │
│ "Zítra nezapomeňte gumáky!"    │
├─────────────────────────────────┤
│ 🍽️ Jídelníček (11:00)            │
│ "Oběd: Kuřecí řízek, bramborová│
│  kaše, salát"                   │
├─────────────────────────────────┤
│ ✅ Docházka (8:05)               │
│ "Anička dorazila v 8:05"       │
└─────────────────────────────────┘

         💬 [Sofie]  ← FAB overlay

Typy feed items

Typ Zdroj Ikona Příklad
Adaptivní souhrn AI (pinned) 📌 Souhrn od poslední návštěvy (auto-granularita)
Přehled zítřka AI (od 14:00) 🔮 "Zítra: Škola do 13:30, plavání, přineste gumáky!"
Evidence/fotka Učitel / Služba 📸 Fotka práce + AI štítek
Docházka Systém "Dorazila v 8:05"
Družina Vychovatel/ka 🏠 "Anička je v družině. Odchod: 15:30."
Kroužek Systém / Lektor 🎯 "Dnes: Šachy 14:00" / "ZRUŠENO"
Zpráva školy Ředitel / Učitel 📢 "Zítra výlet — gumáky!"
Jídelníček strava.cz (cron) 🍽️ "Oběd č. 1: Řízek"
Akce / kalendář Kalendář 📅 "Za 3 dny: Třídní schůzka"
Odpověď na dotaz Sofie / Učitel 💬 "Odpověď na váš dotaz"
Platba (Fáze 2) Pohoda (sync) 💳 "Školné únor: zaplaceno ✅" / "Splatnost: 15.2."

Multi-child

Rodič s více dětmi vidí prolínající se feed s avatarem/tagem dítěte:

[👧 Anička] 📸 Projekt vesmír (14:30)
[👦 Tomáš]  ✅ Dorazil v 8:02 (8:02)
[👧 Anička] ✅ Dorazila v 8:05 (8:05)
[🏫 Škola]  📢 Zítra gumáky!

Filtr: "Zobrazit jen Aničku" / "Zobrazit jen Tomáše" / "Vše".

Sofie Overlay (FAB)

  • Plovoucí tlačítko vpravo dole (Floating Action Button).
  • Klik → otevře chat panel (slide-up nebo sidebar).
  • Vždy dostupný z jakékoliv obrazovky.
  • Badge s počtem nepřečtených zpráv.

Přehled zítřka (🔮 Tomorrow Preview)

Každý den od cca 14:00 se ve feedu objeví karta s přehledem následujícího dne:

┌─────────────────────────────────┐
│ 🔮 Zítra — Úterý 11. února        │
├─────────────────────────────────┤
│ 🕒 Škola do: 13:30              │
│ 🍽️ Oběd: Kuřecí řízek, kaše       │
│ 🎯 Kroužek: Šachy 14:00–15:00     │
├─────────────────────────────────┤
│ ⚠️ NESTANDARDNÍ:                 │
│ 📌 Plavání — přines plavky+ručník│
│ ❌ Nepodepsaný souhlas s výletem│
└─────────────────────────────────┘
  • Běžné položky: Rozvrh, konec školy, oběd, plánovaný odchod, kroužky.
  • Zvýrazněné výjimky (⚠️): Výlet, plavání, "přineste si...", škola v přírodě.
  • Akce potřeba (❌): Nepodepsané souhlasy, nezaplacené platby, chybějící dokumenty.
  • Generuje AI z rozvrhu, kalendáře a školních dat.
  • Push notifikace: "Sofie: Zítra plavání — nezapomeňte plavky!"

Technické poznámky

  • Realtime: Supabase Realtime subscriptions → nový item se objeví bez refreshe.
  • Infinite scroll: Načítání po dávkách (20 items), lazy loading fotek.
  • Privacy: Feed zobrazuje POUZE děti přihlášeného rodiče (RLS policy).
  • Offline: PWA cache → poslední feed items dostupné i bez signálu.

Adaptivní souhrn ("Od poslední návštěvy")

  • Systém trackuje last_seen_at timestamp pro každého rodiče.
  • Při otevření appky AI vygeneruje souhrn za období od last_seen_at:
    • < 4 hodiny: Live stav — "Právě probíhá: Matematika — zlomky 🍎"
    • 1 den: "Včera: 📸 2 nové práce, oběd č. 2, odchod 15:30."
    • 1 týden: "Minulý týden: 📸 5 prací, docházka 100 %, výlet na Šumavu." → rozklikne po dnech.
    • 3+ týdny: "Za 3 týdny: 📸 12 prací, 3 omluvenky, docházka 92 %." → po týdnech → dnech → detail.
  • Zero config — rodič nemusí nastavovat frekvenci, vše automaticky.
  • Push re-engagement: Pokud se rodič nepřihlásí 3+ dny → "Anička měla zajímavý týden — mrkněte se! 📸"

Důsledky pro architekturu

  • Dashboard (z Plán (Fáze 1)) se mění na Feed pro rodiče.
  • Ředitel a učitel si ponechávají klasický dashboard.
  • work_items tabulka je primární zdroj dat pro feed items.
  • Nový koncept: feed_events view (nebo materializovaný pohled), který agreguje data z různých tabulek (evidence, docházka, družina, kroužky, zprávy) do jednoho chronologického streamu.

Rozhodnutí: Skupinový chat / Komentáře — NE

Zvážení

Měli bychom umožnit rodičům diskutovat mezi sebou pod příspěvky (školními oznámeními, fotkami)?

Rozhodnutí: Ne. Použít reakce místo diskuze.

Důvody

  1. Moderace — kdo řeší, když se dva rodiče pohádají? Ředitel? → Víc práce, ne míň.
  2. WhatsApp už existuje — škola má WhatsApp komunity, kde si rodiče mohou povykládat a postěžovat si. Neporazíme ho a ani nechceme.
  3. GDPR — rodič napíše o cizím dítěti → právní problém.
  4. Scope creep — budujeme informační systém školy, ne sociální síť.
  5. "Negativity bias" — veřejná diskuze přitahuje stížnosti, ne pochvaly.

Co místo toho

Funkce Popis Moderace?
Reakce (❤️ 👏) Rodič "lajkne" fotku práce dítěte. Učitel vidí počet reakcí → motivace. Žádná potřeba
Strukturované odpovědi Škola: "Kdo jede na výlet?" → Tlačítka Ano/Ne. Ne volný text. Žádná potřeba
Otázky → Sofie Rodič má dotaz k oznámení? Zeptá se Sofie, ne ostatních rodičů. AI + eskalace
Privátní zpráva učiteli Potřebuji řešit něco osobně → přes Sofii nebo přímo učiteli. Učitel

[!IMPORTANT] Pro volné diskuze mezi rodiči slouží WhatsApp komunity školy. Kosmo se zaměřuje na informace o dítěti, ne na sociální interakci mezi rodiči.