Inspiration
Like many people, I had years of Google Timeline data sitting unused — a digital memory bank without a brain. What if we could visually remember everywhere we’ve been, cluster those moments, filter by meaning, and even summarize our life journeys?
That’s the spark that created Cortana MapLens — a browser-based app that turns messy raw location JSON into a clean, dynamic, interactive map interface. Inspired by Halo’s Cortana, this project began as a small script and evolved into a spatial memory tool for journaling, research, and AI augmentation.
What it does/
File Upload → Marker Creation The app parses exported Google Timeline data (JSON format), distinguishes visits from activities, and generates clickable pins. Each pin shows the location type, time, and context — formatted neatly with localized timestamps (MM-DD-YYYY hh:mm A).
How we built it
🗺 Google Maps JavaScript API 📦 MarkerClusterer (for performance and clarity) 📂 Client-side JSON parsing 📍 Custom marker metadata (timestamp, title, type) 🧠 Sidebar summaries and filters 📤 GeoJSON export 📆 Grouping logic by month and year
Challenges we ran into
Google Timeline data includes duplicate or malformed entries; we had to sanitize inputs Activity vs Visit data had different coordinate formats — parsing logic had to be robust Timezone handling was tricky and required formatting sanity checks Performance drops quickly with >2,000 markers without clustering Filtering, grouping, and exporting while keeping UX intuitive was non-trivial
Accomplishments that we're proud of
What we learned
How to manipulate geospatial data dynamically on the frontend The pain points of Google Timeline's inconsistent export schema The power of MarkerClusterer to make chaos legible How design clarity helps bring structure to memory overload## What's next for Cortana MapLens
Built With
- javascript
- maps
- markercluster
- vanilla

Log in or sign up for Devpost to join the conversation.