chore: zalozenie databazy a uloziska na novom serveri

- supabase/schema.sql: idempotentny skript (tabulky, RLS, bucket newsletter-assets)
- supabase/assets + npm run db:upload-assets: staticke obrazky sablony
- adresa uloziska sa sklada z NEXT_PUBLIC_SUPABASE_URL namiesto pevneho projektu
- .env.example a navod na instalaciu v README

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Jakub_HostacnyandClaude Opus 5.5 committed 2026-10-19 10:54:55 +02:00
1 parent eb92d30dc3
commit 5d1900740c
37 files changed
+178 -96

No files matched your search

+51 -21
View File
@@ -1,36 +1,66 @@
This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).
# COOP Jednota – generátor newsletterov
## Getting Started
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.
First, run the development server:
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](https://supabase.com) (alebo použite vlastný Supabase server).
2. **Databáza:** otvorte *SQL Editor*, vložte celý obsah [`supabase/schema.sql`](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
```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
cp .env.example .env.local
```
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
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.
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
### 3. Inštalácia a statické obrázky
This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.
```bash
npm install
npm run db:upload-assets
```
## Learn More
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/`](supabase/assets/), ktoré šablóna newslettera používa.
To learn more about Next.js, take a look at the following resources:
### 4. Spustenie
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
```bash
npm run dev # vývoj na http://localhost:3000
npm run build # produkčný build
npm run start # produkčný server
```
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!
Pri prvom spustení s prázdnou databázou sa vytvorí nová kampaň z predvolenej šablóny
([`src/lib/defaultCampaign.ts`](src/lib/defaultCampaign.ts)) a automaticky sa uloží.
## Deploy on Vercel
## Štruktúra projektu
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
| 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`) |
Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
## 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.
- Kampane uložené v pôvodnom Supabase projekte obsahujú odkazy na obrázky v pôvodnom úložisku.
Nové kampane a novo nahraté obrázky používajú úložisko z `.env.local`.