# Profesyonel Yuz Tanima Yonetim Sistemi & Admin Panel

Tarih: 2026-03-06

## 1. Vizyon

Google Photos/Apple Photos/Facebook seviyesinde profesyonel yuz tanima yonetim sistemi ve
tam kontrol saglayan admin paneli. Mevcut AI yuz algilama altyapisini (Python GPU servisi,
Go kuyruk, MongoDB) koruyarak, ustune profesyonel kullanici ve yonetici deneyimi insa etmek.

## 2. Mimari Genel Bakis

```
Kullanici Katmani
  |-- Kisiler Galerisi (People Gallery)
  |-- Yuz Gruplari (Face Clusters)
  |-- Yuz Etiketleme UX (Gelistirilmis)

Admin Katmani
  |-- Sistem Dashboard (Canli metrikler)
  |-- Yuz Tanima Yonetimi (Kuyruk, tespit, eslesme)
  |-- Kullanici Yonetimi (CRUD + roller)
  |-- Icerik Moderasyonu (Raporlar, filtreler)
  |-- Sistem Ayarlari (Konfigurasyonlar)

Backend Katmani (Go)
  |-- Yeni API'ler: /api/yuz-tanima/kisiler, /istatistikler, /kuyruk-durum
  |-- Admin API'ler: /api/admin/dashboard, /kullanicilar, /moderasyon
  |-- Mevcut: yuz_kuyruk, yuz_tespit, yuz_taninan (korunacak)
```

## 3. Kullanici Yuz Yonetim Sistemi

### 3.1 Kisiler Galerisi (People Gallery)

Route: `/soyagaci/kisiler` veya drawer olarak

Google Photos "People" sekmesine benzer:
- Grid gorunumde tum taninan kisiler
- Her kisi icin: yuz crop avatar + isim + fotograf sayisi
- Bilinmeyen yuzler ayri bolumde ("Kim Bu?" grubu)
- Tiklayinca kisinin tum fotograflari
- Arama/filtreleme

**Veri modeli genisletme:**
```
yuz_taninan koleksiyonuna eklenecek:
  - yuz_sayisi: int (bu kisiyle eslesen yuz adedi)
  - son_gorulme: timestamp
  - gizli: boolean (kullanici gizleyebilir)
  - birlestirildi_ile: ObjectId[] (merge gecmisi)
```

### 3.2 Yuz Gruplari (Face Clustering)

Bilinmeyen yuzleri otomatik gruplama:
- Backend'de DBSCAN veya agglomerative clustering
- Ayni kisiye ait oldugu tahmin edilen yuzler grupla
- Kullanici gruplari onaylayip isim verebilir
- Merge: iki grubu birlestir
- Split: yanlis gruplanmis yuzleri ayir

**Yeni koleksiyon:**
```
yuz_gruplar:
  _id: ObjectId
  kullanici_id: ObjectId
  uyeler: [{yuz_id, icerik_id, descriptor[]}]
  onaylandi: boolean
  kisi_id: ObjectId (atandiysa)
  isim: string
  ortalama_descriptor: float[]
  olusturulma: timestamp
  guncelleme: timestamp
```

### 3.3 Gelistirilmis Etiketleme UX

Mevcut sisteme eklenenler:
- Otomatik onerilen etiketler icin "Onayla/Reddet" butonlari (swipe destegi)
- Toplu etiketleme: birden fazla fotoyu sec, ayni kisiye ata
- Drag & drop ile yuz gruplari arasi tasima
- Etiketleme gecmisi ve geri alma

## 4. Admin Panel Tasarimi

### 4.1 Route Yapisi

```
/🧩/🌀/👑 (Mevcut Admin Shell)
  |-- /🏠  Dashboard (Gelistirilmis)
  |-- /👥  Kullanici Yonetimi (Mevcut, gelistirilecek)
  |-- /🎯  Yuz Tanima Yonetimi (YENi)
  |   |-- /kuyruk     Islem Kuyrugu
  |   |-- /kisiler    Taninan Kisiler
  |   |-- /tespitler  Tespit Gecmisi
  |   |-- /ayarlar    Sistem Ayarlari
  |-- /📊  Analitik Dashboard (YENi)
  |-- /🛡  Moderasyon (YENi)
  |-- /⚙  Sistem Ayarlari (YENi)
```

