Přeskočit obsah

Backlog — Fáze 2+

Poslední aktualizace: 2. dubna 2026

Tento dokument shrnuje plánované funkce a rozhodnutí pro fáze po MVP. Položky jsou seřazeny podle priority a fáze.


RFC: Universal Knowledge Graph

Univerzální knowledge graph jako základ pro celý systém — content-agnostic graf myšlenek/nodů s AI overlay, který dynamicky generuje kontext per role.

RFC-knowledge-graph.md


Fáze 2: Teacher Tools

PM Kanban (vlastní modul v Kosmu)

Jednoduchý interní PM přímo v Kosmu. Detailní specifikace viz Příloha: PM modul na konci dokumentu.

Rozhodnutí: Vlastní modul místo SaaS. Důvod: jedna appka, nativní Gemini integrace, přepis porady → úkoly automaticky. Fallback: Trello/Todoist.

Portfolio upload

Učitel nahrává fotky práce žáků + popis. Základ pro rodičovský feed (Fáze 3).

  • Upload přes Kosmo UI → GCS bucket
  • Gemini Vision auto-popis fotky
  • Vazba na žáka, třídu, datum

Generování dokumentů (WYSIWYG + Typst → PDF)

Škola dnes plní Word šablony ručně. Řešení: WYSIWYG editor (TipTap v2) v Kosmu, kde ředitel tvoří šablony s proměnnými a sekretářka jedním klikem generuje PDF.

  • Editor: TipTap v2 s custom variable chips (inline {{student.fullName}})
  • Pipeline: Markdown → resolve proměnných z DB → MD → Typst → PDF
  • Typst: Moderní alternativa LaTeXu, ~30 MB binary, kompilace <1s
  • Školní šablona: Záhlaví (logo + adresa), patička (IČO, kontakty), font Inter
  • Batch: Generování pro celou třídu/školu najednou (n8n loop)
  • AI asistence (Sofie): Draftování šablon, vylepšení textu, GDPR formulace
  • Tabulky: document_templates, document_template_versions, generated_documents

Otevřené otázky (dokumenty): - D1) Font: výchozí Typst, nebo bundlovat Inter? - D2) Logo školy — potřeba SVG/PNG pro záhlaví - D3) Role v profiles: sloupec role nebo separátní user_roles? - D4) Podpisové pole v PDF? - D5) Archivace: PDF permanentně do GCS, nebo generovat on-demand? - D6) Email: odeslat PDF rodičům přímo?

Generování pracovních listů (Sofie chat → Typst → PDF)

Učitel popíše požadavek v chatu → Sofie (Gemini Flash) vygeneruje Typst markup → typst compile → PDF ke stažení.

  • Workflow: Chat trigger (ai.sofie.education) → AI Chain → extract Typst → compile → PDF
  • Typst šablona (worksheet.typ): Helper funkce #exercise(), #fill-blank(), #choice(), #instructions()
  • Error handling: Při chybě kompilace → Gemini opraví (max 1 retry)
  • Iterace: Window Buffer Memory (10 zpráv) pro úpravy
  • Infra: Custom n8n Dockerfile s Typst binary, sdílené s dokumentovým systémem

Otevřené otázky (pracovní listy): - W1) Font: výchozí Typst, nebo bundlovat vlastní? - W2) Logo školy v hlavičce? - W3) Kam učitelé přistupují — stávající ai.sofie.education, nebo dedikovaný endpoint? - W4) Ukládat historii vygenerovaných listů?

Hlasový debrief

Přepis porady → extrakce úkolů → automatické vytvoření v PM modulu.

Nahrávka (telefon) → Gemini přepis → extrakce "kdo, co, do kdy" → úkoly v Kosmu
  • Pro MVP: manuálně přes Google AI Studio (zdarma, až 3h přepis)
  • Budoucí: Google Meet „Take notes for me" (vyžaduje Business Standard)

Fáze 2: Listmonk newsletter

