This interactive web application allows users to upload geospatial data, visualize it on a web map, and run machine learning-based spatial analysis (e.g., land suitability, flood risk, or energy consumption prediction).
- Upload and visualize geospatial data (GeoJSON, CSV, shapefiles)
- Perform basic spatial analysis (buffer, clip, intersection)
- Apply ML models for spatial pattern predictions (e.g., land suitability, flood risk)
- Display ML results as interactive maps
- Fully deployed web app with cloud hosting
- Frontend: React (for UI)
- Backend: Django (API & ML processing)
- Database: PostgreSQL/PostGIS (store spatial data)
- ML Libraries: Scikit-learn, TensorFlow/PyTorch, GeoPandas, Rasterio
- GIS Tools: Leaflet, GDAL, Shapely
- Containerization: Docker
- Deployment: GeoNode for spatial data hosting + Vercel for deployment
- Node.js & npm
- Python & pip
- PostgreSQL with PostGIS extension
- Docker (optional, for containerization)
- Clone the repository:
git clone https://github.com/Issimonmutunga/geospatial-web-app.git cd geospatial-web-app
- Set up a virtual environment:
python -m venv env source env/bin/activate # On Windows: env\Scripts\activate
- Install dependencies:
pip install -r backend/requirements.txt
- Set up the database:
createdb geospatial_db psql -d geospatial_db -c "CREATE EXTENSION postgis;"
- Run migrations:
python manage.py migrate
- Start the backend server:
python manage.py runserver
- Navigate to the frontend folder:
cd frontend
- Install dependencies:
npm install
- Start the development server:
npm start
- Research & project planning
- Set up PostgreSQL/PostGIS and sample datasets
- Build Django API for spatial data operations
- Implement CRUD endpoints and refine schema
- Set up React and integrate Leaflet for map visualization
- Implement file upload feature
- Display uploaded data interactively
- Add spatial querying and filtering
- Identify ML use case (e.g., suitability analysis, energy prediction)
- Train a basic ML model with Scikit-learn
- Integrate ML model with backend API
- Visualize ML predictions on interactive maps
- Optimize backend & ML performance
- Containerize with Docker
- Deploy on Heroku/DigitalOcean with GeoNode
- Add SEO & analytics for better visibility
- Publish project blog on portfolio
For any inquiries, reach out via email at besimonmutunga@gmail.com.