Proje: OkulUp · Hub: OkulUp — Architecture

OkulUp Tech Stack

Framework & Platform

  • React Native 0.81.5 + Expo SDK 54 — New Architecture enabled (newArchEnabled: true)
  • Expo Router ~6.0.23 — Dosya tabanlı routing, app/ dizini
  • Runtime version policy: appVersion — her uygulama sürümü için ayrı runtime

Temel Kütüphaneler

KategoriKütüphaneVersiyon
UI BileşenleriGlueStack UI v1 (@gluestack-ui/themed)^1.1.54
StylingNativeWind v4 (sadece config’de, component’lerde GlueStack kullanılıyor)
StateZustand^5.0.9
Data FetchingTanStack React Query^5.90.15
HTTPAxios^1.13.2
FormsReact Hook Form + Zod^7.69.0, ^4.2.1
i18ni18next + react-i18next^25.7.3
Animation@legendapp/motion + Reanimated^2.5.3, ~4.1.0
NavigationExpo Router (Expo Router Drawer yok — custom Drawer yapıldı)~6.0.23
Lists@shopify/flash-list2.0.2

Analytics & Monitoring

  • Sentry (@sentry/react-native ~7.2.0) — crash reporting + performance
  • PostHog (posthog-react-native ^4.37.1) — kullanıcı davranış analizi
  • Dev’de: ConsoleAdapter, prod’da PostHogAdapter

Real-Time

  • Laravel Echo + Pusher (laravel-echo ^2.3.0, pusher-js ^8.4.0) — WebSocket
  • Push notifications: expo-notifications ~0.32.16

Deployment

  • EAS Build — 3 profil: development (simulator), preview (internal), production (store)
  • EAS Update — OTA güncellemeler, production branch’e push
  • iOS: App Store, bundle com.okul.kampus, ASC App ID 6761079786
  • Android: com.okul.kampus paketi
  • EAS Project ID: b27e1120-3435-4688-87be-eafa73a11e28
  • Owner: namlifurkan1

Dev Tooling

  • TypeScript ~5.9.2
  • ESLint + Prettier + Husky + lint-staged
  • OpenAPI-typescript (API tip üretimi: npm run api:generate)
  • Jest (test konfigüre edilmiş ama aktif kullanılmıyor)