Kurulum & Kullanım

Kullanım Kılavuzu

Bu doküman sistemin nasıl kullanıldığını anlatır. Kurulum için Kurulum, teknik detay için Mimari sayfasına bak.

Kimler ne yapabilir

Sistemde iki tür kullanıcı var: talep edenler (şifresiz, kayıt yok) ve staff (şifreli giriş, rollü).

SayfaTalep edenit_staffit_manageradmin
Ticket oluştur / takip et (public)
Dashboard, ticket yönetimi, takvim, görevler
Şirket / lokasyon / kategori / özel alan yönetimi
Raporlar, şablonlar
Şifre kasası
Personel yönetimi ve şirket atama

Roller: admin (Sistem Yöneticisi), it_manager (IT Yöneticisi), it_staff (IT Personeli).

Şirket kapsamı — en önemli kavram

RolNe görür
adminHer şey. Tüm şirketler, şirkete bağlı olmayan ("global") kayıtlar dahil.
it_managerYalnızca atandığı şirketler. Şirkete özel yöneticidir.
it_staffYalnızca atandığı şirketler.

Personel Personel Yönetimi ekranından şirketlere atanır. Bu yalnızca admin tarafından yapılabilir — şirket ataması bir yetki kararıdır.

Kapsam fail-closed'dır: Hiçbir şirkete atanmamış bir it_manager veya it_staff hiçbir şey göremez — boş dashboard, boş ticket listesi. Bu bir hata değil, bilinçli tercihtir: atama yapmayı unutursan hesap sınırsız erişim kazanmaz.

Yeni personel eklerken şirket atamasını unutma. Kullanıcı "hiçbir şey görmüyorum" diyorsa ilk bakılacak yer burasıdır.

it_manager kendi şirketleri içinde şunları yapar: ticket yönetimi, lokasyon/kategori/özel alan tanımları, raporlar ve şifre kasası. Yetkili olmadığı bir şirketin verisine hiçbir yoldan erişemez — kayıtları o şirkete taşıyamaz, kendine şirket atayamaz.

Talep eden — public portal

Giriş yok, kayıt yok. Talep eden yalnızca e-posta adresini verir.

Ticket oluşturma — /create

  1. Şirket seç → o şirkete tanımlı lokasyon ve kategoriler yüklenir.
  2. Kategori seç → kategoriye bağlı SLA süreleri ve otomatik atama devreye girer.
  3. Şirkete özel dinamik alanlar doldurulur (metin, sayı, seçim, telefon, URL, e-posta, uzun metin tipleri desteklenir — yönetici tanımlar).
  4. Başlık, açıklama, öncelik ve isteğe bağlı dosya ekleri (varsayılan üst sınır 25 MB).
  5. Gönderildiğinde ticket bir numara ve tahmin edilemez bir erişim linki alır.

Şirketin allowedDomains ayarı varsa, talep edenin e-posta domain'i bu listede olmalıdır.

Durum takibi — erişim linki

Oluşturma sonrası (ve bildirim e-postalarında) verilen link: https://<site>/ticket/<accessToken>

Bu sayfada talep eden:

  • Ticket'ın canlı durumunu görür (SSE ile anlık güncellenir).
  • Yanıt yazar ve ek dosya gönderir.
  • IT ekibinin public notlarını okur. İç notlar burada görünmez.

Link'i olan herkes o ticket'ı görebilir — link'in kendisi paroladır. Talep edene özel link'i paylaşmamasını hatırlat.

Geçmiş talepler — /track

Ticket numarası + e-posta ile sorgulama. Alternatif olarak sadece e-posta ile o adrese ait tüm ticket'lar listelenir (dakikada 10 istek ile sınırlı).

Ticket durumları

DurumAnlamı
openAçık — henüz ele alınmadı
in_progressİşlemde
waiting_user_responseKullanıcı yanıtı bekleniyor
waiting_other_departmentDiğer birimden destek bekleniyor
topic_transferredKonu aktarıldı
process_outside_itSüreç IT dışında ilerliyor
on_holdBeklemede
resolvedÇözüldü
closedKapatıldı

Öncelikler: low (Düşük), medium (Orta), high (Yüksek), critical (Kritik).

IT ekibi — staff paneli

Giriş: /staff/login. Oturum 15 dakikalık access token + 7 günlük refresh cookie ile yönetilir; sekmeyi kapatıp açtığında oturum korunur, "Çıkış" dediğinde sunucu tarafında gerçekten iptal edilir.

Giriş yaptıktan sonra Hesap ve Güvenlik ekranından authenticator tabanlı iki aşamalı doğrulama etkinleştirilebilir. Kurulum anahtarı 10 dakika geçerlidir; etkinleştirme için uygulamanın ürettiği ilk 6 haneli kod doğrulanır. Sonraki girişlerde şifreden sonra bu kod istenir.

Dashboard — /staff

Açık/işlemdeki/çözülen ticket sayıları, SLA durumu (yaklaşan ve aşılmış), üzerine atanmış ticket'lar.

Ticket yönetimi — /staff/tickets

  • Liste: duruma, önceliğe, şirkete, kategoriye, atanana göre filtre; serbest metin arama.
  • Toplu işlem: birden fazla ticket seçip durum/atama değiştirme.
  • Detay (/staff/tickets/:id):
    • Durum ve öncelik değiştirme, personele atama.
    • Public yanıt — talep eden görür, e-posta bildirimi gider.
    • İç not — yalnızca staff görür, talep edene asla gösterilmez.
    • Dosya ekleme, ticket geçmişi (kim neyi ne zaman değiştirdi), SLA sayacı.
    • Buradan yerinde destek randevusu oluşturulabilir.

Yerinde destek takvimi — /staff/onsite

