Nová éra úředních desek

, Michal Škop

Obce s rozšířenou působností, krajské úřady a státní orgány musí od 1. února 2022 publikovat svoje úřední desky jako otevřená data. Díky tomu se informace z úředních desek stávají daleko dostupnější. Vznikly zde podmínky pro kreativní revoluci v použití těchto informací srovnatelnou s dobou, kdy se přecházelo z čistě fyzických úředních desek na internetové.

Nová éra úředních desek
Nová éra úředních desek

V současnosti v ČR existuje několik různých aplikací pro obecní úřady, které v sobě mají již zabudovanou možnost přístupu také na úřední desku.

Podobně velmi obsáhlý projekt edesky.cz umožňuje registrovaným uživatelům zasílání novinek z úředních desek na email.

My si zde ukážeme dvě jednoduché aplikace, které ukazují dva odlišné přístupy ke stejným informacím z úředních desek. V první aplikaci bude cílem co nejjednodušeji dostávat notifikace o novinkách z úřední desky na mobil. Druhá aplikace ukáže práci s úředními deskami v Národním katalogu otevřených dat.

Použitá data

Novinky z úřední desky rovnou do mobilu

S úředními deskami, které jsou dostupné jako otevřená data, lze zasílání informací o nových oznámeních na úředních deskách dosáhnout pomocí několika řádek kódu.

Cílem tohoto příkladu není připravit aplikaci pro širokou veřejnost, ale ukázat, že připravit základ takové aplikace může být díky otevřenosti dat velice jednoduché.

Postup zpracování

K tomu, aby se novinky z úřední desky dostaly na náš mobil, nám pomůžou dva systémy: GitHub a Telegram. Samozřejmě, je to jen jeden z mnoha různých způsobů, jak tento problém řešit, snaha zde byla o co největší jednoduchost.

GitHub je známá webová služba, kde registrovaní uživatelé mohou používat verzovací systém Git. GitHub umí pravidelně spouštět různé akce, což nám pomůže v pravidelném načítání vybrané úřední desky nebo desek. Zároveň rozpozná, že se deska změnila.

Telegram je chatovací služba. My využijeme toho, že umožňuje si snadno naprogramovat automatické boty, jeden z již existujících právě umí upozornit na novou změnu v projektu na GitHubu. Touto změnou bude pro nás novinka na strojově čitelné úřední desce.

Načítání úřední desky (GitHub)

