Proje: OkulUp · Hub: OkulUp — Architecture

Analytics ve Monitoring

Sentry (Crash Reporting)

@sentry/react-native ~7.2.0

  • DSN: EXPO_PUBLIC_SENTRY_DSN env var
  • Organization: kampus-yx, project: react-native
  • Dev/Expo Go’da devre dışı
  • wrapWithSentry(RootLayout) — root layout sarılmış
  • Sentry.setUser({ id, role, school_id }) — login’de set
  • Sentry.setUser(null) — logout’ta temizle
  • Sentry.addBreadcrumb() — API hata breadcrumb’ları
  • useSentryNavigationIntegration() — sayfa geçişleri takip ediliyor
  • enableTimeToInitialDisplay: true — initial load performance

PostHog (Product Analytics)

posthog-react-native ^4.37.1

  • Key: EXPO_PUBLIC_POSTHOG_KEY env var
  • Host: EXPO_PUBLIC_POSTHOG_HOST
  • Dev’de: ConsoleAdapter (console.log)
  • Prod’da: PostHogAdapter

Tracked Events

AnalyticsEventName:
  'login_success' | 'register_success'
  'social_login_success' | 'social_register_success'
  'dashboard_open'
  'tracking_student_selected' | 'student_summary_open'
  'payment_detail_open'
  'attendance_record_start'
  'appointment_create_start'
  'announcement_open' | 'message_open' | 'assignment_open'

trackEvent() Kullanımı

trackEvent('login_success', { role: 'teacher', user_id: 123 })

Adapter pattern — yeni analytics provider kolayca eklenebilir (NoopAdapter fallback var).