Přeskočit na obsah

Plán: základní kostra aplikace (deploy → směr katalog bylin)

Stav dokumentu: Historický plán řezů A–D — většina kroků je v repu už splněná; checkboxy níže slouží k ověření, ne jako aktivní backlog.

Účel: stanovit technické řezy, které jdou dodat po sobě: nejdřív nejmenší deployovatelný skelet, pak kostra obrazovky podle katalogu a karty byliny, a nakonec plnění daty a funkcemi z 12-katalog-a-karta-byliny.md.

Souvislosti: zadání katalogu a karty byliny — 12-katalog-a-karta-byliny.md; technické fáze 1–8 — 24-engineering-roadmap.md; routy — 23-api-and-routes.md; entity — 22-data-model.md.


Princip: dva „cíle“ vedle sebe

CílCo znamená
Deploy hnedProjekt v repu, který po pushi na main naběhne na Cloudflare a otevře se na doméně / default URL — bez nutnosti mít hotový celý katalog.
Směr katalogu bylinRouty a rozložení UI odpovídají zadání katalogu (/ volitelně, /byliny, /byliny/:slug), aby se později jen doplňovala data a bloky z 12-katalog-a-karta-byliny.md.

Doporučení: nejdřív řez A, pak řez B; řez C až poté, co je stabilní pipeline a loader/action model.


Řez A — Minimální skelet (menší než cílový katalog)

Výstup: funkční produkční deploy, jedna úvodní stránka (placeholder), žádná závislost na D1/R2/KV.

  1. Scaffold — React Router v7 aplikace určená pro Cloudflare Workers (oficiální šablona / dokumentace Cloudflare + RR7), TypeScript.
  2. Styling — Tailwind; shadcn/ui lze přidat hned nebo v řezu B (aby se první deploy nekomplikoval).
  3. Wranglerwrangler.toml (nebo ekvivalent), lokálně npm run build + npx wrangler deploy bez chyb.
  4. Git → Cloudflare — napojení repozitáře podle 20-tech-stack.md; ověřit deploy po mergi na main.
  5. Doména — po úspěchu přiřadit soulofherbs.com k projektu v dashboardu.

Akceptace řezu A: uživatel otevře nasazený web a vidí jednoduchou homepage (název projektu, krátký text).


Řez B — Kostra katalogu bez kompletních dat

Výstup: stejný deploy jako A, ale už struktura katalogu podle informační architektury z 12-katalog-a-karta-byliny.md §3: routy pro seznam a detail.

  1. Routy/byliny (seznam), /byliny/:slug (detail); základní layout (hlavička / patička volitelně).
  2. Data pro první iteraciD1 s migracemi a seed (viz strategie v dokumentu; statický JSON už není potřeba).
  3. Detail jako „šablona“ — sekce podle 12-katalog-a-karta-byliny.md (identifikace, výskyt, sběr, …).
  4. Filtry — základ na /byliny dle 12-katalog-a-karta-byliny.md §1.10 (rozhraní editora zvlášť — 32-admin.md).

Akceptace řezu B: z /byliny jde přejít na konkrétní detail podle slug; SSR nebo hybrid podle zvoleného RR7 režimu funguje na produkci.


Řez C — Plnění minimem dat

Postupně doplnit podle 12-katalog-a-karta-byliny.md §1 a §2:

  1. D1 migrace — tabulky odpovídající minimu entit z 12-katalog-a-karta-byliny.md (bylina, části, lokality zjednodušeně, období sběru, způsoby zpracování, spirituální použití, vědecká tvrzení, zdroje, obrázky, bezpečnostní upozornění).
  2. Loadery — čtení z D1 místo stubů; referenční byliny ve seedu.
  3. Obrázky — externí URL a/nebo R2 (r2_key u ukázky); plný upload dle 32-admin.md.
  4. Základní vyhledávání podle názvu na /byliny (12-katalog-a-karta-byliny.md §1.1) — dotaz nad D1.

Akceptace řezu C: viz „Akceptace“ v 12-katalog-a-karta-byliny.md §5 v omezeném rozsahu (např. 10–20 bylin ve seedu).


Řez D — Po kostře (další engineering fáze)

Není součástí „kostry“, ale pořadí je jasné:


Shrnutí: čím začít teď

  1. Dokončit řez A (scaffold + deploy + doména) — odškrtne položky v README.md sekci TODO (infra).
  2. Hned potom řez B — aby URL /byliny a /byliny/:slug žily na produkci a šlo iterovat obsah a schéma bez přepisování architektury.
  3. řez C navázat na schválený / implementovaný výřez 22-data-model.md.

Tím máte menší než cílový katalog jen v řezu A–B (deploy + prázdná šablona); řez C je už cesta k první použitelné verzi podle 12-katalog-a-karta-byliny.md.