Heatmap aplikace » Historie » Revize 4
« Předchozí |
Revize 4/6
(rozdíl)
| Další »
Jakub Vašta, 2020-05-27 14:05
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. Dále je využit html5 + javascript + css pro vývoj frontendu s využitím jQuery, leaflet, leaflet-heat, bootstrap a sass.
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.
/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
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ů
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í.
Aktualizováno uživatelem Jakub Vašta před téměř 5 roky(ů) · 4 revizí