O co se jednalo?

Zadavatelem jsou společnosti GeoTec-GS a.s. a PUDIS a.s. ze skupiny SUDOP Group. Ta spojuje dlouholeté tradice v oblasti projektové a inženýrské činnosti s novými podnikatelskými aktivitami – působí třeba v oblasti dopravní infrastruktury, občanské a bytové výstavby, energetiky, ICT, ekologických staveb a geotechniky. GeoTec-GS se zabývá poskytováním a zajišťováním rozsáhlého spektra služeb v geotechnice, inženýrské geologii, hydrogeologii, geofyzice, sanační geologii a diagnostice staveb. PUDIS je tradiční projektová, průzkumná a inženýringová společnost, působící v oblasti silničních staveb a městského inženýrství.

Klient požadoval vývoj nového systému pro monitoring a vyhodnocování geodetických měření u liniových staveb, jako jsou například tunely a komunikace. Dodavatelé monitoringu stavby mohou nahrávat do systému měřená data jednotlivých sledovaných bodů v rámci stavby a díky tomu mohou Zadavatelé online kontrolovat postup v realizaci stavby a ihned identifikovat případná rizika.

Co přesněji požadovali?

  • Realizaci formou aplikace webový klient-server s centrálním databázovým serverem.
  • Možnost rozdělení projektu až po jednotlivé body měřeného profilu.
  • Definici a vyhodnocování varovných stavů pro hlídání měřených sérií dat.
  • Definici vlastních nominálních profilů.
  • Podporu měření typů čelby, konvergenční měření a možnost definice uživatelského měření pro sledování libovolných datových sérií.
  • Asynchronní výpočet posunů v rámci konvergenčního měření.
  • Grafickou vizualizaci naměřených hodnot v čase s možností změny škál os.
  • Vizualizaci profilu včetně zobrazení vektoru posunů.
  • Import měření ze souboru se širokou škálou validací.
  • Možnost zobrazit si náhled grafů před potvrzením importu, aby bylo možné zkontrolovat, jak bude vypadat výsledek.
  • Dávkový export profilů do pdf souborů.
  • Administraci umožňující přiřadit uživatele i jen na jednotlivé entity v rámci projektu (např. dodavatele na konkrétní profil).
  • Zobrazení projektu v mapě.
  • Nahrávání příloh k libovolné entitě.
  • Export dat do csv.
  • Možnost lokalizace aplikace do češtiny a angličtiny.

A řešení?

Jedná se o MVC aplikaci, ve které jsou pro složitější funkcionality front-endu použity React komponenty. K přístupu k MS SQL databázi se používá ORM framework Entity framework 6. Při její tvorbě jsme využili interní firemní framework postavený nad ASP.NET Boilerplate.

Z hlediska uživatelského rozhraní jsme chtěli maximalizovat jednoduchost, celkovou čistotu designu a moderní navigaci v rámci aplikace.

Mnoho informací je zobrazováno ve formě tabulek, k tomu jsme využili DataTables.net. Pro vizualizaci měření slouží grafy z knihovny Chart.js. Zobrazení map funguje díky volně dostupnému OpenStreetMaps.

Aplikace obsahuje komplexní správu uživatelských oprávnění, která umožňuje nastavit přístup konkrétnímu uživateli na jednotlivou entitu, dokonce včetně celé hierarchie pod ní.

Administrace číselníků umožňuje definovat vlastní barvy, tvar nominálních bodů a jejich použití v definici vlastního nominálního profilu. Dále lze vytvořit vlastní typ měření, ve kterém lze definovat 1+ sledovaných parametrů. Tím je zajištěna velká flexibilita a rozsah použití.

Pro kalkulaci konvergenčního měření jsou využity in-memory Jobs z ASP.NET Boilerplates. Pro zadávání a vyhodnocování varovných stavů je použita knihovna nCalc, díky které mohou administrátoři zadat konkrétní vzorec varovného stavu.

Zadavatel může díky projektové nástěnce vidět aktuální průběh realizace včetně případných překročených varovných stavů, či posledních měření a postupu ražeb. Nástěnka také obsahuje mapu s lokalizací projektů, což je prvním krokem k rozvoji aplikace do formátu GIS (veškeré informace z nástěnky jsou vizualizovány v mapě).

Neposlední důležitou funkcionalitou jsou exporty profilů do PDF, které slouží pro projektovou dokumentaci.

Kdy a jak dlouho jsi na tomto systému pracoval?

Hlavní vývoj byl od léta 2018 do jara roku 2019 s dodatečnými úpravami až do léta 2019. Já jsem s pomocí mého kolegy Vaška dělal vývoj aplikace a unit testů, analýzu a testing pokryli další kolegové.

Jaké jsi použil technologie?

Aplikační server:

  • .net Framework 4.7
  • ASP.net MVC 6
  • ASP.NET Boilerplate web application framework
  • Entity Framework 6
  • AutoMapper
  • SignalR
  • nCalc

DB Server:

  • MS SQL 2017

Front-end:

  • ReactJS components
  • HTML5, SASS, ECMA6 (babel)
  • Chart.js, DataTables, OpenStreetMaps, DropZone.js, jQuery, Bootstrap
  • Webpack, npm

Co ses nového naučil?

V oblasti stavebnictví je velký potenciál na digitalizaci a tento projekt byl pro mě i pro LinkSoft možností v této oblasti získat zkušenosti. A kromě toho, že jsem na projektu mohl použít nejnovější technologie, jsem si zopakoval třeba pythagorovu větu v 3D prostoru, nebo se naučil základy čtení technických výkresů :)

Milan, ReactJS a .NET vývojář, v LinkSoft-u od 2017

siisel - detail projektu  siisel - detail sekce