- pri produkte blok Stitky na fotke: text (<br> = novy riadok), poloha X/Y, velkost, natocenie, farba pozadia a textu; lubovolny pocet stitkov - stitky su nad fotkou a pod cenovkou, pismo Aptly Bold; ulozia sa aj do obrazka karty pri exporte - NEXT_PUBLIC_ADOBE_FONTS_URL: odkaz na web projekt Adobe Fonts sa nacita v celej aplikacii (Aptly pre cenovky a stitky) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
COOP Jednota – generátor newsletterov
Interný editor e-mailových newsletterov pre COOP Jednota: skladanie kampane z modulov (hlavička, bannery, produktové sekcie, vernostné zľavy, letáky, recepty, pätička), editor grafických cenoviek, export do ZIP a odoslanie kampane do Brevo.
Technológie: Next.js 16, React 19, Tailwind CSS 4, Supabase (databáza + úložisko obrázkov), Brevo API.
Inštalácia na nový server
1. Supabase projekt
- Vytvorte nový projekt na supabase.com (alebo použite vlastný Supabase server).
- Databáza: otvorte SQL Editor, vložte celý obsah
supabase/schema.sqla kliknite Run. Vytvoria sa tabuľkytemplates(kampane) abadges(šablóny cenoviek), prístupové pravidlá a verejné úložisko obrázkovnewsletter-assets. Skript sa dá bezpečne spustiť aj opakovane. - V Project Settings → API si skopírujte Project URL, anon kľúč a service_role kľúč.
2. Premenné prostredia
cp .env.example .env.local
Doplňte do .env.local údaje zo Supabase a Brevo (popis je priamo v súbore).
Na hostingu (Vercel, Docker…) nastavte rovnaké premenné v jeho nastaveniach.
3. Inštalácia a statické obrázky
npm install
npm run db:upload-assets
Druhý príkaz nahrá do úložiska newsletter-assets logá, ikony sociálnych sietí, štítky predajní
a ukážkové obrázky zo supabase/assets/, ktoré šablóna newslettera používa.
4. Prenos existujúcich kampaní a cenoviek (voliteľné)
V supabase/data/ je export kampaní a šablón cenoviek z pôvodného projektu.
Na novom serveri (po kroku 1–3) ich naimportujete:
npm run db:import -- --dry-run # skúška: vypíše, čo sa naimportuje, nič nezapíše
npm run db:import
Import zachová pôvodné ID, odkazy na obrázky v pôvodnom úložisku prepíše na nové
a dá sa spustiť opakovane. Čerstvý export z pôvodného projektu (pred odovzdaním) urobí
majiteľ pôvodného Supabase príkazom npm run db:export a commitne priečinok supabase/data/.
5. Spustenie
npm run dev # vývoj na http://localhost:3000
npm run build # produkčný build
npm run start # produkčný server
Pri prvom spustení s prázdnou databázou sa vytvorí nová kampaň z predvolenej šablóny
(src/lib/defaultCampaign.ts) a automaticky sa uloží.
Štruktúra projektu
| Cesta | Obsah |
|---|---|
src/app/page.tsx |
Hlavná obrazovka editora (stav kampane, auto-save, náhľad) |
src/components/editor/ |
Panel nastavení, editor cenoviek, modály (import, uložené kampane) |
src/lib/emailRenderer.ts |
Generovanie HTML e-mailu z kampane (náhľad aj export) |
src/lib/badgeUtils.ts |
Generovanie SVG cenoviek a premenné ({cena}, {zlava}, {cena_s_kartou}…) |
src/app/api/ |
Serverové API: nahrávanie obrázkov, inline CSS, export a overenie kampane v Brevo |
supabase/schema.sql |
Schéma databázy a úložiska |
supabase/assets/ |
Statické obrázky šablóny (nahrávajú sa cez npm run db:upload-assets) |
supabase/data/ |
Export kampaní a cenoviek (npm run db:export / npm run db:import) |
scripts/ |
Skripty na nahratie obrázkov, export a import dát |
Poznámky
- Aplikácia nemá prihlasovanie a databáza je prístupná cez anon kľúč – je určená na interné použitie. Ak bude verejne dostupná, treba doplniť autentifikáciu.
- Nové kampane a novo nahraté obrázky používajú úložisko z
.env.local; importované kampane majú odkazy prepísané na nové úložisko.