Proje: OkulUp CRM · Hub: OkulUp CRM — Decisions

OkulUp Mobil’deki Admin Feature’ları CRM’e Taşıma

Karar

OkulUp mobil uygulamasında admin/manager’ın yaptığı işler CRM’e masaüstü deneyimi olarak eklendi. Aşağıdaki 6 modül CRM’e girdi:

  1. Yemek Menüsü (/meal-menus) — tarih bazlı CRUD, admin/manager.
  2. Belge Talepleri (/document-requests) — liste + durum filtresi + approve/reject (sebepli)/complete/cancel akışı.
  3. Mobile Config / Feature FlagsSchoolSettingsTab içindeki feature flag listesine document_requests + meal_menu eklendi.
  4. Etkinlikler + RSVP (/events) — CRUD + detay sayfasında RSVP gruplarını (/events/:id/rsvps) göster.
  5. Galeri Onay Akışı (/galleries) — grid listesi + approve + reject (sebepli), sadece admin.
  6. Toplu Mesaj (/broadcast) — sınıf seçimi + içerik, POST /messages/broadcast.

Neden

  • Bu işler mobil ekranda küçük bir alanda yapılıyor, admin tarafı masaüstünde daha verimli.
  • OkulUp mobilinde feature zaten var ve backend (kampusapi) endpoint’leri hazır — CRM’de UI eksikti.
  • mobileConfig.features okul bazlı feature flag yönetimi de backend’den manuel ayarlanıyordu; artık okul ayarları ekranından değiştirilebiliyor.

Uygulama notları

  • Her modül aynı patternde: src/hooks/use<Feature>Feature.js + src/features/<Feature>Tab.jsx + src/pages/<Feature>Page.jsx + router.jsx rotası + DashboardLayout sidebar nav item’ı.
  • useAuthStore.getPermissions() genişletildi: canManageMealMenus, canManageDocumentRequests, canManageEvents, canApproveGalleries, canBroadcastMessage.
  • useDataStore.loadAllData genişletildi: yeni modül listeleri login sonrası yüklenir; galeri sadece admin, event/doc-request/broadcast admin+manager+teacher, meal-menu admin+manager.
  • Attachment/upload akışları bu iterasyonda dahil değil (meal menu, document request, gallery media upload). Sadece read/approve/create/edit/delete temel akışları. Upload sonra eklenebilir.

Alternatifler

  • Tek büyük “Mobile Config” ekranı: Reddedildi. Her feature kendi CRUD’unu hak ediyor.
  • Parça parça ayrı PR’lar: Reddedildi çünkü common altyapı (store + permissions + constants) ortaktı, tek commit daha temiz.
  • OkulUp CRM — Architecture — CRM genel mimarisi
  • OkulUp — Domain hub’ındaki feature-modules, meal-menu-module, document-requests-system, events-galleries, messaging-system, mobile-config-feature-flags — kaynak spec