{"id":22967758,"url":"https://github.com/teritorio/vido","last_synced_at":"2025-04-02T05:19:04.229Z","repository":{"id":63360355,"uuid":"543159990","full_name":"teritorio/vido","owner":"teritorio","description":"POI WebMap application","archived":false,"fork":false,"pushed_at":"2024-10-29T13:32:44.000Z","size":17145,"stargazers_count":1,"open_issues_count":56,"forks_count":0,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2024-10-29T16:07:26.082Z","etag":null,"topics":["openstreetmap","webmap"],"latest_commit_sha":null,"homepage":"https://www.teritorio.fr/solution/webapplication-api/","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/teritorio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-29T14:13:42.000Z","updated_at":"2024-10-29T13:32:51.000Z","dependencies_parsed_at":"2023-10-02T19:19:13.104Z","dependency_job_id":"dda33639-6b83-4363-aad7-163d7a56a63f","html_url":"https://github.com/teritorio/vido","commit_stats":null,"previous_names":[],"tags_count":47,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teritorio%2Fvido","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teritorio%2Fvido/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teritorio%2Fvido/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teritorio%2Fvido/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/teritorio","download_url":"https://codeload.github.com/teritorio/vido/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246758580,"owners_count":20828956,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["openstreetmap","webmap"],"created_at":"2024-12-14T21:14:37.720Z","updated_at":"2025-04-02T05:19:04.223Z","avatar_url":"https://github.com/teritorio.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @teritorio/vido\n\nVido is a web map application for browsing POIs organized in categories. The main features are:\n- a slippy map\n- a POI categories menu\n- a full POIs browsing mode\n- POI favorites and notebook\n- page for each POI content\n- list a POI be categories\n\nVido is the frontend for the [data API](https://dev.appcarto.teritorio.xyz/content/wp-content/plugins/ApiTeritorio/vendor/swagger-api/swagger-ui/dist/?url=https://dev.appcarto.teritorio.xyz//content/wp-content/plugins/ApiTeritorio/swagger-doc.yaml).\n\nVido use aside projects to:\n- export list of POIs as PDF: [https://github.com/teritorio/elasa-export](https://github.com/teritorio/elasa-export)\n- search for POIs: [elasa-search](https://github.com/teritorio/elasa-search)\n- produce QR Code: [qr-shortener](https://github.com/teritorio/qr-shortener)\n\nThe web application target multiple devices: smartphones, desktops, and large touchscreens.\n\n![Vido main map](Vido-main-map.webp)\n\n## Entry points\n\n### Web\nFull entry points documentation available on [api.yml](public/api.yaml) and on server at [http://localhost:3000/api.yaml](http://localhost:3000/api.yaml).\n\n* Main Map:\n  * Full page: `/`, `/{poi_Id}`, `/{category_ids}/` and `/{category_ids}/{poi_id}`.\n  * Parameters:\n    * `boundary`: an alternative boundary key from settings `polygons_extra`.\n    * `clipingPolygonSlug`: POI filtering by polygon (key from settings `polygons_extra`).\n* Embedded: `/embedded/`, same subpath and parameters as full page.\n* POI:\n  * details: `/poi/{id}/details`.\n* POIs:\n  * map only: `/pois/{ids}/map`.\n* Categories\n  * Empty list: `/category`\n  * Embedded empty list: `/category/embedded`\n    * Parameters:\n      * `menuItemIds=[id,id]`: filters selector entries by categories IDs\n  * List of POIs by category ID: `/category/{id}`\n  * Embedded list of POIs by category ID: `/category/embedded/{id}`\n    * Parameters:\n      * `menuItemIds=[id,id]`: filters selector entries by categories IDs\n\n### Sitemap \u0026 WPA\n* `/manifest.webmanifest`\n* `/sitemap.xml`\n\n## Setup\n\nCan be build directly (dev) or within Docker.\n\n### Native Build Setup\n\n**Prerequisite**\n\n- Node ^14.18.0 || \u003e=16.10.0\n\n```bash\n# Create empty config file, will be build on `build-config` step\ncp vidos-config-empty.json vidos-config.json\n\n# install dependencies\nyarn install\n\n# Generate fixtures\nyarn build-fixture\n\n# Generate configuration from `vidos.config.ts`\nyarn build-config\n\n# serve with hot reload at localhost:3000\nyarn dev\n\n# build for production and launch server\nyarn build\nyarn start\n```\n\n### Setup with Docker\n```\ncp .env.sample .env\ndocker compose build\ndocker compose run --rm vido yarn build-config\ndocker compose up -d\n```\n\n### Production configuration\nRequire server allows CORS on:\n* `/api.yaml`: the swagger specification\nRequire server allows iframe usage on:\n* `/pois/{ids}/map`: map intended to be used as iframe.\n\nApache2 configuration\n```\n\u003cLocation \"/api.yaml\"\u003e\nHeader set Access-Control-Allow-Origin \"*\"\n\u003c/Location\u003e\n\u003cLocationMatch \"^/pois/.*/map$\"\u003e\nHeader set Content-Security-Policy \"frame-ancestors *\"\n\u003c/LocationMatch\u003e\n```\n\n## Dev\n\n![data flow](doc/data-flow.svg)\n\nVido is mainly building using:\n- [MapLibre GL JS](https://maplibre.org/maplibre-gl-js-docs/api/map/)\n- [Nuxt 3](https://nuxt.com/) and [Vue 3](https://vuejs.org/), using both Options API / Composition API\n\n```bash\n# serve with hot reload at localhost:3000\nyarn dev\n```\n\n### Dev with Historie, components stories\nRun Historie with\n```\nyarn start:historie\n```\n\nHistorie build also available on `gh-pages` branch built by CI and online at https://teritorio.github.io/vido/\n\n### Tests\nRun end to end tests with build or dev server:\n\n```bash\ncp vidos-config-cypress.json vidos-config.json\n\n# With build\nyarn test\nyarn start # In a new terminal for separate logs\n\n# With dev server (slower - not recommended)\nyarn dev\n## In a new terminal for separate logs\nyarn test:gui\nyarn test:cli\n\n# The run Histoire component screenshot regression tests\nyarn test:histoire\n```\n\n## Release\n\n```bash\n$ git checkout develop\n$ npm version minor -m \"chore: release %s\"\n$ git push --follow-tags\n```\n\nThen, create a PR from `develop` to `main`, it will launch the continuous development.\n\n### Internals\n\n## Details fields configurations\n\nPopup and details special fields support:\n* `addr:*`: combined all address fields.\n* `route:*`: all routes activity types and fields.\n* `start_end_date`: combined `start_date` and `end_date` fields.\n* `short_description`\n\nSpecial formatting support:\n* `opening_hours`\n* `phone` and `mobile`\n\n## Users tracking\n\n| Event | Vido event | Vido actions | Google event | Google params | Matomo | Matomo params |\n|----------------------------------|---------------------|---------------------------------------------|---------------------|------------------------------------------|-----------------|----------------------------------|\n| Page loading (homepage, details) | page | | pageview | pageTitle, pageLocation, pagePath | trackPageView | title, Url, Origin |\n| Navigation on a menu item | menu | | pageview | pageTitle, pagePath | trackPageView | title, Url |\n| Enable or disable a category | category_event | enable, filter | category_event | action, categoryId | trackEvent | event, action, title, categoryId |\n| Focus on the search area | search | | pageview | pageTitle, pagePath | trackPageView | title, Url |\n| Seach query | search_query | | | | trackSiteSearch | query |\n| Selecting a search result | search_result_event | | search_result_event | type, title | trackEvent | event, action, title, resultType |\n| Opening the popup | popup | | pageview | pageTitle, pageLocation, pagePath, poiId | trackPageView | title, Url |\n| Action on the popup | popup_event | details, route, explore, favorite, zoom, isochrone | popup_event | action, title, poiId, category | trackEvent | event, action, title, poiId |\n| Action on the map control | map_control_event | 3d, explorer, favorite | map_control_event | action | trackEvent | event, action |\n| Action on the map background control | map_control_event | background | map_control_event | action, background | trackEvent | event, action, background |\n| Action on favorites | favorites_event | open_share, copy_link, exportPDF, exportCSV | favorites_event | action | trackEvent | event, action |\n| Notebook | notebook_event | open | pageview | pageTitle, pagePath | trackPageView | title, Url |\n| External links | external_link | | external_link | Url, title | trackLink | Url |\n| Action on details page | details_event | favorite | details_event | action, title, poiId | trackEvent | event, action, title, poiId |\n| Select isochrone profile | isochrone_event | select_profile | isochrone_event | action, profile | trackEvent | event, action, profile |\n\nNote on Matomo. `Origin` is a set as dimension `1` and should be configured as is on Matomo.\n\n## Contributor Mode\nEnable/Disable: Add the following query parameter in the URL: `?contrib=true|false`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteritorio%2Fvido","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteritorio%2Fvido","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteritorio%2Fvido/lists"}