Jak vzniklo Zabukuj.se

23. 10. 2017
Petr Růžička

Tenhle článek bude trochu jiný a zaměřený jiným směrem než na pohyb. Před nějakou dobou můj kamarád a student Petr Novák psal o tom, jaké nástroje používá pro svojí práci, jak mu to pomáhá a s jakými výsledky. Takže mu hromadně poděkujeme za inspiraci – děkujeme Petře – a hurá na to.

Papírové začátky

Když jsem před lety udělal svoje první dva semináře, nazvané kreativně Pohyb I a Stojka I, za pár týdnů se mi naplnila kapacita semináře, já si oddechl a pak mi lidi začali posílat zálohy. A tím se mi zase trochu přitížilo :). Se semináři mi tenkrát pomáhala Běla, která už bohužel není mezi námi, ona je jedním z důvodů, proč jsem začal učit to, co umím od Ida, ale to je jiný příběh. Když jsem viděl, jak vypisuje příjmové doklady na semináři, ručně (chápete písmenka, perem, na papírky), tak se mi dělalo mdlo. Měli jsme na prvních událostech třeba 14 lidí a vypsat 14 zálohových dokladů a potom ještě 14 přijímových dokladů… Potom Stojka a to samé. Masivní problém, alespoň pro mojí, high-tech světem odkojenou osobu.

Vcelku rychle mi došlo, že tudy cesta nepovede (když jsem dělal asi čtvrtý seminář). Zálohy jsem brzo zrušil, lidé měli tendenci zálohu obětovat a nepřijít vůbec, vybírat peníze v hotovosti na semináři má zase tu nevýhodu, že nevíte, kdo dorazí a jestli vůbec (nehledě dneska na tu fajnovost jménem EET.). Na každém svém semináři mám omezený počet lidí, chci zachovat dobrou kvalitu a vím, kolik lidí zvládnu učit a kdy mi to přeroste přes hlavu. V mém případě je to kolem 20-25 lidí, zvládnu v klidu i 50 (na různých festivalech jsem měl i víc), ale dávat každému dávku pozornosti je potom fuška.

Definice problému

Takže úkol zní – chcete naplnit seminář a platbu ideálně vybrat předem (tj. převodem na účet). První iterace byla jenom událost na Facebooku a email na mě (nebo na Bělu) už ani nevím a obratem jsme poslali údaje o platbě. A pak jsme se nějak snažili spárovat platbu. A začal jsem vystavoval faktury v Excelu. Ano tak bláhový jsem byl :o). Když děláte 2 semináře měsíčně je to kolem 30 faktur – údaje někde lovíte z mailu, copy & paste, copy & paste… V jiném Excelu máte seznam těch, co přijdou s poznámkou, jestli teda ten člověk zaplatil nebo ne. A pevně doufáte, že dorazí protože jinak budete muset udělat storno fakturu a to je další “vopruz”. A budete muset hledat dalšího člověka, kterého jste před tím odmítli, protože bylo plno. Nebo berete všechno a všechny, ale to není můj případ viz odstavec nahoře.

To, co mi ukázal Ido (můj učitel), má cenu zlata – pomáhá to lidem s bolestmi zad, kyčlí, kolen, baví je to a mění to životy. A tak uděláte 6 seminářů v měsíci – a všechny se naplní. A rázem máte 100+ faktur v Excelu, honíte platby všude možně, párujete jak vzteklý a už vás to fakt nebaví. Pak začnete učit pravidelné skupiny a tím se to znásobí a komplikuje a vůbec.

Takže jsem začal hledat nástroj, který by mi umožnil vypsat událost, člověk se může přihlásit a zařadí se tím do skupiny. Bude mít údaje o semináři, přijdou mu platební údaje, já budu mít na něj kontakt, abych mu mohl napsat, když se něco změní. Ideálně když se událost naplní (což se mi naplnila kapacita víceméně pokaždé), tak se další účastník zařadí do fronty a budu ho moci pozvat, když někdo nezaplatí nebo se odhlásí. Ideálně mu to udělá fakturu. Bude to umět posílat upomínky a poděkování za platbu (protože to se sluší). Brnkačka. To musí existovat ne? Ne. Před těmi třemi roky jsem nic podobného nenašel a když, tak to buď něco neumělo nebo to stálo moc peněz, bylo to jenom anglicky, bylo to mega komplikované, neumělo to fakturaci a co já vím. Tak jsem si to naprogramoval sám.

