tracetics-sdk
v0.1.4
Published
Official JavaScript/TypeScript SDK for Tracetics – track user events and funnel analytics.
Maintainers
Readme
Onboardlytics — Core Architecture & Funnel Engine
Übersicht
Onboardlytics ist eine MultinTenant SaaS Plattform (Laravel 12 + Nwidart Modules), die externe Events empfängt, speichert und anhand definierter Funnels automatisch NutzernJourneynFortschritte berechnet. Diese README fasst die komplette aktuelle Architektur, Modelle, Services, Pipelines und die FunnelEnginenLogik zusammen.
Architekturüberblick
Module
Core— Events, Funnels, AggregatesAuth— Registrierung, Login, Password Reset, Email VerificationTenant— TenantnHandling, APInKeys, SanctumnAuthentifizierung
Event Intake Pipeline
- EventRequest — Validierung eingehender EventnDaten
- EventController — APInEndpoint, gibt strukturierte APInResponses zurück
- EventProcessor — erstellt EventnModel, dispatcht domain events
- EventCreated Listener — triggert:
- FunnelEngine
- AggregateService
Datenmodelle
TrackedApp
Identifiziert die Quelle der Events.
Felder
id(uuid)tenant_id(uuid)nameapi_key
Beziehungen
trackedApp->events()
Event
Repräsentiert ein einzelnes TrackingnEvent.
Felder
id(uuid)tracked_app_iduser_identifierevent_namedata(json)created_at
Beziehungen
event->trackedApp()event->funnelStepEvents()
Funnel
Ein Funnel besteht aus mehreren Schritten (FunnelSteps) mit definierter Reihenfolge.
Felder
idtracked_app_idnamedescription
Beziehungen
funnel->steps()(ordered)funnel->progress()
FunnelStep
Ein einzelner Schritt im Funnel.
Felder
idfunnel_idevent_namestep_order(0nbasiert oder 1nbasiert)
Beziehungen
step->funnel()step->events()(über FunnelStepEvent)
FunnelProgress
Speichert den Fortschritt eines Users in einem Funnel.
Felder
idfunnel_iduser_identifiercurrent_step(Index der Steps)is_completedcompleted_at
FunnelStepEvent
Verknüpft ein Event mit einem FunnelStep.
Aggregate
Aggregierte Zahlen pro Zeitraum:
Felder
period_startperiod_endevent_namecounttracked_app_id
FunnelEngine
Zweck: Jedes neue Event prüfen → Welche Funnels betreffen dieses Event? → richtigen Step finden → Fortschritt updaten → Completion erkennen.
process(Event $event)
- Lade alle Funnels der TrackedApp
- Finde passende FunnelSteps basierend auf event_name
- Prüfe FunnelProgress
- Aktualisiere Fortschritt
- Markiere Funnel als abgeschlossen
- Speichere FunnelStepEvent
- Dispatch optionaler FolgenEvents (später)
SchrittnfürnSchritt Logik
1. Relevante FunnelSteps finden
$steps = FunnelStep::where('event_name', $event->event_name)
->whereHas('funnel', fn ($q) =>
$q->where('tracked_app_id', $event->tracked_app_id)
)
->with('funnel')
->get();2. For each step: FunnelProgress laden/erstellen
$progress = FunnelProgress::firstOrCreate(
[
'funnel_id' => $step->funnel_id,
'user_identifier' => $event->user_identifier,
],
[
'current_step' => 0,
'is_completed' => false,
]
);3. Prüfen: Gehört dieses Event zum aktuellen Step?
if ($progress->current_step !== $step->step_order) {
continue;
}4. Fortschritt erhöhen
$progress->current_step++;5. Completion prüfen
if ($progress->current_step >= $step->funnel->steps->count()) {
$progress->is_completed = true;
$progress->completed_at = now();
}6. Speichern & FunnelStepEvent anlegen
$progress->save();
FunnelStepEvent::create([
'event_id' => $event->id,
'funnel_step_id' => $step->id,
'funnel_id' => $step->funnel_id,
]);Aggregates
Der AggregateService errechnet stündliche/ tägliche/ wöchentliche EventnAggregationen.
Logik:
- Zeitraum bestimmen (
period_start/period_end) - Aggregat für TrackApp + event_name finden
- count++
- speichern Alle AggregatenTests bestehen.
Tests (Pest + InnMemory SQLite)
- Event intake vollständig getestet
- FunnelEngine:
- Step matching
- Progress updates
- Completion
- StepEvents
- Aggregates:
- period handling
- increment logic
- Controllers:
- Summary endpoint liefert korrekte Daten
Roadmap
- Funnel Visualization (Charts)
- User Journeys
- Cohort Analytics
- SDKs (JS, PHP, Python)
- Dashboard Widgets
Fazit
Die Plattform hat jetzt:
- Vollständige Event-Verarbeitung
- Fertige Funnel-Datenstrukturen
- Funktionierende FunnelEngine
- Korrekte Aggregationslogik
- Bestehende Testsuite mit 100% funktionierendem Kern Bereit für den nächsten großen Schritt: Frontend + Insights Dashboard.
