2026-10-21 16:55:06 +02:00

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

  1. Vytvorte nový projekt na supabase.com (alebo použite vlastný Supabase server).
  2. Databáza: otvorte SQL Editor, vložte celý obsah supabase/schema.sql a kliknite Run. Vytvoria sa tabuľky templates (kampane) a badges (šablóny cenoviek), prístupové pravidlá a verejné úložisko obrázkov newsletter-assets. Skript sa dá bezpečne spustiť aj opakovane.
  3. 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.
S
Description
No description provided
Readme
4.5 MiB
0 Stars 1 Watchers 0 Forks
Languages
TypeScript 96.6%
JavaScript 2%
Python 1.3%
CSS 0.1%