Overview

Structural overview

FacilMap consists of several layers:

  • The Server is a Node.js app that stores the data of collaborative maps in a database and runs a socket.ioopen in new window server to access and modify those maps. It also includes a HTTP server that serves the frontend and the map exports.
  • The Client is a JavaScript library that provides methods to access the data on collaborative maps by sending requests to the socket.io server.
  • The Leaflet components are a JavaScript library that provides classes to dynamically show the data received by the Client on a Leafletopen in new window map.
  • The Frontend is a JavaScript app that provides a complete UI written in Vue.jsopen in new window to create, access and modify collaborative maps. It uses the Client to access those maps and the Leaflet components to render them on a map.

FacilMap is completely written in TypeScriptopen in new window. The code base is split into several NPM modules, each of which can be used independently (although some depend on some others):