Skip to content

Analytics System

Comprehensive metrics collection across vehicles, reservations, billing, and user behavior.

Architecture

  • Strategy-based abstraction in lib/analytics/strategies.js
    • Supports Mixpanel and Statsig Web Analytics; can be extended
  • Tracking entrypoints in UI via hooks/useAnalyticsUpdater.js and settings pages
  • Backend emits business analytics in resolvers and event handlers (Stripe, Orders)

Metrics

  • Reservation metrics: lib/analytics/analyticsMetrics/reservationMetrics.js
  • Vehicle metrics: lib/analytics/analyticsMetrics/vehicleMetrics.js
  • Billing metrics: lib/analytics/analyticsMetrics/billingMetrics.js

Emission points

  • Order creation/update: server/graphql/resolvers/mutation/createOrder/createOrder.resolver.js, UpdateOrder/*
  • Payments: server/graphql/resolvers/mutation/addPayment.resolver.js, Stripe handlers under lib/event-handlers/*
  • Vehicle CRUD: server/graphql/resolvers/mutation/CreateVehicle/*, UpdateVehicle/*

Configuration

  • Client/runtime toggles and keys via environment and settings UI (components/pages/Settings/Analytics/*)
  • Export endpoints (CSV/JSON) for analysis:
    • pages/api/dev/analytics-export/export-orders-metrics.js
    • pages/api/dev/analytics-export/export-vehicles-metrics.js
    • pages/api/dev/analytics-export/export-users-metrics.js

Usage

  • Initialize provider via lib/analytics/index.js at app bootstrap (pages/_app.js) when enabled
  • Send events through strategy; fallbacks if provider missing

Ops

  • Respect privacy and opt-out flags
  • Avoid PII; use hashed IDs where applicable
  • Rate-limit high-volume events if needed

Testing

  • Unit coverage around analytics utils in lib/event-handlers/utils.test.js
  • Manual verification via export endpoints in dev