01 Problém
Přepisování faktur a účtenek do účetnictví je pomalé a chybové, duplicity proklouznou a externí účtárna to navíc musí dělat za mnoho klientských firem najednou, období po období.
02 Co aplikace dělá
- Příjem nahráním nebo přes vyhrazenou e-mailovou schránku pro každou firmu; stránky PDF se renderují a zpracují jako úlohy na pozadí.
- AI vytěžení údajů z dokladu s kontrolou člověkem; nic se neexportuje bez kontroly.
- Automatické kontroly: duplicity, nesoulad částek, chybějící údaje; doklady si drží původní měnu.
- Export do POHODY s přílohami; varianta pro účetní kancelář přidává klientské firmy, účetní období a předávací balíky (ZIP + XLSX).
03 Architektura
- 01 WebAplikace v Next.js pro uživatele a administrační konzole
- 02 APINestJS, Drizzle ORM, JWT, zod; auditní log, do kterého se jen přidává
- 03 JobsBullMQ nad Redisem, poppler pro renderování PDF, příjem z e-mailové schránky
- 04 AIVyměnitelný poskytovatel vytěžování: v provozu Claude přes OpenRouter, alternativně lokální vision model přes Ollama
- 05 DataPostgreSQL; každé nasazení má vlastní databázi
- 06 OpsTři nasazení v Dockeru za Caddy na dvou Linux serverech
04 Technologie
NestJSNext.jsTypeScriptDrizzlePostgreSQLRedisBullMQClaude (OpenRouter)OllamaTurborepo
05 Jak jsem pracoval s AI
AI tu hraje dvě role. Agenti systém staví podle briefu CLAUDE.md a dokumentu architektury v každém repozitáři. Za běhu LLM vytěžuje údaje z dokladů, ale za rozhraním: poskytovatele jde přepnout mezi cloudovým a lokálním modelem a každý vytěžený doklad projde kontrolou člověkem a pravidly, než se vyexportuje.
06 Co je ověřené
- Tři produkční nasazení v provozu (ověřeno v říjnu 2026); používají ho tři firmy.
- Aktivní vývoj (poslední commity v říjnu 2026); ~50 testovacích souborů v každé codebase.
- Vytěžování běží na Claude přes OpenRouter; lokální poskytovatel přes Ollama je implementovaný jako alternativa.
07 Upřímné poznámky
- Varianta pro účetní kancelář je samostatná codebase; sdílené jádro vytěžování je zatím zkopírované, ne sdílený balíček.
- Názvy klientů neuvádím; screenshoty používají fiktivní firmu a vygenerované ukázkové faktury.