Proje: Okul.com.tr CRM · Hub: Okul.com.tr CRM — Architecture

CRM Genel Mimari

Teknoloji Yığını

KatmanTeknoloji
FrameworkReact 18 + TypeScript
BuildVite 6.x (Next.js DEĞİL, README yanıltıcı)
RoutingReact Router v7
StateZustand + localStorage persist
UIRadix UI primitives + custom
StylingTailwind CSS
FormsReact Hook Form + Zod
HTTPAxios + custom interceptors
Rich TextTipTap ve Jodit editors
TestVitest + React Testing Library

Çevre Konfigürasyonu

src/config/index.tsconfig.development.ts / config.staging.ts / config.production.ts üçlüsünden birini yükler. import.meta.env.MODE ile belirlenir. Her ortamda apiUrl ve consumerKey farklı.

Dizin Haritası

src/
├── components/
│   ├── ui/          — Radix tabanlı primitifler (Button, Input, Dialog...)
│   ├── common/      — Uygulama bileşenleri (GenericListPage, FilterSheet, Navbar...)
│   └── auth/        — Auth-specific bileşenler
├── pages/           — Route'a göre domain klasörleri (schools/, articles/, users/...)
├── services/        — API servis katmanı (bir dosya per domain)
├── hooks/           — Custom React hooks
├── utils/           — api.ts, endpoints.ts, formatDate.ts, errorLogger.ts...
├── store/           — Zustand store'lar (şu an: useAuthStore.ts)
├── types/           — TypeScript type tanımları (api.ts başlıca dosya)
└── config/          — Ortam konfigürasyonları

İlgili Backend

  • Laravel API: /Users/furkannamli/Desktop/project/api/okulcom-api
  • Controller’lar: app/Http/Controllers/Admin/
  • API debug: controller dosyalarından parametreleri kontrol et