Randevu tipleri: IT Odasına Gelin, Toplantı Odası, Yerinde Müdahale.

Randevu oluştururken süre seçilir ve takvimde gerçek süresiyle orantılı çizilir. Randevular personele atanmadığı için aynı saatte paralel randevular normaldir — çakışma uyarısı bilinçli olarak kaldırılmıştır.

Görev yönetimi — /staff/tasks

Ticket'tan bağımsız iç görevler. Birden fazla kişiye atanabilir, yorumlanabilir, son tarih verilebilir.

Görev durumları: open, in_progress, done, cancelled. Görev öncelikleri: low, medium, high, criticalticket öncelikleriyle aynıdır.

Liste ekranında görevler atanana, önceliğe, duruma ve metne göre filtrelenebilir; bitiş tarihi, öncelik, oluşturma veya başlığa göre sıralanabilir. Üstteki sayaç kutucukları tıklanabilir filtre kısayollarıdır (ör. "Süresi Geçen"). Durum, listeden doğrudan değiştirilebilir.

Yönetici işlemleri

Şirket yönetimi — /staff/companies (admin, it_manager)

  • Şirket: ad, grup tipi (call_center, corporate, warehouse, retail), logo, tema rengi.
  • allowedDomains: ticket açabilecek e-posta domain'leri. Boşsa kısıt yok.
  • portalDomains: şirketi hangi FQDN'in temsil ettiği. Bir kullanıcı o domain'den girdiğinde şirketin logosu ve rengi otomatik uygulanır (branding).
  • notificationEmail: yeni ticket'ların düşeceği IT grup maili.
  • Lokasyonlar: adres, kat bilgisi.
  • Kategoriler: hiyerarşik (alt kategori), sıralanabilir, kategori bazlı SLA (yanıt ve çözüm süresi, dakika) ve otomatik atama.
  • Özel alanlar: şirkete özel form alanları — tip, zorunluluk, seçenekler.
  • Şirket bazlı SMTP: her şirket kendi SMTP'siyle mail gönderebilir. Tanımlı değilse global SMTP kullanılır. Panelden test maili gönderilebilir.

Şirket SMTP şifreleri AES-256-GCM ile şifrelenir. Eski kurulumlar için tek seferlik dönüşüm adımı Güvenlik sayfasında belgelenmiştir.

Şablonlar — /staff/templates (admin, it_manager)

  • E-posta şablonları: ticket oluşturuldu, durum değişti, atandı, not eklendi, randevu planlandı, SLA uyarısı.
  • SMS şablonları: SMS gateway tanımlıysa.
  • Hazır yanıtlar (canned responses): ticket detayında tek tıkla eklenen kalıp metinler.

Raporlar — /staff/reports (admin, it_manager)

Ticket dağılımı, personel performansı, kategori kırılımı, genel bakış, SLA trendleri ve CSV export.

Personel yönetimi — /staff/staff-management (yalnızca admin)

Personel ekleme/düzenleme/silme, rol atama ve şirket kapsamı belirleme. Tüm işlemler audit log'a yazılır.

Şifre kasası

/staff/passwordsadmin ve it_manager.

  • admin tüm kayıtları görür.
  • it_manager yalnızca atandığı şirketlerin kayıtlarını görür ve yalnızca o şirketler için yeni kayıt ekleyebilir.
  • Şirkete bağlı olmayan ("global") kayıtlar yalnızca admin'e görünür. Global kayıtlar (domain admin, root şifreleri gibi) çapraz şirket sırları olma eğilimindedir; bu yüzden it_manager bunları ne görebilir ne oluşturabilir.

Kurumsal şifreleri (sunucu, lisans, servis hesapları) saklamak için. Hash'lenmez, çünkü şifrelerin tekrar görüntülenebilmesi gerekir; bunun yerine AES-256-GCM ile şifrelenir.

  • Yalnızca şifre ve notlar şifrelenir. Başlık, kategori, URL ve kullanıcı adı düz metindir (arama yapılabilsin diye).
  • Liste ekranı şifreleri hiçbir zaman döndürmez — maskeli gösterilir.
  • "Göster" dendiğinde şifre sunucuda çözülür, ekranda birkaç saniye sonra otomatik gizlenir ve her görüntüleme audit log'a yazılır.
  • Panoya kopyalama, arama ve filtreleme desteklenir.

Kritik: Şifreleme anahtarı CREDENTIALS_ENC_KEY ortam değişkenindedir ve veritabanında tutulmaz. Anahtarı kaybedersen veya değiştirirsen kasadaki tüm kayıtlar kalıcı olarak çözülemez hale gelir. Veritabanı yedeğinin yanında anahtarı da güvenli bir yerde yedekle — ama aynı yerde değil.

İlk kurulum sonrası yapılacaklar

  1. Seed şifrelerini değiştir. admin123 / staff123 demo içindir. Production'da seed çalıştırdıysan hemen değiştir; çalıştırmadıysan ilk admin'i elle oluştur.
  2. Şirketlerini tanımla — lokasyonlar, kategoriler ve kategori bazlı SLA süreleri.
  3. Özel alanları kur — her şirketin ticket formunda hangi ek bilgileri isteyeceğini belirle.
  4. SMTP'yi test et — global SMTP'yi doğrula, gerekiyorsa şirket bazlı SMTP tanımla ve panelden test maili gönder. E-posta çalışmazsa talep edenler erişim linklerini alamaz.
  5. Personeli ekle ve şirket kapsamlarını ata — kapsam atamazsan it_staff tüm şirketleri görür.
  6. E-posta şablonlarını düzenle — varsayılanlar çalışır ama kurumunun diline göre gözden geçir.
  7. CREDENTIALS_ENC_KEY'i yedekle — şifre kasasını kullanacaksan.