Listmonk již běží na VM (newsletter.sofie.education). Plán pro aktivní využití:

  • ~150 rodin, měsíční newsletter
  • SMTP: Google Workspace (limit ~2 000/den) nebo Resend (3 000/měs zdarma)
  • Gemini workflow: Konec měsíce → Gemini projde fotky, projekty, poznámky → draft newsletteru → ředitel schválí → Listmonk odešle
  • Lead magnet: „5 Montessori aktivit — PDF zdarma" → email → Listmonk segment „zájemci" → nurturing → den otevřených dveří

Rozhodnutí: Listmonk zůstává (256 MB RAM, dělá jednu věc dobře). Mailchimp zamítnut (limit 500, branding v patičce).


Fáze 2: Montessori kurikulum (Transparent Classroom → Kosmo)

Transparent Classroom (TC) je nasazený, ale UX je zastaralé (design z 90. let). Jediná jeho hodnota je strukturované Montessori kurikulum. Cíl: vytáhnout kurikulum přes TC API, uložit lokálně do Kosma a použít jako kontext pro AI-driven tracking kompetencí.

Datový model — 3 nové tabulky

montessori_areas        — oblasti (Practical Life, Sensorial, Math, Language, Cultural)
  id, name, name_cs, tc_id, sort_order

montessori_lessons      — lekce a skupiny lekcí (flat s parent referencí)
  id, area_id FK, parent_id FK (nullable), tc_id,
  name, name_cs, level ('lesson_set'|'lesson'),
  age_range, description, sort_order

montessori_rvp_mapping  — mapování Montessori → RVP (many-to-many)
  id, lesson_id FK, rvp_code, rvp_name,
  confidence (0.0–1.0), is_verified BOOLEAN

Plus montessori_lesson_id UUID FK na existující competency_records.

Proč odděleně od RVP: Montessori kurikulum je pedagogická struktura, RVP je regulatorní. Many-to-many vztah — jedna lekce pokrývá víc RVP kódů a naopak.

Import kurikula (n8n workflow)

TC má REST API (/api/v1/) s token auth. Klíčové endpointy: - GET /lesson_sets.json — strom oblastí a skupin lekcí - GET /lessons.json — jednotlivé lekce

Workflow "TC Curriculum Import": 1. Manual Trigger (jednorázový, re-runnable) 2. HTTP Request → TC API s X-TransparentClassroomToken header 3. Code Node → transformace na Kosmo schéma, zachovat tc_id 4. Postgres Node → UPSERT do tabulek (on conflict tc_id = idempotentní) 5. Gemini Flash → vygenerovat české překlady name_cs (~$0.01)

Kurikulum se mění max 1×/rok. Celkem ~200–500 položek.

AI mapování na RVP (n8n workflow)

Workflow "Generate RVP Mappings": 1. Načíst všechny montessori_lessons 2. Gemini Flash — batch prompt (po 20–30 lekcích): „Pro každou lekci identifikuj RVP ZV kódy, vrať JSON" 3. INSERT do montessori_rvp_mapping s is_verified = false 4. Učitelé postupně ověřují přes UI

Cena: ~$0.05 za celý mapping.

Rozšíření AI pipeline (Gemini Vision)

Aktuální plán: Fotka → Gemini Vision → competency_records

Rozšířený pipeline: Fotka → načti Montessori lekce pro oblast → Gemini Vision → competency_records (s montessori_lesson_id + RVP kódem)

Gemini Vision prompt dostane kurikulum jako kontext:

Analyzuj fotku studentské práce.
Dostupné Montessori lekce pro tuto oblast:
- Golden Bead Addition (Sčítání se zlatým materiálem) → RVP M-3-1-01
- Stamp Game Subtraction (Odčítání s kolkovou hrou) → RVP M-3-1-02
...
Identifikuj: kterou lekci práce demonstruje, úroveň zvládnutí, RVP kódy.

Jedna oblast = 30–80 lekcí → bez problémů se vejde do kontextového okna.

Prerekvizity

  • TC API token — školní admin: TC Settings → API → vygenerovat token
  • Zmigrovaná competency_records tabulka (zatím jen v docs, ne v migrations)

