Files
MyClub/PROJECT_STATUS.md
T
Tomas Dvorak 8762bde4bf dev day #89
2025-11-11 10:29:30 +01:00

8.3 KiB
Raw Blame History

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

  • 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 :before pilulku z bloku týmu (viz <div class="chakra-stack css-whwp7v">...)
    • Sjednotit vzhled overlay pro sponzory a skóre se scoreboardem
  • 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
  • Č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
  • 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_*, attachments atp.)
    • Sladit validaci se skutečným JSONem z frontendu
  • 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 Type při POST /api/v1/admin/scoreboard/timer/start
  • Č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.