Přeskočit na obsah
Jan HřebíčekEnaro
← Studie

Digitální ekosystém

Young Lions Czechia: Od manuálních registrací k systému, který si organizátoři ovládají sami

Spolupráce začala jako technická správa existujícího WordPress webu. Postupně z ní vznikla automatizace registrací, přihlášek a vstupu do komunity Circle. Ta během let narostla do čtyř samostatných pluginů, a tak přišel druhý krok: přepis do jednoho modulárního systému, ve kterém si organizátoři připraví celý ročník sami, bez vývojáře. Na konci stojí systém převzatý za provozu, bez výpadku, a zdokumentovaný tak, aby ho převzal i nový správce.

4 → 1
pluginů v jednom modulárním systému
Bez vývojáře
ročník připraví organizátor sám
RoleSpráva, vývoj, architektura a automatizaceStackPHP 8.3 · MariaDB · REST API

Výchozí stav

Technické řešení rostlo postupně a obsahovalo řadu historických úprav. Největším problémem ale bylo velké množství manuální práce spojené s registracemi, přihláškami a správou uživatelů. Organizátoři museli řešit:

  • manuální zpracování registrací
  • správu přihlášek a dokumentů
  • komunikaci s účastníky
  • správu uživatelských přístupů
  • práci s několika oddělenými systémy
  • provozní problémy webu

Stabilizace platformy a migrace infrastruktury

První rok spolupráce jsem věnoval především technické správě a stabilizaci celého řešení:

  • převzetí technické správy WordPressu
  • řešení provozních problémů
  • průběžnou údržbu systému
  • správu hostingu, DNS a SSL certifikátů
  • technickou podporu organizačního týmu

Významnou součástí byla kompletní migrace infrastruktury na nový hosting včetně převodu domén, DNS konfigurací a e-mailových služeb — bez přerušení provozu. Vzniklo tak stabilní prostředí připravené pro další rozvoj.

Automatizace registrací a integrace Circle

Po stabilizaci jsem se zaměřil na registrace a přihlášky, které obsahovaly řadu manuálních kroků. Vznikly vícekrokové formuláře s automatickou validací dat, správou příloh, potvrzovacími e-maily a přehlednou administrací přihlášek. Pro program Roger Hatchuel Student Academy vznikl samostatný registrační systém a stejný princip jsem rozšířil i na odevzdávání soutěžních prací.

Druhou částí bylo propojení webu s komunitní platformou Circle. Registrace automaticky založí účet v komunitě, synchronizuje data, přiřadí přístupová práva a zařadí uživatele do správných programů. Účastníci se do komunity dostávají prakticky okamžitě, bez zásahu administrátora.

Proč přišel přepis

Automatizace fungovala, ale rostla po částech. Z přihlášek, odevzdávání prací, akademie RHSA a plateb se staly čtyři samostatné pluginy, každý s vlastní frontou, e-maily a napojením na Dropbox a Circle. To mělo své limity:

  • každý nový ročník znamenal úpravy konstant v kódu a zásah vývojáře
  • chyba v nastavení se projevila až ve chvíli, kdy se přihlásil první tým
  • platby ze Stripe se fakturovaly do Fakturoidu bez kontroly, jestli faktura opravdu vznikla

Všechny čtyři části jsem proto převedl do jednoho modulárního pluginu, který si organizátoři ovládají sami.

Ročník v administraci místo v kódu

Celý ročník se nastavuje v administraci: termíny, kategorie, formulář, tagy a skupiny v Circle, složky v Dropboxu, e-maily i akademie. Nový ročník vznikne kopií předchozího.

  • Kontrola ročníku před spuštěním ověří proti živému Circle a Dropboxu, že tagy, skupiny i složky opravdu existují. U každého problému řekne, co dělat, a odkáže přímo na pole v nastavení.
  • Simulace ročníku ukáže, kam dopadne testovací přihláška, a umí ji zapsat naostro do testovacích kopií. Pak všechno uklidí.

