A full-stack geospatial tracking application that visualizes GPS movement data over time. It allows users to explore journeys on an interactive map with custom filters for year or date ranges.
Problem:
I wanted a way to visualize and analyze GPS data from my camper trips across Europe. Most existing tools were bloated, hard to self-host, or lacked control over how data was displayed. I needed a lightweight, privacy-respecting solution that I could host myself and customize.
Solution:
Built a custom solution from the ground up: a web-based application where users can import GPS logs as CSV, and explore those as map-based tracks. Tracks are filtered by date, rendered as GeoJSON LineStrings, and shown directly on a Leaflet-powered map; making it easy to view specific routes and trip segments.
Development:
This was a solo project. I designed and developed both the frontend and backend. I focused on modularity, data integrity, and keeping the tech stack simple and maintainable. Some of the challenges included:
- Converting raw CSV logs into GeoJSON format reliably.
- Efficiently filtering and serving track data by date range.
- Keeping the frontend responsive and intuitive, even with a lot of data on screen.
Tech:
- Frontend: Next.js, Leaflet, Tailwind CSS
- Backend: PHP REST API, MySQL
- Formats: CSV (import), GeoJSON (API output)
- Deployment: Custom config using
.env
files for environment variables, secure handling of credentials.
