Ahoj, jsem vývojářem už přes 11 let a rád bych se ti blíže představil skrze pár vybraných projektů, které mě nadchly svou jedinečností v praxi plné e-shopů, prezentačních webů, CRMek a CMSek.
Každý prezentovaný projekt obsahoval alespoň jednu unikátní funkci nebo myšlenku , která mi dovolila si vyzkoušet nové technologie nebo otestovat své hranice.
Prezentované projekty jsou pouze ty, které jsem nevyhotovil jako subdodavatel a najdete mezi nimi i komerční aplikace, určené jak pro profíky, tak širokou veřejnost. Pokud tě zajímá má pracovní náplň více informací nalezneš v sekci Timeline.
Lensys.cz byl mým prvním větším Angular projektem, který začal jako jednoduchá myšlenka, vytvořit software pro fotografy na sdílení a výběr fotografii, avšak časem přerostl v kumulaci všeho, co jsem se kdy naučil. Software aktuálně obsahuje kromě sdílení fotografií, také rezervační a fakturační systém, můžete si editovat emailové šablony odesílané klientům, spravovat svou nabídku služeb a kupónů, nebo odesílat dotazníky. Ale své místo na tomto seznamu si získal díky technologickému řešení zpracování a ukládání fotografií.
Díky tomuto projektu se naskytla dokonalá příležitost vyzkoušet AWS a byla to ta první věc, do které jsem se pustil. Řešení ve finální podobě funguje takto: nahraná fotografie se odešle na server, který vloží fotku na Dropbox, vrátí zpátky CDN url adresu AWS, která v případě, že nenalezne produkt v cachi, spustí Lambda script, jenž si stáhne originál z Dropboxu, vytvoří thumbnail pomocí knihovný Sharp a do cache CDNky vrátí požadovaný obrázek. Můj server je tak pouze přítomen při prvním uploadu.
Kanclik.cz je e-shop nabízející nábytek na míru a aby mohl své služby co nejlépe prezentovat, rozhodl jsem se vytvořit konfigurovatelné 3d modely nabízeného zboží. Kromě toho, každý nastavitelný produkt, obsahuje i konfigurační soubor, jenž si po dokončení objednávky administrátoři e-shopu nahrají do svého softwaru na modelování nábytku, a okamžitě vidí klientův výběr. S tímto modelem pak můžou dále pracovat a připravit ho do výroby.
Jelikož jsem již měl nějakou zkušenost s 3D modelováním v CSS, rozhodl jsem se jít touto cestou místo využití np. Three.js. První model jsem tak dokázal vytvořit docela rychle a výsledný kód generuje vlastní PHP knihovna, která funguje taky jako abstraktní vrstva mezi konfigurací vzhledu a způsobem jakým se model zobrazí. Můžu tak v případě refactoringu vyměnit HTML+CSS za Three.js.
Při tvorbě tohoto projektu jsem již měl zkušenost s Reactem i Angularem, ale kvůli nízké komplexitě jsem se rozhodl použít React a rozšířit své zkušenosti o Redux. Po dokončení náročnější části backendu, mi zbylo docela dost času a mohl jsem ušetřený čas investovat do prozkoumání možnosti Reduxu a upravit kód tak aby byl čitelnější, lépe strukturovaný a vyeliminoval jsem nadbytečné rerendery.
Hlavními uživateli aplikace jsou kromě administrátorů e-shopu kanclik.cz, kteří pracují na desktopech, také kluci z dílny, využívající tablet a řidiči, využívající mobil.
JS framework, byl proto dokonalá volba, jelikož ve chvíli, kdy bude potřeba vytvořit multiplatformní mobilní aplikaci, budeme mít připravené API a můžeme pak vytvořit jednoduchý webview, nebo předělat appku do React Native. Nechali jsme si tak otevřené dveře, pro potencionální růst, aniž bychom investovali více času a peněz.
V mém seznamu bude tento projekt určitě nejstarší, jelikož vznikal v době, kdy využití OpenBanking bez certifikace byla jenom pouhá myšlenka a napojit se na všechny banky navíc zdarma, byl jenom sen. Ale s rostoucími výdaji a s faktem, že většina mých známých mělo FIO právě díky jejich API, se naskytla dokonalá příležitost vytvořit systém jak pro mě a mé známe, tak i kohokoli kdo by hledal jednoduchou správu rozpočtu.
Po pravdě se jednalo už o druhou iteraci, ale po předimenzované první variantě, jsem se rozhodl zaměřit na jednoduchost, a hlavně co nejmenší administrativu, což obálková metoda splnila. Jako první jsem napojil FIO a vytvořil konfiguraci krok za krokem, pro všechny nové uživatele.
Měl jsem tak připravené MVP, které jsem zveřejnil a časem obohatil o další funkce, a i když kromě AirBanku, kde jsem transakce četl z emailů, už nepřibyly žádné další banky, aplikace je stále dostupná zdarma na adrese chytreobalky.cz a stále mi poskytuje dostatečné uspokojení v oblasti budget managementu.
Jak se říká, neexistuje programátor, který by si alespoň jednou nezkusil vytvořit svůj vlastní framework, u mě to bohužel platí pro CMS😃.
Angular už pro mě nebyla úplně novinka a se skládáním obsahu stránek jsem měl již nějakou zkušenost z projektu Sirius nebo ze systému pro skládání emailu v projektu Bryson, proto jsem se rozhodl pro pár příštích projektů vytvořit CMS, které by spojovalo jednoduchost editoru mailchimp, vizuální zobrazení dle wix.com a správu obsahu na jaký jsou naši klienti zvyklí.
Hlavním lákadlem bylo samozřejmě kromě vytvoření WYSIWYG editorů, také vymyšlení, jak budeme konfigurovatelný obsah ukládat a následně zobrazovat. Jelikož jsem nechtěl stránky generovat v Angularu tak jsem vymyslel způsob, jak v Nette vytvářet komponenty, které pomocí CLI, můžu přetvořit do Angularu, jenž pak využijí sdílené CSS, což zajistí stejný vzhled jak v administraci, tak na frontendu.
Celá stránka je uložená jako JSON, který zpracuje rekurzivně funkce pro dynamické generování obsahu.
Vzhled stránky se mění okamžitě, a na místo využití state managementu jako NgRx jsem vytvořil mutabilní objekt, který díky two-way data bindingu a způsobu jakým angular překresluje DOM, mi umožňuje modifikovat komponenty, bez dispatchování akci a razantně tak snižuje boilerplate, kterému bych se jinak nevyhnul.
Zde pokusím v časovém horizontu naznačit jak práce na jednotlivých projektech a pro dané společnosti obohatila mé dovednosti a ovlivnila mé zaměření.
Projekt, jenž se zrodil v hlavách tvůrců Brysona, mě znova zavedl do neprobádané oblasti pokročilých rezervačních a pokladních systému a umožnil mi spolupracovat se zkušeným designerem, který povznesl celý projekt na novou úroveň.
Dostal jsem možnost i oprášit své zkušenosti při tvorbě skladového modulu, návrhu databázové struktury e-shopu a tvorbu frontendové části klubového e-shopu.
O Lensysu si můžete pročíst více v sekci Projekty, na tuto timelinu jsem ho ale přidal abych zaznamenal tento pro mě důležitý moment a pomalý náklon k frontendovým JS frameworkům a NodeJS.
Práce na Brysonu, softwaru pro golfové hráče a trenéry, byla pro mě rozhodně velkým momentem a zajímavou výzvou už od samotného začátku. Ze dne na den jsem se ocitl v oboru, který mi byl cizí, ale jak léta ubíhali nalezl jsem zalíbení, jak v golfu, tak v softwaru, který jsme vyvíjeli.
Mým úkolem nebylo vytvořit jenom další CRUD UI, ale nabídnout hráčům i trenérům možnost zadat a analyzovat každý úder, porovnat se s jinými hráči a sledovat svůj vývoj ve statistikách.
Společnost SOLARIS.media byla v mých začátcích velkou oporou, která mi umožnila se podílet na vývoji velkého CMS v Nette a být aktivní součástí v rozhodovacích procesech i jako junior. V době, kdy to píšu Sirius stále roste, a i když se po těch letech naše spolupráce ztenčila, jsem rád, že můžu být stále aktivním členem zkušeného týmu.
V prvním roce na volné noze jsme se společně s mým mentorem rozhodli spojit síly a budovat portfolio pod vlajkou BiteIT.cz.
Vytvořili jsme proprietární CMS BiteSHOP, který doteď pohání naše e-shopy a weby. A i když se teď soustředíme spíše na interní aplikace, BiteSHOP stále žije, a drží krok s dobou.
První společnost, pro kterou jsem pracoval mi umožnila být součástí celého ekosystému e-commerce, kde jsem si vyzkoušel vše od designu, tvorby a spuštění až po technickou podporu či řízení expedice.
Poslední dva roky, jsem pak kromě webových stránek, strávil programováním a údržbou expedičního softwaru.