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.

07 — Spolupráca

Vy poznáte svoju prevádzku. Ja poznám systémy.

Ani jeden z nás nemusí vedieť všetko. Kde nestačíte vy, nastúpim ja. Kde nestačím ja, poviete mi to vy. Tak vzniká softvér, ktorý ľudia naozaj používajú, a nie iba ten, ktorý bol v zadaní.

  1. Najprv sa pozriem, ako to u vás naozaj beží.

    Na výjazde, v kancelárii, pri telefóne. Nie iba na porade, kde všetko vyzerá jednoduchšie, než je.

  2. Spolu pomenujeme miesta, kde to drhne.

    Vašimi slovami, nie mojimi technickými. Z toho vznikne mapa, ku ktorej sa obaja môžeme vracať.

  3. Začneme najmenším kúskom, ktorý vám uľahčí týždeň.

    Do rúk ho dostanete skoro, nie po polroku. Ďalší krok určí to, ako sa osvedčí v praxi.

  4. Nič nejde do ostrej prevádzky bez vášho potvrdenia.

    Každú zmenu uvidíte najprv na skúšobnej verzii. Rovnako to robím aj vo vlastnej firme.

  5. Znalosti ostávajú u vás.

    Dokumentácia, mapy a postupy, aby ste neboli závislí iba odo mňa. Dobrá spolupráca nemusí byť väzenie.

  6. Hovoríme priamo.

    Ak niečo nedáva zmysel, poviem to, aj keď je to v zadaní. A čakám to isté od vás.

Kedy to spolu asi nepôjde

  • Hľadáte najlacnejšiu šablónu. Je to legitímna voľba, len ju nerobím ja.
  • Potrebujete hotový systém o dva týždne. Dobrý kus sa dá dodať rýchlo, celý systém nie.
  • Chcete dodávateľa, ktorý mlčky splní zadanie, aj keď vidí, že v praxi fungovať nebude.

A ak sa nenájdete ani v jednom bode, no dáva vám to zmysel, napíšte. Rozhodneme sa spolu.

Prvý krok

Porozprávajme sa o tom, čo vo vašej prevádzke drhne.

Bez formulára a bez prezentácie. Stačí pár viet o tom, ako to u vás dnes funguje.