Prag Kartalları
Ve vývojiPrag Kartalları v2 — Platforma pro správu spolku
Full-stack Next.js platforma nahrazující stávající web. Členský portál s autentizací, administrační panel, finanční sledování, automatizovaná data o zápasech a trojjazyčný obsah.
Zadání
Prag Kartalları je spolek příznivců fotbalového klubu Beşiktaş se sídlem v Praze. Stávající PHP web zvládá data o zápasech dobře, ale spolek potřebuje mnohem více: registraci a autentizaci členů, sledování plateb, generování účtenek, administrační panel pro představenstvo a finanční reporting. Rozsah přerostl možnosti starého technologického stacku a probíhá kompletní přepsání.
Co se vytváří
Full-stack Next.js 15 aplikace, která nahradí současný web. Slouží třem cílovým skupinám: veřejnosti, registrovaným členům a administrátorům z představenstva.
Veřejný web přebírá centrum zápasů z aktuální verze — živé skóre, rozpis zápasů, tabulky, kádr — spolu s oznámeními a informacemi o spolku. Veškerý veřejný obsah je trojjazyčný v turečtině, angličtině a češtině.
Členský portál spravuje celý životní cyklus členství. Noví uživatelé se zaregistrují, dokončí profil, odešlou členský příspěvek (bankovní převod s QR kódem nebo hotovost) a čekají na schválení představenstvem. Po aktivaci si členové mohou prohlížet historii plateb, stahovat PDF účtenky a spravovat svůj profil.
Administrační panel dává představenstvu plnou kontrolu: správa členů s workflow statusů, fronty schvalování plateb, generování účtenek a doručování e-mailem, publikování oznámení, tvorba newsletterů přes Resend, správa dokumentů a měsíční finanční reporty s exportem do PDF. Všechny administrátorské akce jsou zaznamenány v audit logu.
Automatizované systémy
Pipeline dat o zápasech přechází z aktuální verze, ale běží přes GitHub Actions místo cron-job.org:
- Noční — synchronizuje zápasy, kádr a události z ESPN a API-Football.
- Hodinová — aktualizuje tabulku Süper Ligu a loga týmů.
- Zápasový den — spouští se každou minutu během živého zápasu BJK. Načítá skóre a události v reálném čase.
Další automatizace: denní zálohy databáze na Google Drive, frontové doručování newsletterů (dávkované pro dodržení limitů Resend) a logika opakování pro neúspěšné uploady na Drive.
Technické poznámky
Server Components jsou výchozí — načítání dat probíhá na úrovni komponent pro SEO. Všechny mutace procházejí přes Server Actions se sdílenými Zod validačními schématy. Autentizace používá Auth.js s credentials providerem a JWT strategií. Tok statusu člena (registrace → dokončení profilu → platba → schválení → aktivní) je vynucován middlewarem.
PDF účtenky jsou generovány na serveru pomocí @react-pdf/renderer — žádná zátěž PDF na straně klienta. Finanční reporty podporují měsíční a roční přehledy s verzovaným PDF exportem a finalizací měsíce, která zamkne data proti dalším úpravám.
Stack
Next.js · TypeScript · PostgreSQL · Prisma · Auth.js · Tailwind CSS · shadcn/ui · Resend · Zod · GitHub Actions · Hetzner · Nginx · Let’s Encrypt
Máte podobný projekt?
Jsem k dispozici pro nové zakázky. Promluvme si.