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ü).
| Sayfa | Talep eden | it_staff | it_manager | admin |
|---|---|---|---|---|
| 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
| Rol | Ne görür |
|---|---|
admin | Her şey. Tüm şirketler, şirkete bağlı olmayan ("global") kayıtlar dahil. |
it_manager | Yalnızca atandığı şirketler. Şirkete özel yöneticidir. |
it_staff | Yalnı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
- Şirket seç → o şirkete tanımlı lokasyon ve kategoriler yüklenir.
- Kategori seç → kategoriye bağlı SLA süreleri ve otomatik atama devreye girer.
- Şirkete özel dinamik alanlar doldurulur (metin, sayı, seçim, telefon, URL, e-posta, uzun metin tipleri desteklenir — yönetici tanımlar).
- Başlık, açıklama, öncelik ve isteğe bağlı dosya ekleri (varsayılan üst sınır 25 MB).
- 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ı
| Durum | Anlamı |
|---|---|
open | Açık — henüz ele alınmadı |
in_progress | İşlemde |
waiting_user_response | Kullanıcı yanıtı bekleniyor |
waiting_other_department | Diğer birimden destek bekleniyor |
topic_transferred | Konu aktarıldı |
process_outside_it | Süreç IT dışında ilerliyor |
on_hold | Beklemede |
resolved | Çözüldü |
closed | Kapatı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, critical — ticket ö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/passwords — admin ve it_manager.
admintüm kayıtları görür.it_manageryalnı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üzdenit_managerbunları 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
- Seed şifrelerini değiştir.
admin123/staff123demo içindir. Production'da seed çalıştırdıysan hemen değiştir; çalıştırmadıysan ilk admin'i elle oluştur. - Şirketlerini tanımla — lokasyonlar, kategoriler ve kategori bazlı SLA süreleri.
- Özel alanları kur — her şirketin ticket formunda hangi ek bilgileri isteyeceğini belirle.
- 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.
- Personeli ekle ve şirket kapsamlarını ata — kapsam atamazsan
it_stafftüm şirketleri görür. - E-posta şablonlarını düzenle — varsayılanlar çalışır ama kurumunun diline göre gözden geçir.
CREDENTIALS_ENC_KEY'i yedekle — şifre kasasını kullanacaksan.