Jak funguje aplikace, která usnadňuje sportování 65 tisícům Čechů?

Český sport je místy zkostnatělý a zaseknutý v minulosti, kdy se kluby řídily pomocí sdílených tabulek a vytištěných papírů. Parta kamarádů, kteří se ve sportu od malička pohybovali, to zažili na vlastní kůži a rozhodli se situaci změnit. Vytvořili aplikaci eos club zone, která klubům pomáhá s administrativou i samotným řízením sportovních oddílů. Za poslední dva roky jí narostl počet uživatelů o 175 % a stále roste. Jak je služba naprogramovaná a jak funguje?

Služba eos club zone posouvá sportovní kluby a zájmové kroužky z dob používání spousty nepřehledných sdílených tabulek do moderního digitálního světa. Aplikace zefektivňuje fungování klubů a nabízí všechny potřebné a užitečně funkcionality na jediném místě přístupném odkudkoliv. Kluby si díky klubové platformě eos můžou jednoduše řešit docházku sportovců, komunikovat se členy, generovat platební QR kódy i skrze API párovat platby s internetovým bankovnictvím, nahrávat dokumenty jako je například potvrzení od lékaře a mnoho dalšího. Všechny možnosti a funkcionality aplikace najdete na stránkách eos.cz. Podrobně službu popisuje Pavel Junek, Head of Front-end.

Jak je systém postaven?
Celý systém eos se skládá z několika aplikací, které fungují nezávisle na sobě a každá má na starost jinou část systému. Všechny běží na serveru u externí firmy, který si ale kompletně spravujeme sami. Data každého klubu jsou uložena odděleně a automaticky se zálohují každý den.

Backend aplikace má na starosti ukládání dat do databáze, zajišťování jejich konzistence a validity. Také řeší akce na pozadí – zasílání e-mailů, odesílání notifikací do prohlížečů i mobilních aplikací a další automatické akce, jako třeba automatické importy z bankovních API nebo synchronizace dat. Tato backendová část je postavena na PHP 8 (Laravel), slouží jako SSOT pro frontend i aplikace – komunikace probíhá přes Rest API a RT pomocí WebSocket.

Frontend (webová) aplikace řeší veškerou interakci s uživatelem, slouží jako prostředník mezi uživatelem a backend aplikací. Jde o webovou aplikaci, která běží přímo na doméně (URL adrese) daného klubu. Navíc je možné ji nainstalovat pomocí prohlížeče jako klasickou aplikaci do počítače (PWA) a podporuje Web Push notifikace. S backend aplikací umí komunikovat i v reálném čase, takže upozorní na nové notifikace a automaticky je označí jako přečtené. Frontend je SPA aplikací postavenou na frameworku Angular.

Frontendovou aplikaci máme v jednom monorepu spolu s dalšími interními aplikacemi, jako je například servisní aplikace, ve které spravujeme všechny aktivní kluby a vytváříme nové – klubovou platformu pro nový klub jsme v ní schopni založit do pěti minut. Všechny aplikace tak mohou sdílet nemalou část zdrojových kódů, což nám velmi usnadňuje vývoj nových funkcionalit i rozvoj těch stávajících.

Součástí monorepa je i aplikace pro mobilní telefony. Máme definovaný vlastní design system, který respektuje nativní vzhled operačních systémů iOS a Android, ze kterého poté aplikaci stavíme. Appku tak máme naprogramovanou jenom jednou, ale publikujeme dvě rozdílné verze pro iOS a Android. V mobilní aplikaci se může uživatel přihlásit do všech svých klubů a poté mezi nimi jednoduše přepínat. Aplikace mění vzhled na základě vizuální identity aktuálního klubu, barvy pro každý klub umíme vzdáleně téměř okamžitě změnit bez nutnosti aktualizace appky. Členům chodí nativní systémové notifikace na iOS i Android – opět s logem konkrétního klubu. (To platí částečně i pro webovou aplikaci.)

Kromě toho máme na serveru spuštěných několik interních aplikací a služeb, které nám pomáhají zajistit správný chod celého systému. Jsou to například monitorovací aplikace, které sledují vytíženost serveru a backend aplikací, nebo služby pro sbírání logů a chyb za běhu systému.

Další část, která funguje odděleně od ostatních, je administrace klubových webů a klubové weby jako takové. Administrace je kvůli vyššímu zabezpečení kompletně oddělena od klubové platformy, ale velmi úzce s ní komunikuje. Veškerá data (například soupisky) se do adminu automaticky synchronizují v pravidelných intervalech. Také je díky tomu možné administraci využít pro správu webů, které kluby mají od jiného dodavatele, pokud nechtějí web eos.

Všechny naše klubové weby fungují opět v jednom monorepu a sdílí naprostou většinu zdrojových kódů. Například způsob, jakým se získávají data z administrace je společný pro všechny klubové weby. Díky tomu jsme schopni nové šablonové weby spustit v řádu několika málo minut. Na serveru pak běží všechny weby odděleně, nezávisle na sobě. Každý web je zároveň dostupný na neveřejné zaheslované doméně, kde je možné si jej prohlédnout, otestovat a naplnit daty před jeho zveřejněním.

Exit mobile version