mirror of
https://github.com/Dvorinka/MyClubServer.git
synced 2026-06-03 18:22:57 +00:00
8.3 KiB
8.3 KiB
Stav projektu – kontrolní seznam
Aktualizováno: 2025-11-10
Legenda:
- hotovo / funguje
- k opravě / k doplnění
Přehled priorit (P1 = kritické)
- P1: Komentáře
- Backend panic (regex v spam filtru) – odstraněny backreference v Go regex, nahrazeno kontrolou opakování
- Komentáře se nezobrazují (admin i frontend)
- P1: Scoreboard Remote
- 415 (Unsupported Media Type) – sjednocen Content-Type pro timer endpointy
- CORS pro
/api/v1/admin/scoreboard/* - Časovač – ověřit start/stop a další akce
- P1: Články
- Auto-save vrací 400 (validace payloadu)
- Vazba na soutěž (alias) – výběr aliasu nevrací zápasy
- P1: Ankety – tvorba/napojení OK (Aktivity i Články)
- P1: Frontend chyby „toLowerCase of undefined“
- Admin Hráči
- Admin Články
Admin
-
Nástěnka
- plně funkční
-
Analytika
- plně funkční
-
Týmy
- Opravit overrides loga + zkrácené názvy s tečkami
- Normalizace názvů (ignorovat tečky/mezery, např. „Frýdlant n. O.“, „Frenštát p. R.“)
- Deduplikace výsledků vyhledávání FAČR (opakované položky)
- Přidat/ověřit overrides v
team_logo_overrides.json- 1. BFK Frýdlant n. O. – URL: http://logoapi.sportcreative.eu/logos/35e4f595-f2a7-4c0c-abd7-73926f33d687?format=png
- SK Beskyd Frenštát p. R. – URL: http://logoapi.sportcreative.eu/logos/831702b0-cf90-4d94-9878-b1389b6a72b4?format=png
- Zajistit propagaci do veřejné části (zápasy, tabule, soupisky)
- Opravit overrides loga + zkrácené názvy s tečkami
-
Zápasy
- plně funkční
-
Hráči
- Odstranit národnost a věk z homepage i z /hraci
- Opravit chybu „toLowerCase of undefined“ (bezpečné zacházení s prázdnými poli ve filtrech/tabulce)
-
Aliasy soutěží
- Odebrat UI „Přidat nový alias“ (pouze číst z FAČR)
-
Tabule (Scoreboard)
- Odstranit
:beforepilulku z bloku týmu (viz<div class="chakra-stack css-whwp7v">...) - Sjednotit vzhled overlay pro sponzory a skóre se scoreboardem
- Odstranit
-
Scoreboard Remote
- Opravit CORS pro
/api/v1/admin/scoreboard/* - 415 – sjednotit Content-Type (u timer endpointů povolen POST bez JSON)
- Ověřit start/stop timeru a ostatní akce
- Opravit CORS pro
-
Články
- Kategorie (soutěž) – po výběru aliasu nevrací zápasy
- Rich text editor – „addRange()“/výběr; stabilizovat editaci
- Auto-save 400 (validace payloadu, povolená pole, příznaky publikace)
- Detail článku (veřejná část):
- Pravý sloupec – nadcházející zápasy dle kategorie
- Video – skrýt název (ponechat pouze video)
- Galerie – zobrazit
- Ankety – zobrazit
- Komentáře – zobrazit
-
Aktivity
- plně funkční
-
Ankety
- Vytváření/napojení ankety (v Aktivitách i v Článcích)
- Zajistit plně funkční styly/varianty a zobrazení (admin i public)
-
Kategorie
- plně funkční
-
Komentáře
- Backend panic v regex (spam filtr) – odstraněny backreference v Go regex, nahrazeno kontrolou opakování
- Komentáře se nezobrazují v adminu ani na frontendu
-
Videa
- Povolit přepis názvu videa (override) – zobrazit v adminu i na frontendu
- Na frontendu potlačit titulek tam, kde je požadováno (např. v detailu článku)
-
Galerie
- Přidat tlačítko pro přidání dalšího alba (napojit na fetch endpointy)
-
Soubory
- Změnit defaultní kvótu úložiště na 5 GB (z 1 GB)
-
Zprávy (Kontakty)
- /kontakt – po odeslání končí na „loading“, přitom zpráva přijde
- /sponzori – duplicity zpráv; chybné označení zdroje (kontakt vs sponzoři)
- Automatické přeposílání – neprobíhá; opravit trigger/retry
-
Newsletter
- Auto-aktivace všech typů newsletteru, pokud existuje alespoň 1 aktivní odběratel
- Opravit 500 na
POST /api/v1/admin/newsletter/send-digest
-
Kontakty (admin – Kontakty tab)
- „Přidat kontakt“ – dropdown Kategorie je prázdný; doplnit soutěže a aliasy (stejně jako v Článcích)
-
Sponzoři
- plně funkční
-
Bannery
- plně funkční
-
Oblečení
- plně funkční
-
Soutěže (Sweepstakes)
- „Počet výherců“ – zlepšit zadávání (volné psaní, validace), přidat rate limit na max. výherce
- „Souhrn výher“ → nahradit „Přidat výhry“ s presety pro rychlé přidání položek
- Odebrat „Vstupné (Kč)“ (používáme body)
- Nahrání titulního obrázku – 400 při create; opravit upload a validaci
-
Odměny & Úspěchy
- Zlepšit UI/UX; na frontendu skrýt pro roli admin (ponechat pro běžné uživatele)
- Ověřit kompletní tok (uplatnění, upload avataru, dostupnost odměn)
-
Zkrácené odkazy
- plně funkční
-
Prefetch & Cache
- plně funkční
-
Nastavení
- Odebrat kartu „Monitoring“ (je automatická, ne-admin)
-
Uživatelé
- Přeložit celé UI do češtiny (lista, popup vytvoření uživatele atd.)
- Role „editor“ = omezený admin bez 403 (tvorba/úprava obsahu, bez plných práv)
-
Navigace (Admin)
- Skrytá položka má zůstat viditelná v adminu pro opětovné zobrazení
- Přesun mezi kategoriemi (drag & drop) – musí fungovat i napříč kategoriemi
- „Upravit“ – správný cíl (neplést podkategorii/page s hlavní kategorií)
-
Dokumentace
- plně funkční
-
Odhlásit se
- plně funkční
Veřejná část (frontend)
-
Homepage / Hráči
- Odebrat národnost a věk z dlaždic hráčů
-
Detail článku
- Pravý sloupec: nadcházející zápasy dle kategorie
- Video bez titulku (ponechat pouze video prvek)
- Galerie, Ankety, Komentáře – zobrazit, když jsou k dispozici
-
/hraci (seznam)
- Odebrat národnost ze seznamu
Backend & API
-
Komentáře – chyba (fatal)
- Oprava regexu ve spam filtru:
invalid escape sequence: \1– nahrazeno kontrolou opakování bez backreferencí (Go nepodporuje backreference) - Stabilizovat vytváření komentářů + návrat do adminu/frontendu
- Oprava regexu ve spam filtru:
-
Scoreboard Remote – CORS/415
- Přidat CORS hlavičky pro admin remote endpoints
- Ujednotit Content-Type (server akceptuje POST bez JSON pro timer akce)
-
Články – 400 Bad Request (auto-save)
- Zkontrolovat požadovaný payload na backendu (políčka
published,slug,youtube_*,attachmentsatp.) - Sladit validaci se skutečným JSONem z frontendu
- Zkontrolovat požadovaný payload na backendu (políčka
-
Newsletter – 500 na send-digest
- Logy, validace šablon a vstupů; graceful error + retry
- Auto-aktivace typů při existenci odběratelů
-
Kontakty
- Odlišit zdroj (kontakt vs sponzoři) v uložených zprávách
- Opravit duplicity a loading stav po submitu
- Zajistit automatické přeposílání (resend) dle nastavení
-
Soutěže (upload)
- Opravit create 400 (multipart/form-data nebo JSON + upload pipeline)
Zachycené chyby (výňatek)
- Backend fatal (POST /api/v1/comments):
regexp: Compile(([a-zA-Z!?.])\1{4,}): invalid escape sequence: \1→ upravit regex a ošetření
- Frontend (Admin Hráči, Admin Články):
Cannot read properties of undefined (reading 'toLowerCase')→ bezpečné mapování/filtrace
- Scoreboard Remote:
- CORS blokace +
415 Unsupported Media TypepřiPOST /api/v1/admin/scoreboard/timer/start
- CORS blokace +
- Články – editor/autosave:
addRange(): The given range isn't in document.(výběr v editoru)PUT /api/v1/articles/:id→ 400 (Bad Request)
- Newsletter:
POST /api/v1/admin/newsletter/send-digest→ 500
Poznámky k implementaci
- Úpravy názvů týmů s tečkami: vytvořit normalizační vrstvu (strip teček, diakritika, mezery) pro porovnávání i při zápisu overrides.
- UI skrytí prvků (aliasy soutěží, monitoring v Nastavení) řešit podmíněným renderem i na úrovni backend schématu/feature flagu.
- Před nasazením spustit integrační testy: komentáře, ankety, články (autosave), scoreboard remote, newsletter digest.