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.
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.
- 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_recordstabulka (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
- Ihned: Doporučit Khan + Brilliant + Matika.in (zdarma, 0 effort)
- Fáze 2: Sekce „Rozšiřující práce" v Kosmu — kurátorované odkazy (~4–8h dev)
- Fáze 3: Google Classroom jako hub (~16h dev)
- Fáze 4: IXL přímá LTI v1.3 integrace (~16–24h dev)
- 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
- Vrstva hodnoty — SEO články 2x/měs („Jak vypadá den čtvrťáka u nás vs. na běžné ZŠ")
- Vrstva emoce — Instagram Reels, fotopříběhy 3–4x/týden
- Vrstva expertízy — thought leadership 1x/měs (LinkedIn, blog)
- Vrstva komunity — doporučení, veřejné akce, rodičovská komunita
- 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ů
- Google Business (zdarma, lokální SEO)
- Instagram (emoční obsah, Reels)
- Blog na webu (SEO, „Montessori škola Říčany")
- Newsletter (nurturing zájemců)
- 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
- SQL migrace (enumy, tabulky, indexy, RLS, RPC)
- Server Actions + Zod validace
- UI stránky
- Navigace — "Projekty" do layoutu
- n8n AI summary workflow
- File upload (závisí na GCS signed URL infra)