Momentálne mám rozpracovaný projekt, ktorý robím hlavne zo zábavy a z nadšenia pre technológie. Ak ťa zaujíma, ako to celé vzniká, môžeš nahliadnuť priamo do mojej „kuchyne programovania“ – uvidíš proces tvorby, logiku kódu a to, ako jednotlivé časti systému ožívajú v praxi.

Systém je postavený na technológiách PHP , MariaDB , Bootstrap , GO , jQuery a Leaflet , pričom využíva aj dátové zdroje cez REST API tretích strán.

Projekt nesie pracovný názov„Lego“, pretože je koncipovaný modulárne – skladá sa z jednotlivých formátovaných HTML blokov, ktoré sa dynamicky načítavajú pomocou AJAX volaní. Zámerne sa vyhýbam práci s čistým JSON výstupom, ako to robia frameworky typu React či Vue, pretože cieľom je zachovať kontrolu nad dátami a minimalizovať možnosť ich zneužitia alebo neoprávneného kopírovania.

Do budúcnosti sa plánuje rozšírenie o vlastné REST API rozhranie, kde však dátová štruktúra zostane plne pod kontrolou systému.

Tento systém bude slúžiť ako základ pre všetky produkty a aplikácie, ktoré majú väzbu na geografickú polohu a prácu s mapovými dátami.

Tento komponent slúži na zobrazovanie geografických bodov, súradníc a oblastí záujmu v interaktívnej mape. Umožňuje pracovať s polohou, vzdialenosťami a trasami priamo v aplikácii.

  • Podpora bodov, línií a polygonov
  • Interaktívne ovládanie (zoom, posun, klik na prvky)
  • Zobrazovanie detailov prvku v modálnom dialógu
  • Možnosť úprav a ukladania zmien bez opustenia stránky

Tento komponent slúži na vizualizáciu a správu kategórií v hierarchickej (stromovej) štruktúre . Umožňuje prechádzať nadradené a podradené položky, zobrazovať ich vzťahy a vykonávať operácie ako pridanie, úprava alebo presun uzlov.

  • Podpora ľubovoľnej hĺbky stromu
  • Rozbaľovanie a zbalenie vetiev
  • Interaktívna navigácia medzi uzlami
  • Možnosť výberu jednej alebo viacerých kategórií
  • Integrácia s mapou alebo inými dátovými komponentmi
Options – doplnkové vlastnosti kategórií

Funkcionalita Options slúži na definovanie a správu doplnkových vlastností, ktoré sa viažu na jednotlivé kategórie miest. Cieľom je umožniť podrobnejší popis bodov na mape a rýchle filtrovanie podľa vybavenia, možností či aktivít.

Supervlastnosti miesta

Options predstavujú supervlastnosti , ktoré detailne špecifikujú konkrétne miesto alebo vybavenie jednotlivých komponentov. Pomocou nich možno presne opísať, čo sa na danom mieste nachádza, aké služby poskytuje a aké aktivity je tam možné vykonávať.

Príklady použitia:

  • Kempingy: sprchy, WC, elektrická prípojka, pitná voda, miesto na oheň, vstup so psom
  • Miesta pre karavany: 230V zásuvka, výlevka sivej vody, odpadkový kôš, tienisté státie
  • Turistika a voľnočasové aktivity: turistické trasy, cyklochodník, lezenie, kúpanie, možnosť stanovať
Ako to funguje

Každá kategória (napr. Kemping, Karavan, Turistika, Reštaurácia...) môže mať definovaný vlastný súbor options – teda vlastností, ktoré sa zobrazujú ako zaškrtávacie políčka, prepínače alebo výberové zoznamy. Vďaka tomu možno jednoducho označiť, čo dané miesto ponúka alebo umožňuje.

Dedenie možností

Options sú viazané na kategórie a môžu sa dediť – ak podkategória nemá svoje vlastné voľby, preberá ich z nadradenej kategórie. To umožňuje vytvárať spoločné sady vlastností pre celé skupiny miest (napr. všetky typy ubytovania alebo všetky druhy aktivít).

Význam pre používateľa
  • presne špecifikovať vybavenie, služby a aktivity,
  • filtrovať miesta podľa konkrétnych vlastností (napr. „kempy s elektrickou prípojkou a sprchou“),
  • zlepšiť vyhľadávanie a prehľadnosť dát,
  • zvýšiť používateľskú hodnotu mapy a presnosť informácií.
Tip pre administrátora

Pri definovaní options pre kategóriu sa zameraj na to, čo je pre daný typ miesta najtypickejšie . Menej je niekedy viac – cieľom je, aby vlastnosti boli užitočné, prehľadné a praktické pre vyhľadávanie aj prezentáciu.

Vytváranie dátových entít

Každý záznam v systéme je reprezentovaný ako dátová entita, ktorá má svoju vlastnú štruktúru a pravidlá správania. Tieto entity sú definované v JSON formáte, čo umožňuje jednoznačne určiť ich polia, typy údajov a validačné podmienky pri ukladaní do databázy. Vďaka tomu je možné flexibilne rozširovať systém o nové typy dát, zachovať konzistentnosť a zároveň mať pod kontrolou kvalitu uložených informácií.

Vytváranie dátových entít

Každý záznam v systéme je reprezentovaný ako dátová entita, ktorá má svoju vlastnú štruktúru a pravidlá správania. Tieto entity sú definované v JSON formáte, čo umožňuje jednoznačne určiť ich polia, typy údajov a validačné podmienky pri ukladaní do databázy. Vďaka tomu je možné flexibilne rozširovať systém o nové typy dát, zachovať konzistentnosť a mať pod kontrolou kvalitu uložených informácií.

Modelová situácia: plánovaný trip

Potrebujeme vytvoriť záznam o plánovanom tripe . Základná entita predstavuje udalosť s kľúčovými údajmi:

  • názov a popis výletu,
  • dátum a čas odchodu a návratu,
  • východiskové a cieľové miesto (prípadne súradnice),
  • zoznam účastníkov alebo vozidiel,
  • stav plánovania (napr. návrh, potvrdené, zrušené).