Web frontend for the FunderMaps platform — a building foundation and subsidence analysis tool with interactive map visualization.
Built with Vue 3, TypeScript, Vite, and Mapbox GL.
- Node.js ^22.0.0
- pnpm
pnpm installCreate a .env file with the following variables:
VITE_MAPBOX_TOKEN=<Mapbox API token>
VITE_MAPBOX_STYLE=<Mapbox style URL>
VITE_FUNDERMAPS_URL=<API base URL>
VITE_FUNDERMAPS_TILES_URL=<Tile server URL>
VITE_DEFAULT_MAPSET_ID=<Default mapset UUID>
VITE_DEFAULT_LAYERS=<Comma-separated default visible layer names>
pnpm devpnpm buildThis runs type checking (vue-tsc) followed by the Vite production build.
pnpm lint
pnpm formatThe application uses <script setup> single-file components, Pinia for state management, and Tailwind CSS v4 for styling. Authentication is JWT-based. Map layers and data sources are configured per mapset with geographic fencing.
src/router/- Vue Router configurationsrc/store/- Pinia stores (session, mapsets, layers, buildings, filters, metadata)src/services/- API client with JWT auth and endpoint modulessrc/components/Mapbox/- Map component and composables for layers, sources, events, clusteringsrc/config/layers/- Mapbox GL layer style definitionssrc/datastructures/- TypeScript interfaces, enums, and data classessrc/views/- Page components (auth, map, home)src/styles/- Custom CSS using native nesting
@maps to./src@assetsmaps to./src/assets