Otevřené otázky (TC)

  • TC1) Má škola přístup k TC API? (ověřit s adminem)
  • TC2) Které Montessori programy jsou v TC aktivní? (AMI Primary? Elementary?)
  • TC3) Chceme jednorázově importovat i pokrok dětí z TC? (nízká priorita)
  • TC4) Kdo bude ověřovat RVP mapping? (ředitel? učitelé?)

Fáze 3+: Learning Tools

Adaptivní vzdělávací platformy pro žáky (4.–7. třída, bilingvální Montessori). Cíl: 360° profil učení každého žáka v Kosmu.

Doporučené platformy

Tier Platforma Cena Integrace do Kosma
1 Khan Academy Zdarma Přes Google Classroom
1 Brilliant.org Zdarma (Educators program) Přes Google Classroom
1 IXL ~$10/žák/měs Přímá (LTI v1.3 + API)
2 Eduten ~$15–36/žák/rok Bez API
2 Matika.in Zdarma (Hejný) Bez API

Plán integrace

  1. Ihned: Doporučit Khan + Brilliant + Matika.in (zdarma, 0 effort)
  2. Fáze 2: Sekce „Rozšiřující práce" v Kosmu — kurátorované odkazy (~4–8h dev)
  3. Fáze 3: Google Classroom jako hub (~16h dev)
  4. Fáze 4: IXL přímá LTI v1.3 integrace (~16–24h dev)
  5. Fáze 5: Sokratův průvodce — Gemini agreguje data a navrhuje learning path

Otevřené otázky (learning tools): - L1) Investovat do IXL licence? - L2) Vyzkoušet Eduten trial? - L3) Google Classroom jako prostředník? - L4) Od jaké třídy samostatná práce? - L5) Matika česky nebo anglicky? - L6) Které platformy povinné pro sledování žáka? - L7) Ručně doplňovat data z platforem bez API?


Fáze 3+: Marketing a komunikace

Filozofie: žádné reklamy, žádné slogany. Pouze hodnotný obsah — autentický příběh, zprostředkování emoce.

Vrstvy obsahu

  1. Vrstva hodnoty — SEO články 2x/měs („Jak vypadá den čtvrťáka u nás vs. na běžné ZŠ")
  2. Vrstva emoce — Instagram Reels, fotopříběhy 3–4x/týden
  3. Vrstva expertízy — thought leadership 1x/měs (LinkedIn, blog)
  4. Vrstva komunity — doporučení, veřejné akce, rodičovská komunita
  5. Montessori zdroje — tipy, aktivity, materiály k tisku (lead magnety)

Gemini jako content engine

Z jednoho vstupu (poznámka učitele + 5 fotek) → obsah pro 3 kanály za 5 minut:

Učitel nafotí/napíše poznámku → Gemini vygeneruje IG caption + blogpost + newsletter snippet
→ Ředitel schválí → Kosmo publikuje přes API (IG Graph, FB Pages, Listmonk)

Priorita kanálů

  1. Google Business (zdarma, lokální SEO)
  2. Instagram (emoční obsah, Reels)
  3. Blog na webu (SEO, „Montessori škola Říčany")
  4. Newsletter (nurturing zájemců)
  5. Facebook (lokální komunita)

Předpoklady k ověření s ředitelem

  • Logo ve vysoké kvalitě (SVG/PNG)
  • GDPR souhlasy na fotky dětí pro veřejné kanály
  • Google Business profil — existuje? aktuální?
  • Instagram/Facebook účet — kdo spravuje?
  • Branding: tón komunikace, hodnoty, příběh zakladatele

Fáze 3+: Web (sofie.education)

Škola má dva WordPress weby (ms-sofie.cz, zs-sofie.cz). Cíl: sjednotit pod sofie.education.

Fáze Stav
Teď WordPress zůstává, Kosmo na app.sofie.education
Léto 2026 Migrace statického webu do Next.js, jedna doména sofie.education

Cílový stav: Web + blog + aplikace na jednom Next.js stacku. Obsah přes MDX nebo headless CMS (Sanity/Strapi).


Fáze 3+: Gamifikace

Odznaky, streaky, osobní milníky — motivace žáků. Ale Montessori filozofie odmítá soutěžení a vnější motivaci.

Otevřená otázka: Gamifikace ano / ne / „jemná" verze (bez soutěžení, jen osobní milníky)?


Fáze 3+: Login dětí (4.–7. třída)

Starší žáci potřebují přístup ke svému portfoliu, nahrávání projektů, Sokratův průvodce.

Varianta Popis
Školní Google účet Po migraci na Google Workspace
QR kód / PIN Fyzická karta
Rodičovský účet Sdílený přístup

Otevřené otázky: - 7a) Jak se přihlásí žák? - 7b) Od jaké třídy vlastní přístup?