Zabukuj.se

Úkol byl celkem jasný, takže jsem postupně začal něco vytvářet. Už dřív jsem se učil framework Ruby on Rails, ale nikdy jsem neměl “reálné” využití – teď ano. A vzniklo https://www.zabukuj.se. Na venek to ukazuje semináře a události, které mám vypsané. Když se nějaká událost naplní, tak se čudlík z “Registrovat” změní na “Registrace jako náhradník”. Člověk si klikne, vyplní jméno a fakturační údaje a přihlásí se – zabukuje. A pak se mu objeví, kde se seminář koná, dostane platební údaje, to samé mu dorazí emailem.

Ruby on Rails

Podle gitu je práce zahájena 30.8.2014 – první git commit. A pak jich bylo ještě…hodně. Strávil jsem na tom HODNĚ času. Bez pohybu :), před počítačem. Ale na druhou stranu mi to ušetřilo HODNĚ času. Naučil jsem se hodně nejen o řešení mého vlastního problému, o programování, ale taky třeba i o účetnictví :). Ono na venek je aplikace dost primitivní. Uvnitř už tak ne.

Když se účastník přihlásí, tak mu aplikace pošle email s předvyplněnými údaji – protože dělám semináře i výuku na různých místech v ČR, tak jsem nechtěl ty emaily psát ručně. Události mají jinou lokalitu, jinou cenu a jiné datum – což se všechno předvyplní do šablon, kterou si nastavím buď globálně, nebo pro každou jednu událost. Jiná šablona je registrační, jiná je upomínka, jiná je poděkování za platbu. Označením studenta můžu smazat, poslat mu upomínku, přesunout ho z čekací fronty do seznamu účastníků. Pro všechny události vidím hned kolik lidí se přihlásilo, kolik zaplatilo, kolik je ve frontě, kolik je náhradníků. Každý, kdo se přihlásí dostane jiný variabilní symbol (logicky….) a tím se pak dá spárovat platba, co přijde na účet. Původně jsem měl součástí zabukuj.se i modul, co dělal faktury. A storno faktury. A pak proforma faktury. Když přišla platba, tak mi přišel email z banky, vzal jsem variabilní symbol, podle toho jsem našel účastníka, označil ho jako zaplaceného. Zároveň se mu poslalo poděkování za platbu (ano, jsem vděčný, že mi někdo pošle peníze), udělal se faktura v PDF a poslala se mu. Jednou měsíčně jsem označil faktury, udělala se z toho PDFka, zazipovalo se to a poslalo mojí účetní.

Fakturoid na scéně

A pak mě to začalo vadit, celé tahle problematika fakturování, tak jsem začal používat úžasnou službu Fakturoid. Přece jenom – dělají fakturaci a dělají to super, tak proč tu funkci vlastně měl duplikovat u sebe, že ano? Tak jsem faktury u sebe zrušil a použil API Fakturoidu. Teď se každému přihlášenému udělá automagicky proforma faktura a když přijdou peníze, tak se z banky pošle email nejen na mou adresu, ale taky na server Fakturoidu. Tam se to pomocí variabilního symbolu a ceny spáruje, vystaví se faktura a ta se pošle účastníkovi. Zároveň Fakturoid sáhne na zabukuj.se (webhook se tomu říká…) a označí člověka jako zaplaceného (na to zase používám Integromat :), další vynikající službu, které šetří čas a peníze).

A to celé se stane samo… Já vypíšu seminář a…a…a pak přijdu a učím – a to je to, co chci dělat a co mě baví. Ale celá ta registrace, fakturace, účetní věci, emaily účastníků, storno věci, wating listy – to už se děje plus mínus samo. Protože mám zabukuj.se a existuje Fakturoid.

