teritorio / vido

POI WebMap application
https://www.teritorio.fr/solution/webapplication-api/
GNU Affero General Public License v3.0
0 stars 0 forks source link
openstreetmap webmap

@teritorio/vido

Vido is a web map application for browsing POIs organized in categories. The main features are:

Vido is the frontend for the data API.

Vido use aside projects to:

The web application target multiple devices: smartphones, desktops, and large touchscreens.

Vido main map

Entry points

Web

Full entry points documentation available on api.yml and on server at http://localhost:3000/api.yaml.

Sitemap & WPA

Setup

Can be build directly (dev) or within Docker.

Native Build Setup

Prerequisite

# Create empty config file, will be build on `build-config` step
cp vidos-config-empty.json vidos-config.json

# install dependencies
yarn install

# Generate fixtures
yarn build-fixture

# Generate configuration from `vidos.config.ts`
yarn build-config

# serve with hot reload at localhost:3000
yarn dev

# build for production and launch server
yarn build
yarn start

Setup with Docker

cp .env.sample .env
docker compose build
docker-compose -f docker compose.yml run --rm vido yarn build-config
docker compose up -d

Production configuration

Require server allows CORS on:

Apache2 configuration

<Location "/api.yaml">
Header set Access-Control-Allow-Origin "*"
</Location>
<LocationMatch "^/pois/.*/map$">
Header set Content-Security-Policy "frame-ancestors *"
</LocationMatch>

Dev

data flow

Vido is mainly building using:

# serve with hot reload at localhost:3000
yarn dev

Dev with Historie, components stories

Run Historie with

yarn start:historie

Historie build also available on gh-pages branch built by CI and online at https://teritorio.github.io/vido/

Tests

Run end to end tests with dev server or build:

# With dev
yarn dev

# The run Histoire component screenshot regression tests
yarn test:histoire

# The run end to end tests
yarn test:cypress

Release

$ git checkout develop
$ npm version minor -m "chore: release %s"
$ git push --follow-tags

Then, create a PR from develop to main, it will launch the continuous development.

Internals

Details fields configurations

Popup and details special fields support:

Special formatting support:

Users tracking

Event Vido event Vido actions Google event Google params Matomo Matomo params
Page loading (homepage, details) page pageview pageTitle, pageLocation, pagePath trackPageView title, Url, Origin
Navigation on a menu item menu pageview pageTitle, pagePath trackPageView title, Url
Enable or disable a category category_event enable, filter category_event action, categoryId trackEvent event, action, title, categoryId
Focus on the search area search pageview pageTitle, pagePath trackPageView title, Url
Seach query search_query trackSiteSearch query
Selecting a search result search_result_event search_result_event type, title trackEvent event, action, title, resultType
Opening the popup popup pageview pageTitle, pageLocation, pagePath, poiId trackPageView title, Url
Action on the popup popup_event details, route, explore, favorite, zoom popup_event action, title, poiId, category trackEvent event, action, title, poiId
Action on the map control map_control_event 3d, background, explorer, favorite map_control_event action trackEvent event, action
Action on favorites favorites_event open_share, copy_link, exportPDF, exportCSV favorites_event action trackEvent event, action
Notebook notebook_event open pageview pageTitle, pagePath trackPageView title, Url
External links external_link external_link Url, title trackLink Url
Action on details page details_event favorite details_event action, title, poiId trackEvent event, action, title, poiId

Note on Matomo. Origin is a set as dimension 1 and should be configured as is on Matomo.

Contributor Mode

Enable/Disable: Add the following query parameter in the URL: ?contrib=true|false