O projektu
Klient za mnou přišel s nápadem na platformu, která by zjednodušila organizaci amatérských hokejových zápasů. Trh byl roztříštěný – hráči si sháněli ledy přes Facebook, správci hal řešili obsazenost ručně, bez jednotného systému.
Cíl byl jasný: vytvořit přehlednou aplikaci, která propojí obě strany, automatizuje správu termínů i komunikaci a bude připravená růst.
Zadání
Klient měl základní grafickou představu, ale celý návrh struktury, databáze, logiky i UI/UX jsem zpracoval já.
Cílem projektu bylo vyvinout stabilní a přehlednou webovou aplikaci, která nabídne:
-
jednoduchou správu hal a rezervací;
-
plnohodnotný hráčský profil (rezervace, historie zápasů a všechna data přehledně na jednom místě);
-
automatizaci provozu a notifikace (hlídací pes systému, exporty a další nástroje pro maximální efektivitu);
-
robustní základ pro budoucí rozvoj (bez žádného vendor lock-inu).
Moje řešení
Aplikaci jsem postavil úplně od nuly na Laravelu 12, frontend jsem postavil na Bootstrapu 5 a administrační rozhraní řešil pomocí Filamentu 3 s vlastními komponentami.
Veřejná část slouží jako katalog ledových ploch s přehlednou nabídkou, možností registrace a přihlášení. Po přihlášení se hráčům i správcům zpřístupní jejich dashboard: rezervace, zápasy, správa termínů, přehled vytížení a další.
Systém je navržen jako plně automatizovaný:
- rezervace a upozornění běží přes Laravel Notifications,
- hlídací psi, e-maily, exporty a cron akce běží přes queue systém,
- soubory spravuje MediaLibrary od Spatie,
- formuláře chrání Turnstile od Cloudflare,
- nasazení zajišťuje CI/CD pipeline včetně statické analýzy (Pint, Larastan) a automatizovaných testů (aktuálně 80% pokrytí přes PHPUnit).
Výzvy a jak jsem je řešil
Největší výzvou bylo navrhnout systém tak, aby ho zvládl používat jak běžný hráč na mobilu, tak správce haly, který potřebuje rychle reagovat a spravovat desítky rezervací týdně.
Zároveň bylo klíčové připravit robustní backend – queue systém odděluje náročnější procesy (notifikace, exporty, hlídací pes), což zajišťuje výborný výkon i při vyšším zatížení.
Filament umožnil navrhnout přehledné administrační rozhraní, které zvládne i netechnický uživatel – s rozdělením práv a vlastními pohledy podle role.
Výsledek
Stridej.cz dnes aktivně spojuje hráče a správce ledových ploch, a to především v Praze, ale systém je možné škálovat i dál.
Denně probíhají nové rezervace, uživatelé dostávají notifikace, sledují dostupnost ploch a organizují vlastní zápasy.
Celý provoz je plně automatizovaný. Klient má přístup k přehledným statistikám a má možnost platformu dále rozvíjet (vytvoření mobilní aplikace nebo přidání nových rolí).
Technologie a detaily řešení
Základ platformy tvoří Laravel 12 – moderní PHP framework s důrazem na čistou architekturu, bezpečnost a výkon. Aplikace využívá moduly, repozitáře a eventy, takže je snadno rozšiřitelná a připravená na další vývoj.
Administrační rozhraní je postavené na Filamentu 3 s vlastními komponentami. Umožňuje přehlednou správu dat, rolí i oprávnění a díky své modulárnosti výrazně zrychluje vývoj interních částí systému.
Frontend stojí na Bootstrapu 5 upraveném pomocí Sass pro maximální přehlednost a konzistentní vzhled napříč zařízeními. Lehká struktura zajišťuje rychlé načítání a jednoduchou údržbu.
Knihovna MediaLibrary spravuje soubory a obrázky napříč aplikací. Zajišťuje bezpečné ukládání, automatické generování náhledů a efektivní práci s médii.
Komplexní systém upozornění postavený na Laravel Notifications zajišťuje e-maily, hlídací psy i systémové alerty. Vše běží asynchronně, takže notifikace neovlivňují výkon aplikace.
Queue systém obsluhuje náročnější procesy – exporty, cron akce i automatizované notifikace. Díky oddělení od hlavního běhu aplikace zůstává rozhraní rychlé i při vyšší zátěži.
Řízení přístupů a rolí řeší Spatie Permissions. Správci i hráči mají přehledné rozhraní a oprávnění podle typu účtu, což zvyšuje bezpečnost i přehlednost administrace.
Nasazení aplikace probíhá automatizovaně přes CI/CD pipeline. Každý release prochází testy, statickou analýzou a bezpečným deployem bez výpadků.
Kvalitu kódu hlídají automatizované testy s pokrytím 80 %. Statická analýza přes Larastan a Pint udržuje konzistentní styl a pomáhá předcházet chybám už v průběhu vývoje.
Laravel Horizon zajišťuje monitoring a řízení front. Nabízí detailní přehled o běžících úlohách a pomáhá udržet provoz aplikace stabilní i při větším objemu dat.
Ochranu formulářů obstarává Cloudflare Turnstile. Nahrazuje klasické CAPTCHA řešení a zvyšuje bezpečnost bez rušení uživatelského zážitku.
Co o spolupráci říká klient
„Opět naprostá spokojenost!“
![]()
David Moravec