Možná bych to dneska celé postavil jinak, možná bych to poslepoval z různých jiných služeb na Internetu a propojil to přes Integromat. Ale Fakturoid by tam byl, je to tak super užitečné, až to není vtipný.

Je to MASIVNÍ úspora času. zabukuj.se je moje pravá i levá ruka, asistentka, co nikdy nespí. Celá ta automatizace byla “trochu” pracná – než jsem to nastavil, tak to něco zabralo, ale teď to je úžasná věc. Mám 11 pravidelných tříd (a budou další), to je asi 150 lidí – už to uřídit – registrace, platby, obsazení tříd je celkem práce. Plus semináře, cca. 2 měsíčně. zabukuj.se mi pomohlo se nezbláznit.

Programoval jsem asi všude

Programoval jsem doma, v kavárnách, v autobusech, v letadle, ve vlaku, v tramvaji i na Letné na lavičce. Kousek po kousku, pomalu a evolučně podle toho, co jsem potřeboval a jak byla potřeba. Trvalo to několik let.

Celé je to napsané, jak jsem už zmínil v Ruby on Rails a na hosting používám Heroku. Pořád se vejdu do neplacené verze, takže ty dva-tři roky jsem za to nezaplatil (kromě svého času) ani korunu. Za hosting nic (Heroku), za vývojové nástroje nic (vlastně jo, používal jsem Sublime, ten jsem si koupil), za framework nic (Ruby on Rails), za git repo nic (Bitbucket). Nic – oblíbená cena.

Teď, když jsem to napojil na Fakturoid, jsem začal platit i za tuto službu, nicméně mi to absolutně nevadí, dělají to bezvadně. Jejich API mi umožnilo napojit se totálně bezbolestně ze svojí aplikace na tu jejich a asi za 3 hodiny to fungovalo. Poměr cena výkon – bezvadné.

Sečteno a podtrženo

Zabukuj.se existuje už pár let a navenek toho moc neumí. To, co ale vidím já je obrovská výpomoc a automatizace věcí, které mi jinak berou čas, vadí mi a nechci je dělat (ale dělat je někdo nebo něco musí). Má to taky nějaké ty drobné chybky, ale už moc nemám chuť to opravovat. Ten projekt byl sice komplexnější, než jsem čekal, ale celé se to hodně vyplatilo. Ač nejsem profík programovací, tak jsem to pomalu slepil dohromady a začal používat.

Ti z vás, co používají na podobné věci pořád Excel a spoustu vyhledávání v mailech, telefonátů apod. – tohle je práce pro roboty. Nesnáším mrhání časem a tohle je přesně úkol pro stroj – únavná, repetitivní práce, kterou člověk nemá dělat. Stroj to udělá lépe, bez chyb a hned. A vy se můžete věnovat józe, dřepům s činkou nebo shybům na jedné ruce.

Můj obor je dneska něco jiného než programování a možná jsem to mohl někomu zadat. Ale tím, že jsem to udělal sám, přemýšlel na tom sám – udělal jsem si jasno v celé řadě problémů.

Zabukuj.se může za to, že jsem zvládnul 3 roky naplno učit, sám udělat asi 150 seminářů a postupně dospět k současným cca. 140 žákům. Ta aplikace pomohla, byť nepřímo, spoustě lidem s bolestí zad a ramen, s její pomocí jsem naučil už asi stovky lidí stojku a lokomoce a ukázal jim, že pohyb může být i zábava.

Životní cyklus podobné aplikace je několik let a pak…pak to možná celé napíšu znovu. Trochu se učím, kvůli jinému svému projektu, React.js, takže jednoho krásného dne asi založím projekt next-gen-zabukuj.se a udělám to jinak – lépe a radostněji.

A nebo taky ne a budu radši dělat dřepy a shyby na jedné ruce :o).

1XaGxIa JuHc8YTR5Znv6tg

Ale to ještě chvilku potrvá, zatím to slouží jak ten nejlepší daemon :).

2024 © Petr Růžička