2025-11-26 20:09:57 +01:00
2025-11-26 20:09:57 +01:00
2025-11-26 20:09:57 +01:00
2025-11-26 20:09:57 +01:00
2025-11-26 20:09:57 +01:00
2025-11-26 20:09:57 +01:00

🌊 HLADINATOR

HLADINATOR je interaktivní a vizuálně poutavá webová aplikace pro sledování aktuálního stavu a historie českých přehrad. Aplikace poskytuje přesná data o výšce hladiny, odtoku, přítoku, aktuálním objemu a navíc sbírá historii počasí (teploty a srážek) přímo od zdroje.

Zdroj dat: Povodí Vltavy (pvl.cz) a další povodí v ČR.


🚀 Jak spustit aplikaci lokálně

Aplikace je postavena na moderním stacku (React, Vite, TypeScript, Recharts, Leaflet). Pro její spuštění nepotřebuješ žádný složitý backend, data se čtou z předgenerovaných JSON souborů.

  1. Nainstaluj závislosti (pokud jsi to ještě neudělal):
    npm install
    
  2. Spusť lokální vývojový server:
    npm run dev
    
  3. Otevři prohlížeč na adrese http://localhost:5173.

🔄 Jak aktualizovat data (Scraping)

Povodí Vltavy neposkytuje standardní API pro historii srážek a teplot, ani nepodporuje přímé dotazy z klientského prohlížeče (kvůli CORS a bezpečnosti). Proto využíváme vlastní scraper.

Pro ruční stažení těch nejnovějších dat z webu povodí spusť v terminálu:

npm run data:update

Tento příkaz provede dvě věci:

  1. npm run scrape: Otevře stránky povodí pro všech 12 přehrad, přečte tabulky s historickými měřeními a najde "Aktuální hodnoty", odkud vytáhne exaktní přítok, objem, srážky a teplotu. Tato data inteligentně sloučí s tvojí lokální databází (public/data/*.json). Pokud Povodí aktuálně počasí neposkytuje, skript zrecykluje tvou dřívější uloženou hodnotu, aby se graf "nerozbil".
  2. npm run build-index: Zaktualizuje hlavní indexový soubor lakes_index.json, který aplikace využívá pro vykreslení rychlých náhledů (např. v levém menu nebo na mapě).

Automatické stahování dat (Cron / Spouštěč)

Aby se ti automaticky budovala bohatá historie počasí a srážek i ve chvíli, kdy spíš, doporučuji nastavit automatické spouštění skriptu npm run data:update.

Zde jsou nejběžnější možnosti, jak si to můžeš nastavit ty sám:

Možnost A: Přes Crontab na Macu / Linuxu (Lokálně)

Pokud ti běží počítač (nebo domácí server/Raspberry Pi) nepřetržitě, můžeš využít systémový cron.

  1. Otevři terminál a napiš: crontab -e
  2. Na konec souboru vlož následující řádek (uprav cestu ke svému projektu a Node.js):
    # Spustit scraping každých 15 minut
    */15 * * * * cd /Users/davis/WebstormProjects/davisfe.cz && /usr/local/bin/npm run data:update >> scraper.log 2>&1
    
  3. Ulož a zavři editor. Od této chvíle se systém postará o automatický sběr dat!

Možnost B: Pomocí GitHub Actions (Pro Produkci)

Až projekt nahraješ na GitHub, můžeš si vytvořit workflow soubor (např. .github/workflows/scrape.yml), který bude skript spouštět na serverech GitHubu zdarma každou hodinu, a výsledné .json soubory automaticky commitne a publikuje na web.

Možnost C: Jednoduchý integrovaný spouštěč (Nejlehčí)

Pokud nechceš řešit složitý systémový crontab, napsal jsem pro tebe přímo do Node.js malý spouštěč. Stačí si otevřít další okno terminálu a napsat:

npm run data:watch 10

Tento příkaz ihned provede první stažení a následně bude aplikaci automaticky aktualizovat každých 10 minut (číslo na konci si můžeš libovolně přepsat podle toho, jak často chceš stahovat). Skript poběží, dokud okno terminálu nezavřeš.


📁 Struktura klíčových datových složek

  • /scripts/lakesConfig.ts - Tady najdeš definici všech 12 sledovaných přehrad (včetně jejich ID pro Povodí Vltavy, GPS souřadnic, maximálních objemů a stavebních kót). Sem můžeš přidávat nové přehrady.
  • /public/data/ - Zde se ukládají vygenerovaná JSON data. V produkci musí být tyto soubory přístupné jako statické assety.
  • /src/components/ - Obsahuje samotné vizuální karty, Leaflet mapu a detailní LakeDetail.tsx (kde se vykresluje hydrologický a meteorologický graf přes Recharts).
S
Description
davisfe.cz
Readme 6.9 MiB
Languages
TypeScript 49.5%
CSS 30.8%
JavaScript 12.5%
HTML 5.6%
Dockerfile 1.6%