Skip to content

Repository files navigation

VueTimelineCSV

An interactive geospatial timeline analyzer built with Vue 3. Upload CSV files with BLE beacon tracking data and visualize movement trajectories on a map with statistics, filtering, and activity heatmaps.

Vue 3 TypeScript Vite PrimeVue

Screenshot

Features

  • CSV Import with flexible column matching and batch processing (handles 250k+ records)
  • Interactive Map using Leaflet/OpenStreetMap with color-coded markers and polylines
  • Timeline Filtering by custom date/time ranges
  • Statistics Dashboard per tracked device: record count, distance traveled, duration, RSSI analysis
  • Activity Heatmap GitHub-style calendar view (daily, monthly, yearly)
  • Performance Controls configurable sampling intervals and point limits

Getting Started

# Install dependencies
npm install

# Start development server
npm run dev

# Build for production
npm run build

# Preview production build
npm run preview

CSV Format

Upload a CSV file with the following columns (flexible matching, case-insensitive):

Column Aliases Description
ident id Device/beacon identifier
timestamp time, datetime Record timestamp
position_latitude lat Latitude coordinate
position_longitude lon, lng Longitude coordinate
ble_beacon_rssi rssi, signal Signal strength (dBm), optional
ble_receiver_ident receiver, beacon Receiver identifier, optional

Example

ident,timestamp,position_latitude,position_longitude,ble_beacon_rssi,ble_receiver_ident
DC0D30213485,2025-03-31 07:41:56,49.4875,8.4660,-72,1001
DC0D30213485,2025-03-31 07:42:30,49.4876,8.4662,-68,1001

Visualizations

Map View

  • Color-coded markers for each tracked device
  • Polylines showing movement trajectories
  • Popups with timestamp, coordinates, signal strength, and receiver info
  • Auto-fit bounds to selected devices

Statistics Table

  • Per-device summary: record count, time span, max distance (km), duration (hours)
  • RSSI statistics: min, max, average signal strength
  • Associated receiver identifiers

Activity Heatmap

  • GitHub-style calendar grid with 5 intensity levels
  • Toggle between daily, monthly, and yearly views
  • Summary: total messages, unique devices, active periods

Performance

Large datasets are handled through:

  • Batch processing (10,000 lines per batch) to keep UI responsive
  • Configurable sampling (time-based or step-based point reduction)
  • Max points per device (default: 1,000, adjustable 10 - 10,000)
  • Sampling interval (default: 30s, adjustable 1 - 3,600s)

Tech Stack

  • Vue 3 (Composition API, <script setup>)
  • TypeScript
  • Vite (build tool)
  • PrimeVue 4 (UI components, Aura theme)
  • Leaflet + vue-leaflet (mapping)
  • Prettier (code formatting)

License

MIT

About

Interactive geospatial timeline analyzer - upload BLE beacon CSV data, visualize movement on maps with statistics and activity heatmaps. Built with Vue 3, TypeScript, Leaflet.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages