Jednotkové testy
737 testů v 78 souborech (Vitest): spotřeba, předpověď, objednávky, rozvrh, opravy a storna, kontrola vstupů.
Pod kapotou
Pro zvědavé: technologie, testy, architektura a čísla. Všechno na této stránce se spočítá samo při každém nasazení. Popisuje verzi 1.0.1 ze dne 11. 11. 2026. English
npm audit)Testy
Zdravotní záznamy a zásoby materiálu nesnesou chybu ve výpočtu. Nasazení proto samo spustí kontrolu typů a všechny testy. Když cokoli selže, nová verze se nevydá.
737 testů v 78 souborech (Vitest): spotřeba, předpověď, objednávky, rozvrh, opravy a storna, kontrola vstupů.
147 scénářů v 40 souborech (Playwright). Každý běží na iPhonu 13 mini (WebKit, jádro Safari) i v Chrome na počítači.
Dvě zařízení zapisují bez signálu, výpadek uprostřed synchronizace, poškozený nebo smazaný soubor na Disku, obnovení ze zálohy. Nic se nesmí ztratit ani zdvojit.
Automatická kontrola přístupnosti (axe), kontrast textu ve světlém, tmavém i kontrastních režimech, změřená velikost a barvy tlačítek.
Vygenerovaná historie za 10 let, asi 25 000 záznamů. Přepočet stavu musí zůstat pod 50 ms.
Výpočty se porovnávají i s historií vedenou dřív v tabulce. Skutečná data zůstávají mimo repozitář, v něm je jen uměle vytvořená sada se stejnou strukturou.
Architektura
Aplikace neukládá „aktuální stav“, ale každou akci jako samostatnou událost. Zásoby, deník i předpověď se z nich pokaždé dopočítají (event sourcing).
Jak vznikla
Aplikaci myHHD autor nepsal sám. Většinu kódu, testů, překladů do 15 jazyků i této stránky napsal Claude Code, programovací asistent s umělou inteligencí od společnosti Anthropic.
Autor určuje, co má aplikace umět a jak má vypadat, rozhoduje o každé změně a všechno zkouší na vlastním iPhonu v běžném provozu. Pravidla, která Claude při práci dodržuje (ochrana dat na prvním místě, události se nikdy nemažou, žádná doporučení k léčbě, bez úspěšných testů se nenasazuje), jsou sepsaná v repozitáři a velkou část z nich hlídají automatické testy.
Nejdřív zhruba týden příprava: autor sepisoval zadání a promýšlel technické řešení. Vývoj začal, až když byla jasná kostra zadání i technologie. Všechno podstatné pak vzniklo za 5 pracovních dní, včetně všech 737 jednotkových testů. Zbytek se ladí za běhu, při autorově vlastní domácí dialýze.
Technologie
Progresivní webová aplikace (PWA): běží v prohlížeči, dá se nainstalovat na plochu a funguje bez signálu. Žádný framework na serveru, žádná databáze u autora.
| Knihovna a verze | K čemu slouží |
|---|---|
| Svelte 5.57.2 | Rozhraní. Kompiluje se do malého JavaScriptu bez běhového frameworku. |
| TypeScript 6.0.3 | Typy ve striktním režimu, chyby se najdou před spuštěním. |
| Vite 8.3.4 | Sestavení a rozdělení kódu na části, které se načtou až při potřebě. |
| vite-plugin-pwa 2.0.0 | Service worker (Workbox): celá aplikace v zařízení, aktualizace na pozadí. |
| Dexie 4.4.6 | Úložiště IndexedDB v prohlížeči. |
| Tesseract.js 7.0.0 | Čtení dodacích listů z fotky přímo v zařízení (WebAssembly). |
| jsPDF 4.2.1 | Exporty a objednávky do PDF. |
| write-excel-file 4.1.1 | Exporty do Excelu (XLSX). |
| uqr 0.1.3 | QR kódy pro platbu v sekci O autorovi. |
| Cloudflare Workers 4.151.1 | Hosting a výměna přihlašovacích klíčů Google. Zdravotní data sem nechodí. |
| Claude Code | Programovací asistent od Anthropicu, napsal většinu kódu, testů a překladů. |
| Vitest, Playwright, axe 5.0.5 · 1.64.1 · 4.14.0 | Jednotkové testy, testy v prohlížeči, kontrola přístupnosti. |
Kód
Bezpečnost a soukromí
Prohlížeč smí spouštět jen skripty z webu myHHD a posílat data jen sem a na Google Disk. Ani chyba v knihovně tak záznamy nepošle jinam.
drive.file: aplikace na vašem Disku vidí jen soubory, které sama
vytvořila.
Dlouhodobé oprávnění zůstává v zařízení. Malá funkce na Cloudflare jen vymění klíče, nic neukládá a zdravotní data nikdy nedostane.
Žádné cookies, analytika ani reklamy. Hlášení chyby je e-mail s verzí a zařízením, bez zdravotních dat.
8 knihoven přímo v aplikaci (41 balíčků i s jejich závislostmi), 575 i s nástroji pro vývoj a testy.
Do zařízení se uloží 2,4 MB, pak aplikace startuje bez sítě. Čtení z fotky (14,1 MB) se stáhne až při prvním použití, stejně jako PDF, Excel a jednotlivé obrazovky.