A modern, interactive map dashboard built with React and Vite. This project provides a user-friendly interface for visualizing and interacting with geospatial data layers.
- Interactive map visualization with Leaflet
- Dark mode support
- Layer controls for toggling map data
- Custom UI components (Button, CheckBox)
- Responsive layout and styling
- Mock data for development and testing
- Modular component structure
- Node.js (v20 or higher recommended)
- pnpm (v9 or higher)
- Docker Desktop (for DevContainer or Docker setup)
This is the easiest way to get started. The DevContainer automatically provisions a complete development environment with all dependencies pre-installed.
Requirements:
- Docker Desktop installed and running
- VS Code with the Remote Development extension
Steps:
-
Clone the repository:
git clone https://github.com/OpenSourceFellows/map-dashboard.git cd map-dashboard -
Open in VS Code:
code . -
When prompted, click "Reopen in Container" — or open the Command Palette (
Ctrl+Shift+P/Cmd+Shift+P) and select "Dev Containers: Reopen in Container". -
VS Code will build the Docker image and start the container. This may take a few minutes on first run. Once ready, a terminal will open inside the container.
-
The dev server starts automatically. The app will be available at
http://localhost:5173.
Note: The DevContainer configuration is in
.devcontainer/devcontainer.jsonand uses the Docker Compose file at.docker/docker-compose.yml. It automatically installs the ESLint and GitLens extensions and runspnpm installon container creation.
If you prefer to use Docker without VS Code's DevContainer integration:
-
Clone the repository:
git clone https://github.com/OpenSourceFellows/map-dashboard.git cd map-dashboard -
Build and start the container:
docker compose -f .docker/docker-compose.yml up -d
-
The app will be available at
http://localhost:5173. -
To stop the container:
docker compose -f .docker/docker-compose.yml down
-
Clone the repository:
git clone https://github.com/OpenSourceFellows/map-dashboard.git cd map-dashboard -
Install dependencies:
pnpm install
-
Start the development server:
pnpm run dev
The app will be available at
http://localhost:5173by default. -
Optional: For full development setup, you may also need the companion backend server:
git clone https://github.com/OpenSourceFellows/dashboard-server.git
See the dashboard-server repository for backend setup instructions.
Build for production:
pnpm run buildPreview production build:
pnpm run previewRun linter:
pnpm run lintmap-dashboard/
├── public/ # Static assets
├── src/ # Source code
│ ├── components/ # UI and map components
│ │ ├── Layout/ # Header and layout components
│ │ ├── Map/ # Map-related components
│ │ └── UI/ # Reusable UI components
│ ├── data/ # Mock data
│ ├── hooks/ # Custom React hooks
│ ├── styles/ # CSS files
│ ├── types/ # TypeScript types
│ ├── utils/ # Utility functions
│ ├── App.tsx # Main app component
│ └── main.tsx # Entry point
├── package.json # Project metadata and scripts
├── vite.config.ts # Vite configuration
└── README.md # Project documentation
- React – UI library
- Vite – Fast build tool
- TypeScript – Type safety
- Leaflet – Interactive maps
- React Leaflet – React components for Leaflet
- ESLint – Linting
Header– App title and navigationMapContainer– Interactive Leaflet map with markers and polygonsLayerControls– Toggle map layers and data typesMapLegend– Map legend displayCheckBox– UI checkbox component
- CONTRIBUTING.md - Contribution guidelines
- LICENSE.md - License information
- docs/MAINTAINER.md - Maintainer guide
- docs/QGIS_ATTRIBUTE_PRESERVATION.md - QGIS data layer documentation