### 4.2 Admin Dashboard (`/👑/🏠`)

Mevcut basit dashboard yerine kapsamli:

**Ust Satirda 4 Kart:**
- Toplam Kullanici (trend ile)
- Bugun Yuklenen Icerik (trend ile)
- Islem Kuyrugu Durumu (beklenen/islenen)
- Yuz Tanima Basarisi (% oran)

**Grafik Panelleri:**
- Gunluk aktif kullanici (line chart)
- Icerik yukleme trendi (bar chart)
- Yuz tanima istatistikleri (doughnut)
- Sistem kaynak kullanimi (gauge)

**Canli Aktivite Akisi:**
- Son islemler listesi (real-time Socket.IO)
- Son giris yapanlar
- Son yuklenen icerikler

### 4.3 Yuz Tanima Yonetimi (`/👑/🎯`)

**4.3.1 Islem Kuyrugu:**
- Tablo: Resim thumbnail, durum (bekliyor/isleniyor/tamamlandi/hata), oncelik, sure
- Filtreler: durum, tarih araligi, kullanici
- Islemler: oncelik degistir, yeniden isle, sil
- Canli worker durumu (3 worker'in ne yaptigi)

**4.3.2 Taninan Kisiler:**
- Grid/tablo gorunum
- Her kisi: avatar, isim, descriptor sayisi, esleme orani
- Detay: tum eslesen yuzlerin gallerisi
- Islemler: duzenle, sil, birlestir, ayir, descriptor yenile

**4.3.3 Tespit Gecmisi:**
- Tablo: resim, yuz sayisi, eslesen/eslesmeyen, sure, tarih
- Detay: her yuzun crop'u + esleme bilgisi
- Test paneli: distance esigini degistirip sonucu gor

**4.3.4 Ayarlar:**
- Distance esikleri (yuksek/orta/dusuk guven)
- Max worker sayisi
- Tarama periyodu
- Python servisi URL + baglanti testi
- Kuyruk oncelik kurallari

### 4.4 Kullanici Yonetimi (`/👑/👥`)

Mevcut sistemi genislet:
- Kullanici listesi: avatar, isim, e-posta, rol, son giris, durum
- Detay sayfasi: profil, yetkiler, uygulamalar, aktivite gecmisi
- Rol atama: Drawer ile coklu rol secimi
- Toplu islem: sec + rol ata / pasife al / sil
- Filtreleme: rol, durum, kayit tarihi

### 4.5 Moderasyon (`/👑/🛡`)

- Raporlanan icerikler listesi
- Icerik onizleme + moderasyon karari
- Otomatik filtreler (NSFW, spam tespiti)
- Kullanici uyari/engelleme sistemi

### 4.6 Sistem Ayarlari (`/👑/⚙`)

- Genel ayarlar (site adi, logo, tema)
- E-posta ayarlari (SMTP)
- Bildirim ayarlari (ntfy)
- Bakim modu toggle
- Log goruntuleme

## 5. Backend API Genisletmeleri

### 5.1 Yeni Yuz Tanima API'leri

```
GET  /api/yuz-tanima/kisiler              - Taninan kisi listesi (paginated)
GET  /api/yuz-tanima/kisiler/:id          - Kisi detay + tum eslesmeler
POST /api/yuz-tanima/kisiler/birlestir    - Iki kisiyi birlestir
POST /api/yuz-tanima/kisiler/ayir         - Kisiyi bol
DELETE /api/yuz-tanima/kisiler/:id        - Kisi sil

GET  /api/yuz-tanima/kuyruk-durum         - Kuyruk ozet istatistik
GET  /api/yuz-tanima/tespitler            - Tespit gecmisi (paginated)
POST /api/yuz-tanima/toplu-eslesme        - Toplu yeniden eslestirme

GET  /api/yuz-tanima/istatistikler        - Dashboard icin metrikler
POST /api/yuz-tanima/ayarlar              - Ayar guncelleme
```

### 5.2 Admin API'leri

```
GET  /api/admin/dashboard                 - Dashboard metrikleri
GET  /api/admin/aktivite                  - Son aktiviteler
GET  /api/admin/kullanicilar              - Kullanici listesi (detayli)
POST /api/admin/kullanicilar/:id/rol      - Rol guncelle
POST /api/admin/kullanicilar/:id/durum    - Durum guncelle (aktif/pasif)
GET  /api/admin/sistem-durumu             - Sistem sagligi
POST /api/admin/moderasyon/karar          - Moderasyon karari
```

## 6. Frontend Component Plani

### 6.1 Admin Shell ve Alt Bilesenleri

```
src/app/uygulamalar/admin/
  |-- admin.routes.ts
  |-- admin-shell.component.ts (sidebar + router-outlet)
  |-- dashboard/
  |   |-- dashboard.component.ts (ana dashboard)
  |   |-- widgets/ (istatistik kartlari, grafikler)
  |-- yuz-tanima/
  |   |-- yuz-tanima.routes.ts
  |   |-- kuyruk/kuyruk.component.ts
  |   |-- kisiler/kisiler.component.ts
  |   |-- kisi-detay/kisi-detay.component.ts
  |   |-- tespitler/tespitler.component.ts
  |   |-- ayarlar/ayarlar.component.ts
  |-- kullanicilar/
  |   |-- kullanicilar.component.ts
  |   |-- kullanici-detay/kullanici-detay.component.ts
  |-- moderasyon/
  |   |-- moderasyon.component.ts
  |-- sistem-ayarlari/
  |   |-- sistem-ayarlari.component.ts
```

### 6.2 Kullanici Yuz Yonetim Bilesenleri

```
src/app/uygulamalar/soyagaci/
  |-- kisiler-galerisi/
  |   |-- kisiler-galerisi.component.ts (People gallery)
  |-- yuz-gruplari/
  |   |-- yuz-gruplari.component.ts (Bilinmeyen yuz gruplari)
```

## 7. Implementasyon Stratejisi

### Faz 1: Admin Panel Shell + Dashboard (Oncelik 1)
- Admin route yapisi ve shell component
- Dashboard ile temel metrikler
- Mevcut admin sayfalarini tasima

### Faz 2: Yuz Tanima Yonetimi (Oncelik 1)
- Kuyruk durumu sayfasi
- Taninan kisiler listesi ve detay
- Tespit gecmisi
- Ayarlar paneli

### Faz 3: Kullanici Yonetimi Gelistirme (Oncelik 2)
- Mevcut kullanici sayfasini yeniden tasarla
- Rol yonetimi
- Toplu islemler

### Faz 4: Backend API Genisletmeleri (Oncelik 1)
- Dashboard metrikleri endpoint
- Yuz tanima yonetim endpoint'leri
- Admin endpoint'leri

### Faz 5: Kisiler Galerisi (Oncelik 2)
- People gallery UI
- Yuz gruplari
- Merge/split islemleri

### Faz 6: Moderasyon ve Sistem Ayarlari (Oncelik 3)
- Moderasyon paneli
- Sistem ayarlari sayfasi

## 8. Teknoloji Secimi

- **UI Framework:** Ng-Zorro (mevcut, tutarli)
- **Grafik:** ng2-charts veya ECharts (admin dashboard icin)
- **Real-time:** Mevcut Socket.IO altyapisi
- **State:** Angular Signals (mevcut pattern)
- **Stil:** LESS (mevcut pattern)
- **Clustering:** Backend'de Go ile DBSCAN implementasyonu

## 9. Oncelikli Implementasyon Sirasi

1. Admin panel shell + route yapisi (temel iskelet)
2. Admin dashboard (metrik kartlari + grafikler)
3. Yuz tanima kuyruk yonetimi sayfasi
4. Taninan kisiler listesi + detay
5. Yuz tanima ayarlari
6. Kullanici yonetimi gelistirme
7. Backend API genisletmeleri (paralel)
8. Kisiler galerisi (kullanici tarafi)
9. Moderasyon paneli
