Prípadová štúdia · klimatizácie · Slovensko
whispAir: softvér, ktorý vznikol v teréne.
Systém pre firmu, ktorá predáva, montuje a servisuje klimatizácie. Vznikol medzi montážami, s technikom, kanceláriou aj zákazníkom v hlave. Kód písali AI agenti, ja som určoval, čo sa stavia, a nepustil som nič, čo v teréne nefungovalo.
- 4
- aplikácie v ostrej prevádzke: API, portál, aplikácia pre technikov, web FilthyFilter
- 1
- databáza, jedna pravda pre celú firmu
- 7
- situácií z terénu, každá s odpoveďou v systéme
- 0
- nasadení bez skúšobnej verzie, zálohy a cesty späť
- Stav
- V prevádzke od septembra 2026
e-shop pred spustením
- Odvetvie
- Klimatizácie a vzduchotechnika · predaj, montáž, servis
- Moja rola
- Návrh, vedenie AI agentov, kontrola, nasadzovanie a prevádzka. A montáže.
- Tím
- Ja a AI agenti. Jeden plánuje a kontroluje, ďalší stavajú, a o kolíziách sa dohodnú medzi sebou skôr, než sa pýtajú mňa.
- Časti
- API · interný portál · aplikácia pre technikov · e-shop · web FilthyFilter
- Stack
-
PHP 8.2PostgreSQLC# · .NET 10 MAUISQLiteAlpine.jsTailwind 4WooCommercePowerShellSentry
01 — Kontext
Jedna firma, tri svety naraz.
whispAir predáva, montuje a servisuje klimatizácie na Slovensku. K nemu patrí druhá značka FilthyFilter, ktorá čistí a servisuje klimatizácie v okolí Bratislavy, Trnavy a Nitry.
Každý deň sa tu stretávajú tri svety: zákazník na webe, kancelária pri počítači a technik na rebríku. Každý potrebuje inú časť tej istej pravdy. Zákazník termín a cenu, kancelária prehľad a faktúru, technik adresu, sériové číslo a to, čo sa so zákazníkom dohodlo.
02 — Situácie
Z čoho systém vychádza.
Namiesto zoznamu funkcií som začínal od situácií, ktoré poznám z montáží. Každá dostala v systéme konkrétnu odpoveď.
- Technik stojí v pivnici bez signálu.Aplikácia pracuje nad lokálnou databázou a synchronizuje sa na pozadí, keď signál príde.
- Zákazník zavolá uprostred montáže.Po hovore sa aplikácia spýta, čo ste sa dohodli, aby sa dohoda nestratila v hlave.
- Sériové číslo sa odpisuje z nálepky na zariadení.Skenuje sa z QR alebo čiarového kódu priamo v aplikácii.
- Ten istý človek píše cez web, WhatsApp aj e-mail.CRM zlučuje zákazníkov a firemné schránky sa čítajú do jedného miesta.
- Prvá otázka je vždy „koľko to bude stáť?“E-shop „klimatizácia bez obhliadky“: kontrola PSČ, voľný termín montáže a cena rovno.
- Chatbot, ktorý si vymyslí cenu.Jazykový model iba priradí otázku k odpovediam, ktoré systém pozná. O cene, termíne ani službe nerozhoduje.
- Oprava, ktorá cez víkend zhodí prevádzku.Každá zmena ide cez skúšobnú verziu a overenie. Ak po nasadení zlyhá smoke test, systém sa sám vráti späť.
03 — Riešenie
Päť vrstiev, jedna pravda.
Dáta firmy žijú na jedinom mieste. Všetko ostatné sú okná, cez ktoré sa na ne pozerajú rôzni ľudia.
Jadro
API a databáza
REST API v PHP bez frameworku nad PostgreSQL, so štyrmi rolami od technika po majiteľa. CRM, fakturácia s PDF, párovanie platieb, záruky, odporúčania a recenzie. Zoznam endpointov aj dokumentácia úloh na pozadí sa generujú z kódu a CI zlyhá, keď s ním nesedia.
Kancelária
Interný portál
Zákazky, zákazníci, fakturácia, dopyty a marketing na jednom mieste, v slovenčine aj angličtine. Build prejde až po kontrole rozloženia, lintu a testov.
Terén
Aplikácia pre technikov
Android aplikácia v .NET MAUI: zákazky, fotky, sériové čísla, poznámky z hovorov a push notifikácie. Funguje offline a chráni pred konfliktmi pri synchronizácii. Skúšobná a ostrá verzia sú vedľa seba na jednom telefóne, skúšobná má červenú ikonu, aby nikto nezadal skutočné dáta na zlé miesto.
Zákazník
E-shop, FilthyFilter a concierge
WooCommerce e-shop s rezerváciou montáže, platbami a meraním až po súhlase. Web FilthyFilter bez frameworku. AI concierge na webe aj vo WhatsAppe, ktorý odpovedá iba tým, čo systém naozaj vie.
Prevádzka
Nasadzovanie a dohľad
Build, skúšobná verzia, overenie a produkcia až po napísanej potvrdzovacej fráze. Kontrola SHA-256 každého balíka, záloha pred nasadením, automatický rollback, Sentry na chyby a audit bez tajomstiev.
WooCommerceWhatsAppMeta Conversions APIMeta CatalogGoogle AdsRevolutStripeFirebasen8nCloudflare
04 — Postup
Jeden človek, ale nie sám.
Systém som staval s AI agentmi ako tímom. Aby tím fungoval, potrebuje pravidlá, nie hrdinov.
- Viem, čo im kážem. Pätnásť rokov som kód písal sám, preto viem, ako má výsledok vyzerať, a spoznám, keď agent zablúdi.
- Každá úloha má vlastný pruh. Oddelený git worktree a vlastnú vetvu, takže sa agenti navzájom nepremazávajú. Nástroj hlási, keď dve úlohy menia tie isté súbory.
- Agent dostane mapu, nie hádanku. Každá úloha zanechá poznámky so zoznamom súborov, na ktorých záležalo. Ďalší agent aj človek začína tam, kde predchádzajúci skončil.
- Postupy sú spísané. Interné príručky pre databázu, API, offline synchronizáciu, nasadzovanie či riešenie výpadku.
- Nič nepristane bez kontroly. Úloha sa uzavrie až po lokálnom CI, jedným commitom, a história sa neprepisuje.
05 — Čo nevyšlo
Úprimne o tom, čo ešte nie je hotové.
Prípadové štúdie zvyčajne pôsobia, akoby všetko išlo podľa plánu. Nešlo.
- E-shop ešte nie je spustený. Beží na vývojovej verzii, ostrá doména zatiaľ ukazuje „Pripravujeme“. Platby na splátky sa zapnú, až keď budú hotové zmluvy s poskytovateľmi a právne texty.
- Vývoj predbieha prevádzku. Nové verzie API a portálu sú hotové na skúšobnej verzii a čakajú na ostré nasadenie. Čím dlhšie čakajú, tým väčší balík ide naraz, preto chcem nasadzovať častejšie a po menších kusoch.
- Databáza narástla na desiatky migrácií. Zlúčil som ich do jednej základnej schémy, aby sa nový človek ani agent nemusel prehrýzať celou históriou.
- Systém rástol po kúskoch. Projekty kedysi niesli iné mená (JobsWeb, JobsApp, HvacApi) a stopy po nich sú dodnes v niektorých príručkách.
- Disciplína stojí čas. Technici v teréne bežne používajú verziu o niekoľko vydaní staršiu, než je hotová, lebo nová čaká na overenie. Radšej pomalšie než rozbitý deň technika.
06 — Čo si beriem
Čo si z toho beriem do ďalších projektov.
- Softvér pre terén sa navrhuje v teréne. Najlepšie funkcie vznikli z konkrétnej situácie na montáži, nie z porady.
- Poriadok je lacnejší než hrdinstvo. Pevná cesta do produkcie ušetrí viac nocí, než stojí.
- AI agenti potrebujú mapu a mantinely. Voľná ruka bez kontextu vyrába iba rýchlejší chaos.
- Jazykový model patrí k textu, nie k peniazom. Cena, termín a rozsah služby ostávajú v pravidlách, ktoré sa dajú overiť.
- Kúsok v prevádzke má väčšiu cenu než celý plán v šuplíku.