Fáze 4+: Sokratův průvodce

Gemini AI jako personalizovaný tutor pro žáky. Sokratovská metoda — neptá se „jaká je odpověď?" ale „jak jsi na to přišel?".

  • Agreguje data ze všech vzdělávacích platforem + interní evidenci
  • Navrhuje žákovi personalizovaný learning path
  • Inspirace: Khan Academy Khanmigo

Fáze 4+: Podpora rodičů

  • Feed (/feed) — timeline aktivit dítěte (fotky, projekty, hodnocení)
  • Adaptivní summary — Gemini shrne co se změnilo od poslední návštěvy
  • Sofie chat pro rodiče — FAQ, omluvenky, vyzvedávání
  • Multi-child feed s filtrem (rodič s více dětmi)
  • Push notifikace (PWA)

Otevřená rozhodnutí (nerozřešená)

Následující rozhodnutí z DECISIONS_OPEN.md zatím nemají finální odpověď:

# Téma Urgence Poznámka
7 Login dětí Fáze 3+ Školní Google účet / QR / PIN?
8 Gamifikace Fáze 3+ Montessori vs. motivace
L1–L7 Learning Tools Fáze 3+ IXL licence, GC integrace, jazyk matiky
D1–D6 Generování dokumentů Fáze 2 Font, logo, role, archivace
W1–W5 Pracovní listy Fáze 2 Font, logo, archiv PDF

Příloha: PM modul (detail)

TL;DR

Rekurzivní hierarchie projektů (projekt → podprojekty → …), membership-based viditelnost, AI-generované summary. 3 tabulky, 4 enumy.

Datový model

CREATE TYPE public.project_status AS ENUM ('draft', 'active', 'done', 'cancelled');
CREATE TYPE public.subproject_priority AS ENUM ('required', 'nice_to_have');
CREATE TYPE public.project_member_role AS ENUM ('leader', 'collaborator');
CREATE TYPE public.resource_kind AS ENUM ('file', 'link', 'note');

projects — rekurzivní hierarchie (parent_id → self). Top-level = parent_id NULL. Sloupce: id, parent_id, title, description, leader_id, status, priority, due_date, ai_summary, timestamps. ON DELETE CASCADE na parent_id.

project_members — M:N vazba profilů na projekty. UNIQUE(project_id, profile_id). Role: leader (vše) / collaborator (editace, zdroje).

project_resources — přílohy s diskriminátorem kind (file/link/note). Sloupce: title, url, body, storage_path, ai_summary, uploaded_by.

Viditelnost (RLS)

Viditelnost se dědí dolů, ne nahoru. Member parent projektu vidí všechny podprojekty (rekurzivní CTE). SELECT/INSERT/UPDATE/DELETE pravidla dle role.

Progress tracking

get_project_progress(p_id) — rekurzivní CTE počítá done/total podprojektů → progress bar v UI.

Soubory

GCS bucket projects/{project_id}/{timestamp}_{filename} + sidecar .meta.json. V1 jen linky + poznámky, file upload ve v2.

AI summary

n8n webhook po vytvoření/úpravě projektu → Gemini → souhrn stavu (2–3 věty česky).

UI

/projects              → seznam mých top-level projektů
/projects/new          → nový projekt
/projects/[id]         → detail (podprojekty, progress, tým, zdroje, AI summary)
/projects/[id]/edit    → editace

Implementační kroky

  1. SQL migrace (enumy, tabulky, indexy, RLS, RPC)
  2. Server Actions + Zod validace
  3. UI stránky
  4. Navigace — "Projekty" do layoutu
  5. n8n AI summary workflow
  6. File upload (závisí na GCS signed URL infra)