Převzetí provozu bez výpadku

Starý a nový systém běžely souběžně. Každou část — účet, přihlášky, odevzdávání, akademii, synchronizaci s Circle i platby — převzal nový plugin samostatně, jedním přepínačem v administraci.

  • Každý přepínač měl podmínky a nedovolil převzetí, dokud nebyly splněné.
  • Až do konečného vypnutí starého systému šel každý krok vrátit jedním kliknutím, bez nasazení.
  • Synchronizaci s Circle a platby nový systém nejdřív jen sledoval a porovnával se starým. Naostro je převzal teprve po ověření, že se výsledky shodují.

Platby: Stripe → Fakturoid

  • Faktura vzniká jen za skutečně zaplacenou platbu.
  • Oddělená testovací a ostrá dráha. Testovací platba nikdy nevystaví ostrou fakturu.
  • Denní kontrola porovná Stripe s fakturami a upozorní na chybějící faktury.
  • Přehled plateb s grafem, frontou „čeká na vás“ a kontrolou připravenosti napojení.

Spolehlivost a bezpečnost

  • Jedna společná fronta úloh pro e-maily, nahrávání do Dropboxu, synchronizaci s Circle i faktury: s prioritami, opakováním a ochranou proti dvojímu odeslání.
  • Selhání nikdy není tiché. Každá neúspěšná úloha je vidět v administraci s vysvětlením a tlačítkem pro opakování.
  • Ověření e-mailu před vstupem do komunity.
  • Limity pokusů o přihlášení, které nezablokují celou školu za jednou IP adresou.
  • Ochrana formulářů proti požadavkům z cizích webů a skrytý seznam uživatelů.
  • Každá část před nasazením prošla nezávislou bezpečnostní revizí.

Jak to vznikalo

Přepis jsem vedl jako architekt a vlastník rozhodnutí. Implementaci po fázích dělali AI agenti (Claude Code) podle mnou schválených plánů a každou fázi pak nezávisle zrecenzoval další agent. Každá změna musela projít více než 3 500 automatickými testy na dvou verzích PHP a proti skutečné databázi, než se dostala na produkci.

Provoz a předání

Během klíčových termínů — spuštění registrací a programů — jsem zajišťoval technickou podporu týmu, monitoring a řešení incidentů. Součástí přepisu bylo i předání: nápověda přímo v administraci s více než 30 krátkými články, odkaz „How to fix“ u každé chyby, dokumentace a provozní příručka. Systém tak zvládne převzít i nový správce.

Závěr

Z manuálních registrací a roztříštěných systémů vznikl jeden systém, který organizátoři ovládají sami. Ročník si připraví bez vývojáře, chyby v nastavení se ukážou před spuštěním, ne až u prvního týmu, a platby se fakturují automaticky a kontrolují každý den. Každá část je zdokumentovaná tak, aby ji převzal i nový správce.

Použité technologie

  • PHP 8.3/8.4
  • MariaDB
  • WordPress
  • REST API
  • Circle Admin API a SSO (OAuth)
  • Dropbox API
  • Stripe
  • Fakturoid API
  • GitHub Actions (CI/CD)
  • PHPUnit
  • PHPStan
  • Claude Code

Výsledky

  • stabilizace prostředí a migrace infrastruktury bez přerušení provozu
  • automatizace registrací, přihlášek a programu RHSA
  • automatický vstup do komunity Circle
  • čtyři pluginy sjednocené do jednoho modulárního systému
  • nový ročník bez zásahu vývojáře
  • kontrola nastavení proti živým systémům před spuštěním
  • převzetí za provozu, bez výpadku a s možností vrácení
  • automatická a denně kontrolovaná fakturace
  • bezpečnostní balíček a nezávislé revize
  • dokumentace a nápověda pro předání dalšímu správci