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.jsand 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 underlib/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.jspages/api/dev/analytics-export/export-vehicles-metrics.jspages/api/dev/analytics-export/export-users-metrics.js
Usage
- Initialize provider via
lib/analytics/index.jsat 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