Přeskočit na obsah
Miroslav Novotný
Miroslav Novotný
  • Blog
  • O mně
  • Novinky
  • Recenze
  • Projekty
  • Slovníček
  • Kontakt
  • Contexico
Miroslav Novotný

Contexico – začínáme (milník 1)

Publikováno dne 14. 10. 202614. 10. 2026 Autor: Miroslav Novotný

Tak název už máme a tím je už skoro hotovo. 🙂 No dobře, ještě je třeba na tom trochu vyšívat. Projekt jsem rozdělil do několika milníků a tvorbu Contexica budu popisovat právě z pohledu jednotlivých milníků.

Milník 1

Pro milník 1 jsem si stanovil tyto úkoly:

  • přihlašovací stránka (jméno a heslo),
  • dashboard s placeholder daty a základní API,
  • přihlášení, odhlášení, údaje o přihlášeném uživateli a health-check,
  • dashboard bude zatím ukazovat vymyšlená čísla, protože dokumenty ještě neexistují. Nešlo mi o funkčnost, ale o to, aby bylo vidět, jak bude aplikace vypadat a jak se v ní bude navigovat.

Technologie jsou záměrně nudné: PHP s Laravelem, MariaDB jako samostatná databáze a Sanctum pro tokeny. PHP má své limity, ale pro tento účel nejsou úzkým hrdlem a navíc ho znám z projektů pro WordPress. Za úzké hrdlo naopak považuji spíš OCR a vyhledávání než samotný jazyk, ve kterém aplikace běží.

Proč chci API

Webové rozhraní je jen tenký klient nad API a používá stejné endpointy, které bude mít k dispozici kdokoli jiný. Vím, proč to chci: u různých DMS jsem během své kariéry viděl, co dokážou dodavatelské zásahy přímo do kódu při každém upgradu. Jednak je to pracné a jednak je to pro uživatele s každou aktualizací drahé. Jádro Contexica proto nemá být modifikovatelné. Moduly poběží jako externí služby a budou se k jádru registrovat přes API. Dnes se to ještě nepoužívá, ale struktura projektu tomu už nebrání. Autentizaci jsem schválně nechal jednoduchou. Žádné AD, žádné dvoufaktorové přihlášení, zatím jen jméno a heslo. Datový model ale počítá s tím, že přihlašovacích metod může být více, takže se to dá později doplnit. Pro milník 1 to nyní není důležité.

Technické pozadí

Trochu bych chtěl přiblížit, jak tento projekt vzniká a proč se vyvíjí tak rychle. Je to tak, že kostru rozepisuji já, ale většinu kódu píše Devin. Vítejme v nové éře. Pro sebe jsem si to nazval half vibecoding. Protože jsem ale nechtěl slepě věřit kódu, který jsem sám nenapsal, obsahuje zadání i povinná kritéria kvality: rozsáhlé automatické testy, statickou analýzu a sebekontrolu agenta před odevzdáním.

Výsledek milníku 1 vypadá takto:

  • php -l a Pint bez chyb (45 souborů),
  • PHPStan level 8 bez chyb,
  • 124 testů se 594 asercemi, všechny prošly,
  • pokrytí kódu 100 % při požadovaném minimu 90 %,
  • composer audit bez známých zranitelností,
  • soubor .env není ve verzování.

Agent navíc ověřil composer validate --strict, kompilaci šablon, cache konfigurace a rout i čistou instalaci přes migrate:fresh --seed, přesně podle README.

Co v reportu nebylo v pořádku

Report poctivě uváděl i slabá místa a dvě z nich jsem nechtěl nechat být. Ochrana dashboardu byla původně jen na straně klienta, takže by se k němu někdo bez přihlášení dostal přímým požadavkem. To u systému, který má časem držet smlouvy a faktury, není kosmetická věc. Druhým problémem bylo, že repozitář neměl jediný commit a celý stav existoval jen na disku. Obojí jsem opravil okamžitě, ještě v rámci milníku 1. Čím později bych to udělal, tím více práce by s tím bylo. Ochranu teď vynucuje server a repozitář má první commit.

Co v testování zbývá? Třeba to, že JavaScript není pokrytý testy a že měření pokrytí počítá jen řádky, ne větve. U dashboardu s placeholdery to zatím není kritické. Jakmile přibude skutečná interaktivní logika, vrátím se k tomu. A samozřejmě také automatizované uživatelské testy à la Selenium.

Co bude dál

Milník 2 je správa typů dokumentů a oddělení. Právě typy dokumentů jsou jádrem celého systému, protože na nich později stojí workflow, oprávnění i vyhledávání. Metadata každého typu půjdou nastavit zvlášť, takže faktura nebude zobrazovat například „platnost smlouvy“. Hodnoty metadat u konkrétních dokladů budu ukládat v JSON sloupci, ne ve vazební tabulce. U velkého DMS s tisíci záznamy měsíčně jsem viděl, že se vyhledávání po roce provozu přetížilo, a to se napravuje špatně. Takže see you later 🙂

Contexico Milník 1OCRPHP

Navigace pro příspěvek

Předchozí příspěvek
Další příspěvek

Miroslav Novotný

Specialista pro DMS - Plánuji a vedu implementaci softwaru pro elektronickou správu dokumentů, digitalizaci procesů a automatizaci workflow.

Napsat komentář Zrušit odpověď na komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Nejnovější články

  • Kulturní rozdíly v DMS

    Kulturní rozdíly v DMS

    14 října, 2026
  • Vlastní DMS - Contexico

    Vlastní DMS - Contexico

    4 října, 2026
  • DMS/ECM přehled – září 2026

    DMS/ECM přehled – září 2026

    30 září, 2026
  • Jaké DMS do firmy zvolit?

    Jaké DMS do firmy zvolit?

    19 září, 2026
  • Je libo Docspell?

    Je libo Docspell?

    12 září, 2026
©2026 Miroslav Novotný