All projects

Java · 2026

GPS Tracker Dashboard

A real-time dashboard that merges ten live GPS streams without a single piece of shared mutable state.

When
Mar 2026 to May 2026
My role
Solo coursework, Event Driven Computing
Stack
Java · Sodium FRP · Swing
concurrent streams
10
rolling window
5 min
automated checks
19

Problem

A live tracking dashboard has to react to a continuous stream of location updates from many devices, and let the user change what they are watching while it runs, without the tangle of shared state that makes real-time interfaces fragile.

Approach

The app merges ten concurrent GPS streams from Microsoft's Geolife dataset. Instead of imperative handlers that mutate state, it describes relationships between streams with the Sodium FRP library, and the framework handles propagation.

Users set a latitude and longitude filter while it runs; the filter is a cell sampled with snapshot, so every event is checked against the current value. Distance travelled is tracked over a rolling five-minute window, a left-priority merge makes real events always win over clear signals, and altitude is converted from feet to metres on the way through.

Everything is covered by 19 automated checks, including the timing-sensitive eviction of old readings from the window.

Impact

A dashboard that updates cleanly as data arrives, where the bugs you would normally write in event-driven code are hard to express in the first place.

What I took from it

Most of reactive design is making invalid states unrepresentable. Once the dataflow graph was right, whole categories of bugs simply could not happen.

Ask about Agrim

AI assistant · grounded in his portfolio

Hi, I'm an AI assistant trained only on Agrim's portfolio content. Ask me anything about his projects, experience, or background, and I'll answer from what's actually here rather than guessing.