V rámci projektu na GitHubu vytvoříme několik souborů, nejzajímavější jsou dva: Jednoduchý skript načte úřední desku nebo úřední desky. V našem případě půjde o testovací úřední desku (dle příkladů z otevřené formální normy Úřední desky a úřední desku města Kadaň. Úkolem skriptu je jenom stáhnout aktuální úřední desku a uložit ji.

Jak jsme již uvedli, GitHub umožňuje pravidelně spouštět akce. Toho využijeme pro náš výše uvedený skript a necháme ho pravidelně každou hodinu stáhnout úřední desku. A zároveň v případě, že právě stažená verze úřední desky se liší od minulé, GitHub (resp. Git) provede automaticky další akci - tuto novou verzi úřední desky uloží. To vše je popsáno tímto souborem.

Notifikace na Telegramu

Aplikaci Telegram lze nainstalovat jak na mobil, tak na klasický počítač. V několika intuitivních krocích, viz obrázky, si dokážeme připojit náš výše uvedený projekt na GitHubu. Celý proces pak netrvá ani 5 minut. Přidáme si nový kontakt - GitHub bot (@GitHubBot). Připojíme si projekt - a hotovo. Tím, že se spustí akce na GitHubu, tj. nová verze úřední desky se liší od předchozí, a proto se uloží, GitHub bot nás na tuto akci upozorní.

Pokud se tedy na úřední desce objeví nové oznámení, dostaneme automaticky upozornění přímo na mobil.

  1. v aplikace Telegram si přidáme GitHub bot (@GitHubBot)
  2. Spustíme bot, Start
  3. Potřebujeme se připojit k vlastnímu účtu na GitHubu, /connect
  1. Autorizujeme bot na vlastním účtu na GitHubu
  2. Potřebujeme si přidat náš projekt z GitHubu, /newintegration
  3. Připojíme si projekt úředních desek z GitHubu
  1. Vybereme si, že chceme upozornit jen soukromě (pokud nechceme informovat více lidí)
  2. Projekt z GitHubu je úspěšně připojen - to celé nám nezabralo ani 5 minut
  3. Po několika hodinách nám přišlo přímo na mobil upozornění, že na úřední desce se objevilo nové oznámení!

Jednoduché zobrazení úředních desek pomocí Otevřené formální normy a Národního katalogu otevřených dat

Další ukázkovou aplikací je přehled úředních desek publikovaných jako otevřená data spolu s posledními oznámeními, která se na dané úřední desce objevila. Aplikace je ale jednoduchá, testovací a primárně zaměřená na poskytovatele a řešení jejich problémů. Stahuje data ze všech úředních desek, kterých je čím dál tím více, přímo do prohlížeče, tedy spotřebovává hodně dat - v době psaní článku již více jak 100 MB. Pokud však jste na počítači, nebo máte neomezená data, můžete si aplikaci vyzkoušet.

Cílem tohoto příkladu je ukázat napojení na Národní katalog otevřených dat (NKOD) a práci s ním. Zároveň slouží i jako rychlá kontrola pro poskytovatele otevřených dat, že jejich úřední deska je publikována v pořádku (jsou zde vidět i některé počáteční problémy nově publikovaných dat - některé úřední desky např. nemají povolený CORS a nejdou tedy zatím načítat přímo z takovéto aplikace).

Jedná se opět také o ukázku toho, že základní aplikaci lze nyní vytvořit velmi rychle - tato byla vytvořena jen v řádu hodin.

Postup zpracování

Aplikace je vytvořena jako Single Page Application (SPA) v jediném souboru, pouze s pomocí jazyku JavaScript a knihovny Bootstrap použité pro grafický design. Zdrojový kód aplikace je dostupný na GitHubu.

Z hlediska struktury by se aplikace dala rozdělit na tři hlavní části: načtení informací z NKOD, stažení úředních desek a zobrazení uživatelského rozhraní.

První část implementuje metoda fetchDatasets, ta využívá rozhraní GraphQL NKOD pro získání potřebných dat ve formátu JSON. Alternativně by zde šlo použít SPARQL.

Stažení jednotlivých úředních desek je pak jen otázkou dalšího volání Fetch API. Získání potřebné informace z daného obsahu je, i díky použitým vlastnostem JavaScriptu, vcelku přímočené - implementaci je možné najít na začátku funkce createEntryElement. Zde se projevuje efekt standardizace úředních desek - není nutné zjišťovat jaká data kde jsou. Dle OFN se očekává, že v datové sadě bude to, co tam má být a bude to u všech úředních desek stejné.

Zbytek kódu se věnuje hlavně práci s DOM, jinými slovy práci s uživatelským prostředím. Zde by šlo alternativně použít některý z existujících frameworků, ale pro jednoduchost ukázky byl použitý čistý JavaScript. Zejména díky standardizaci a NKOD API tvoří tedy práce s daty vlastně pouze malou část zdrojového kódu.

Ukázka z aplikace na počítači - úřední deska města Kadaň
Ukázka z aplikace na počítači - úřední deska města Kadaň

Výsledek

Ukázali jsme si dvě jednoduché aplikace, které mají ukázat, jak snadno se dá pracovat s úředními deskami, když jsou informace z nich nyní dostupné také jako otevřená data.

První aplikace umožňuje posílat notifikace o novinkách na úřední desce co nejjednodušeji přímo na mobil. Druhá aplikace potom ukazuje seznam úředních desek a zároveň jak pracovat s Národním katalogem otevřených dat.

Můžeme si porovnat zobrazení stejného nového oznámení (v našem příkladě jde o vyhlášku města Kadaň) v obou aplikacích:

  1. Informace o novém oznámení na úřední desce doručená na mobil jako zpráva aplikace Telegram
  2. Informace o stejném oznámení na úřední desce zobrazené na mobilu ve webové aplikaci ukazující úřední desky registrované v NKODu

Další použití

Ukázkové aplikace naznačují potenciál využití informací z úředních desek, které jsou publikovány jako otevřená data. Jejich cílem není přímo sloužit široké veřejnosti, ale představit, jak snadno lze s daty z úředních desek pracovat.

Ukazují, že stejná informace může být zpracována velmi různými způsoby - např. lze využít již existující široce používané nástroje (jako GitHub a Telegram v prvním případě) nebo naopak jednoduše zobrazovat stejnou informaci na webu (jako v druhém případě).

Použité nástroje a zdroje

Související informace