Projekt

Obecné

Profil

Akce

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

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 asi 4 roky(ů) · 4 revizí