Heatmap aplikace » Historie » Revize 3
Revize 2 (Jakub Vašta, 2020-05-27 13:29) → Revize 3/6 (Jakub Vašta, 2020-05-27 14:05)
h1. Heatmap aplikace Applikace pro zobrazování heatmap, resp. její backend, je napsána v jazyce _PHP_ ve verzi 7.4 s využitím frameworku _Symfony_ a šablonovacího systému _twig_. _Symfony_. Dále je využit _html5_ + _javascript_ + _css_ pro vývoj frontendu s využitím _jQuery_, _leaflet_, _leaflet-heat_, _bootstrap_ a _sass_. h3. Struktura projektu Pro pochopení struktury projektu je zapotřebí znát obecnou struktury projektů tvořených v Symfony tzn. struktura je velmi zjednodušena oproti reálnému projektu, který obsahuje celou strukturu dle konvencí Symfony. <pre><code class="text"> /symfony/ ├── public │ ├── css │ ├── img │ └── js │ ├── vendor │ └── zcu-heatmap.js ├── src │ ├── Controller │ │ ├── HeatmapController.php │ │ └── HomeController.php │ ├── Entity │ │ └── DataSet.php │ ├── Form │ │ └── DataSetType.php │ ├── Repository │ │ ├── IOpenDataManager.php │ │ └── OpenDataManager.php │ └── Utils │ └── Utils.php ├── templates │ ├── base.html.twig │ ├── heatmap.html.twig │ └── index.html.twig └── tests ├── Controller │ ├── HeatmapControllerTest.php │ └── HomeControllerTest.php └── Repository └── OpenDataManagerTest.php </code></pre> h2. Backend Tato část je umístěna ve složkách _src_ a _tests_ přičemž jak již názvy vypovídají, tak složka _src_ obsahuje zdrojové kódy aplikace, kdežto složka _test_ obsahuje příslušné unit a funknčí testy. Aplikace je poměrně dobře komentována a drží se konvencí, proto bude uveden pouze stručný popis jednotlivých tříd. * *HeatmapController.php* je controller pro _heatmap.html.twig_, který má dále připravené zdroje dat, které dává k dispozici v podobě _json_ odpovědi > * *heatmap/opendata/{name}/{date}/{time}* pro získání konkrétního datasetu > * *heatmap/available/{date}* pro získání dostupných datasetů v daný datum > * *heatmap/dates* pro získání všech datumů s alespoň jedním dostupným datasetem > * *heatmap/positions/{name}* pro získání pozic jednotlivých zdrojů dat pro daný dataset > * *heatmap/last* pro získání posledního dostupného data ke každému datasetu * *HomeController.php* je controller pro _index.html.twig_ * *DataSet.php* reprezentuje data formuláře pro výběr konkrétního datasetu na _heatmap.html.twig_ viz https://symfony.com/doc/current/forms.html * *DataSetType.php* vyplní data pro formulář pro výběr konkrétního datasetu na _heatmap.html.twig_ viz https://symfony.com/doc/current/forms.html * *IOpenDataManager.php* rozhraní pro komunikaci s databází * *OpenDataManager.php* konkrétní implementace rozhraní pro komunikaci s databází pro mongodb a strukturu databáze viz [[Technická specifikace]] a [[Správa datasetů]] h2. Frontend Tato část je umístěna ve složkách _public_ a _templates_. * *base.html.twig* základní šablona systému _twig_ * *heatmap.html.twig* stránka pro zobrazování heatmap * *index.html.twig* úvodní stránka s informacemi o projektu * *vendor* složka obsahující javascriptové knihovny jako _leaflet_ a _leaflet-heat_ * *zcu-heatmap.js* javascript řídící vykreslování map, heatmap vrstev, animace, client side validation ... Samozřejmě jsou v projektu kromě uvedených položek i css soubory a jejich příslušné knihovny dle standardů zavedených ve vývoji webových aplikací.