Proje: Okul.com.tr CRM · Hub: Okul.com.tr CRM — Architecture
CRM Routing Yapısı
App Sarmalayıcılar
App.tsx → ErrorBoundary → ErrorProvider → ThemeProvider → AuthGuard → AppRoutes
Toaster (sonner) position="top-right", richColors=true
AuthGuard
Login olmadan erişim engellenmiş. /login korumasız, diğer her şey korumalı.
Lazy Loading Pattern
Kritik sayfalar hariç tümü React.lazy() ile lazy loaded:
Eager (direkt import):
LoginPageDashboardPageDashboardLayout
Lazy (React.lazy): Diğer tüm sayfalar.
LazyRoute HOC — Suspense wrapper, PageLoader (spinner + “Sayfa yükleniyor…” text) fallback.
URL Yapısı
| Sayfa | URL Pattern |
|---|---|
| Dashboard | /dashboard |
| Liste | /<entity> |
| Detail | /<entity>/:id |
| Create | /<entity>/create |
| Edit | /<entity>/edit/:id |
İstisnalar:
- Colleges:
/<entity>/create/page(create subdir) - Articles, Announcements, Events, Achievements:
/edit/pagesubdir
Sayfalar Olmayan Modüller
/users/details yok — kullanıcı detay sayfası yok (direkt edit).
/campaigns sadece liste var — create/edit yok.
/sales-campaigns — sadece inline form (modal dialog).
Root Redirect
/ → /dashboard (Navigate replace)
Related
- navigasyon-yapisi — Sidebar ve breadcrumb
- build-optimizasyon — Bundle chunking ile uyumu