Oleksandr Matsibora. Water quality full stack web-GIS application developed with Node.js, Vue.js, PostgreSQL and DGGS H3
Global river water quality application (GRWQ App) is a web-based geographic information system, developed in creative cooperation with Alexander Kmoch and Holger Virro. It is an online tool for visual analysis and spatial data observation of river water quality parameters. GRWQ App is built completely with all advantages of JavaScript (Node.js + Vue.js) and power of SQL (PostgreSQL).
The main purposes of GRWQ App development are:
to create a user-friendly web-application for the observation, visualization and analysis of river water quality parameters
to conduct an engineering experiment with efficient integration of different frameworks, libraries, technologies (Vue.js + Leaflet.js + DGGS H3) and implement original logic into a front-end single page application
Details about dataset:
Virro, H., Amatulli, G., Kmoch, A., Shen, L., and Uuemaa, E.: GRQA: Global River Water Quality Archive, Earth Syst. Sci. Data, 13, 5483–5507, 10.5194/essd-13-5483-2021, 2021.
Only open source frameworks and libraries were used:
Express.js (Node.js web application framework)
Quasar.js (Vue.js based front-end framework)
Leaflet.js (library for interactive maps)
DGGS H3 (hexagonal geospatial indexing system)
Turf.js (advanced geospatial analysis library)
Lodash.js (JS utility library)
The main features of GRWQ App:
selecting area of interest
search for available sites of river water observation in the area
saving selected sites to CSV or geoJSON files
calculating basic statistic parameters of observation values (min, max, mean, median, etc)
selecting among more than 40 water quality parameters from “Biochemical oxygen demand” to “Total suspended solids”
selecting available river water quality observations by date range
dynamically
generated legend for hexagons of the choropleth map
The most interesting features of GRWQ App:
integration of Vue.js and Leaflet.js without using “common state” – both libraries work independently
usage of all advantages of Composition API and Pinia store in Vue 3
implementation of DGGS (Discrete Global Grid Systems) H3 (Hexagonal hierarchical geospatial indexing system) for building the choropleth map on different resolution levels
Useful links:
YouTube “how-to” video: https://www.youtube.com/watch?v=pLJTKseKyDo
Source code of GRWQ App on GitHub: https://github.com/rmcf/gwq/
GRWQ App link: https://maps.landscape-geoinformatics.org/gwq-spa/