Sistem Bileşenleri
Bu sayfa, yalnızca depoda (repository) doğrulanabilen bileşenleri listeler; varsayımsal veya planlanan bileşenler içermez.
Frontend
- React 18 + TypeScript, Vite ile derlenen bir SPA (
dashboard/). - UI kütüphanesi: Ant Design +
@ant-design/pro-components(ProLayoutüzerine kurulu ana uygulama kabuğu). - Yönlendirme:
react-router-domv6 (dashboard/src/routes/browserRouter.tsx). - PWA desteği:
enablePWA: true(dashboard/config.ts) — service worker/manifest üretimi build sürecinin bir parçasıdır.
Backend / API katmanı
- Gerçek üretim backend'i:
https://platform.iqvizyon.com(PLATFORM_API_BASE_URL,dashboard/src/utils/index.tsx). - Geliştirme ortamında istekler, CORS'tan kaçınmak için Vite'in yerel geliştirme sunucusu proxy'si (
/iqv-platform-apiöneki) üzerinden aynı backend'e yönlendirilir; bu önek yalnızca yerel geliştirme içindir, üretimde kullanılmaz. - Tüm gerçek uç noktalar
dashboard/src/routes/api.tsxiçindeiqvApiRoutessabitleri olarak tanımlıdır (tam liste için bkz. API Dokümantasyonu). - Not eklerinin backend'e giden bazı isteklerinde (örn. hatırlatıcı/kuyruk/mail kayıtları)
Node-REDtabanlı bir arka uç akışına ait sözleşme izleri koda yansımıştır (dosya/yorum referansları); bu, backend'in uygulama detayıdır ve frontend tarafından yalnızca tüketilir.
Kimlik doğrulama (Auth)
- JWT bearer token, merkezi Axios istemcisinin (
dashboard/src/utils/http.tsx) istek arayüzcüsü (interceptor) tarafından her isteğe otomatik eklenir (/loginhariç). - Token kaynağı sırasıyla: Redux state →
localStorage.token→localStorage.auth_tokens(eski sürümle uyumluluk için). 401/403yanıtı alındığında otomatik çıkış yapılır, eskilocalStoragealanları temizlenir ve kullanıcı bilgilendirilir.
State yönetimi
react-redux+@reduxjs/toolkit; tek slice:admin(dashboard/src/store/slices/adminSlice.tsx) —token,user,usernamealanlarını tutar.redux-persist(localStorage tabanlı) ileadminstate'i tarayıcı yenilemelerinde kalıcıdır (persist:IQV Platformanahtarı altında).- Ayrıca tema, giriş kilidi ve hatırlatıcı "gösterildi" durumu gibi birkaç ayrı kaygı, Redux dışında doğrudan
localStorage/sessionStorageile yönetilir (bkz. Genel Çalışma Akışı).
Veri kaynakları
- Ana veri kaynağı: IQVizyon bulut backend'i (
https://platform.iqvizyon.com) — platform modülleri, notlar, hatırlatıcılar, kullanıcılar, denetim günlüğü. - Dosya deposu: Herkese açık MinIO nesne deposu (
https://minio.iqvizyon.com) — not ekleri buradan sunulur; backend API origin'inden bağımsız, ayrı bir adrestir. - Eski (legacy) dosya sunucusu: MinIO'ya geçiş öncesi kullanılan
termit.iqvizyon.comhost'u, yalnızca geriye dönük uyumluluk için tanınır ve gelen eski mutlak URL'ler MinIO adresine çevrilir; bu, gerçek geçmiş üretim verisini temsil eder ve kod içinde bilinçli olarak korunmuştur.
Harici servisler
- ReqRes (
https://reqres.in/api) — yalnızcaVITE_DEMO_MODE=trueolduğunda kullanılan, gerçek ürünle ilgisi olmayan demo/test giriş akışı.
CI/CD
- GitHub Actions (
.github/workflows/ci.yml): Lint, Production TypeScript, Test TypeScript, Tests and Coverage, Production Build, Dependency Audit ve bunları özetleyen bir Quality Report job'u. - Dokümantasyon dağıtımı:
.github/workflows/mkdocs-pages.yml—mkdocs.yml/docs/**değişikliklerinde GitHub Pages'e otomatik dağıtım.
Test altyapısı
- Jest tabanlı test paketi
dashboard/iqv-platform-test/klasöründe; coverage eşikleri CI'da zorunludur (bkz. CI Kalite Raporu).
Dağıtım (deployment) yapısı
- Uygulama: Vite
npm run buildile üretim derlemesi alınır (dashboard/dist/); barındırma/dağıtım hedefi bu depoda tanımlı değildir. - Dokümantasyon: MkDocs + Material for MkDocs statik sitesi, GitHub Pages üzerinde proje sitesi olarak yayınlanır (bkz. Geliştirme ve depo kökündeki
mkdocs.yml).