A full-stack geospatial application built with FastAPI (Backend) and Vanilla JavaScript + Leaflet (Frontend). This application allows users to upload, view, edit, and download geospatial point data (GeoJSON, Shapefiles, and CSV or Excel files with longitude and latitude columns).
- Upload: Support for GeoJSON (
.json,.geojson), Shapefiles (.zip), CSV (.csv), and Excel (.xlsx). For CSV and Excel files, ensure they contain longitude and latitude columns. - Interactive Map:
- Switch between Light, Dark, and Satellite base layers.
- Real-time cursor coordinate display (Lat/Lng).
- "Add Point" mode to interactively create new features.
- Data Management:
- Attribute Table: Sort, filter, and search through feature attributes.
- Editing: Edit attributes or delete features via the map popup or table.
- Clean Canvas: Instantly clear all data to start fresh.
- Export:
- Download geospatial data as GeoJSON.
- Export attributes as CSV (Excel compatible).
pointforge/
├── backend/
│ └── main.py # FastAPI application
├── static/
│ ├── modules/ # ES Modules (api, map, state, ui, loader)
│ ├── index.html # Frontend UI
│ └── app.js # Main Entry Point
├── requirements.txt # Python dependencies
└── README.md
- Python 3.8 or higher
- pip (Python package manager)
-
Navigate to the project directory:
cd your\path\to\pointforge
-
Create a virtual environment (Optional but recommended):
python -m venv venv # Windows venv\Scripts\activate # macOS/Linux source venv/bin/activate
-
Install dependencies:
pip install fastapi uvicorn python-multipart geopandas pandas openpyxl
Note:
geopandasis required for Shapefile support;pandasandopenpyxlare required for Excel support.
-
Start the server:
Run the following command from the root
pointforgedirectory:uvicorn backend.main:app --reload
-
Access the App:
Open your web browser and navigate to: