🚀 Features Implemented: - Full-stack SvelteKit application with Express backend - Role-based authentication (Admin, Fuel Manager, Goods Manager) - Real-time notifications with Socket.IO - SQLite database with auto-initialization in /db directory - Comprehensive user management and fuel slip tracking - Responsive design with Turkish language support 🏗️ Architecture: - Frontend: Svelte + SvelteKit + Vite - Backend: Node.js + Express + Socket.IO - Database: SQLite3 with automatic schema creation - Security: bcrypt password hashing + session management - Real-time: Socket.IO for instant notifications 📁 Project Structure: - Organized documentation in /docs directory - Database files in /db directory with auto-setup - Clean separation of API routes and UI components - Comprehensive documentation including processes, architecture, and user guides 📚 Documentation: - PROJECT_PROCESSES.md: Comprehensive project documentation - KNOWLEDGE_BASE.md: Quick reference and user guide - TEST_GUIDE.md: Testing and quality assurance guide - README_ADMIN_FEATURES.md: Admin functionality guide - Full API documentation and system architecture 🔒 Security Features: - Role-based authorization system - Encrypted password storage with bcrypt - Session-based authentication - SQL injection protection with parameterized queries - CORS configuration and input validation 🎯 Key Features: - Fuel slip creation and approval workflow - Real-time notifications between users - PDF generation for fuel slips - User and vehicle management - Comprehensive audit logging 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
9.4 KiB
9.4 KiB
Yakıt Takip Sistemi - Test Rehberi
🎯 Sistem Genel Bakış
KNOWLEDGE_BASE.md'deki iş akışlarına göre implement edilen tam fonksiyonel yakıt takip sistemi.
🚀 Sunucu Durumu
- Frontend:
http://localhost:5174/(SvelteKit) - Backend:
http://localhost:3000(Express/Socket.IO) - Status: ✅ Çalışıyor
🔐 Test Kullanıcıları
| Kullanıcı Adı | Şifre | Rol | Yetkiler | Yönlendirme |
|---|---|---|---|---|
admin |
admin123 |
Sistem Yöneticisi | Araç, birlik, personel yönetimi | /dashboard |
fuel |
fuel123 |
Yakıt Sorumlusu | Fiş oluşturma, takip | /fuel-slips |
goods |
goods123 |
Mal Sorumlusu | Fiş onay/reddetme | /goods-manager |
📋 Test Senaryoları
1. Admin Panel Testleri
1.1 Giriş Testi
✓ Adım 1: http://localhost:5174/ adresine git
✓ Adım 2: "admin" / "admin123" ile giriş yap
✓ Beklenen: /dashboard sayfasına yönlendirme
✓ Kontrol: Sol menüde "Yönetim Paneli" başlığı
1.2 Araç Yönetimi Testi
✓ Adım 1: Sol menüden "Araç Yönetimi" seç
✓ Adım 2: Boş state kontrolü ("Henüz Araç Yok" mesajı)
✓ Adım 3: "Yeni Araç Ekle" butonuna tıkla
✓ Adım 4: Form doldur:
- Marka: Toyota
- Model: Corolla
- Yıl: 2022
- Plaka: 34TEST123
✓ Adım 5: "Kaydet" butonuna tıkla
✓ Beklenen: Araç kartları görüntülenmeli
✓ Adım 6: Araç kartındaki "Düzenle" butonunu test et
✓ Adım 7: Araç bilgilerini güncelle
✓ Adım 8: "Sil" butonunu test et
1.3 Birlik Yönetimi Testi
✓ Adım 1: Sol menüden "Birlik Yönetimi" seç
✓ Adım 2: "Yeni Birlik Ekle" butonuna tıkla
✓ Adım 3: Form doldur:
- Birlik Adı: 1. Test Birliği
- Adres: Test Adresi
- STK: STK-001
- BTK: BTK-001
- Sorumlu Bilgileri:
* Adı Soyadı: Test Personel
* Rütbesi: Yüzbaşı
* Sicil: TEST001
* TC Kimlik: 12345678901
* İrtibat: 05321234567
✓ Adım 4: "Kaydet" butonuna tıkla
✓ Beklenen: Birlik kartı görüntülenmeli
✓ Validasyon Testi: TC Kimlik 11 hane kontrolü
1.4 Personel Yönetimi Testi
✓ Adım 1: Sol menüden "Yakıt Personeli" seç
✓ Adım 2: "Yeni Personel Ekle" butonuna tıkla
✓ Adım 3: Form doldur:
- Adı Soyadı: Test Personel
- Rütbesi: Üsteğmen
- Sicil: TEST002
- TC Kimlik: 98765432109
- İrtibat: 05339876543
✓ Adım 4: "Kaydet" butonuna tıkla
✓ Adım 5: Personel durumunu test et (Aktif/Pasif)
✓ Adım 6: "Pasif Yap" butonunu test et
1.5 Mal Sorumluları Yönetimi Testi
✓ Adım 1: Sol menüden "Mal Sorumluları" seç
✓ Adım 2: Boş state kontrolü ("Henüz Mal Sorumlusu Yok" mesajı)
✓ Adım 3: "Yeni Mal Sorumlusu Ekle" butonuna tıkla
✓ Adım 4: Modal form doldur:
- Adı Soyadı: Test Mal Sorumlusu
- Rütbesi: Binbaşı
- Sicil Numarası: GM001
- TC Kimlik: 12345678901
- İrtibat: 05321234567
- E-posta: test.mal@mil.tr
✓ Adım 5: "Kaydet" butonuna tıkla
✓ Beklenen: Mal sorumlusu kartı görüntülenmeli
✓ Adım 6: Mal sorumlusu kartındaki "Düzenle" butonunu test et
✓ Adım 7: Mal sorumlusu bilgilerini güncelle
✓ Adım 8: "Pasif Yap/Aktif Yap" durum değiştirme testi
✓ Adım 9: "Sil" butonunu test et
✓ Validasyon Testleri:
- TC Kimlik 11 hane kontrolü
- E-posta format kontrolü
- Sicil numarası tekrar kontrolü
2. Yakıt Sorumlusu Testleri
2.1 Giriş ve Fiş Oluşturma
✓ Adım 1: "fuel" / "fuel123" ile giriş yap
✓ Beklenen: /fuel-slips sayfasına yönlendirme
✓ Adım 2: Boş state kontrolü ("Henüz Fiş Yok" mesajı)
✓ Adım 3: "Yeni Fiş Oluştur" butonuna tıkla
✓ Adım 4: Modal form doldur:
- Tarih: Bugünün tarihi
- Kuvvet Komutanı: Test Komutan
- Birlik: 1. Motorlu Piyade Tugayı (Admin ekledi)
- Araç: Toyota Corolla (Admin ekledi)
- Yakıt Türü: Benzin
- Litre: 45
- KM: 125000
- Personel: Test Personel (Admin ekledi)
- Notlar: Test yakıt ikmali
✓ Adım 5: "Fiş Oluştur" butonuna tıkla
✓ Beklenen: Başarı mesajı ve fiş kartı
2.2 Fiş Durumları Testi
✓ Adım 1: Oluşturulan fişin durumunu kontrol et ("Beklemede")
✓ Adım 2: PDF İndir butonunu test et (placeholder)
✓ Adım 3: Filtreleme testi
✓ Adım 4: Tarih sıralaması testi
3. Mal Sorumlusu Testleri
3.1 Giriş ve Atanan Fişler
✓ Adım 1: "goods" / "goods123" ile giriş yap
✓ Beklenen: /goods-manager sayfasına yönlendirme
✓ Adım 2: Sol menüde "Onay Paneli" başlığı
✓ Adım 3: Yakıt sorumlusunun oluşturduğu fişi bekle
✓ Beklenen: Atanan fişin listelenmesi
✓ Adım 4: Öncelik sistemi testi:
- 50L altı: Düşük öncelik (yeşil)
- 50-100L: Orta öncelik (sarı)
- 100L üstü: Yüksek öncelik (kırmızı)
3.2 Onay ve Reddetme Testleri
✓ Onay Testi:
✓ Adım 1: "Onayla" butonuna tıkla
✓ Adım 2: Onay modalini kontrol et
✓ Adım 3: Onay notu ekle (opsiyonel)
✓ Adım 4: "Onayla" butonuna tıkla
✓ Beklenen: "Onaylı" durumuna geçiş
✓ Reddetme Testi:
✓ Adım 1: "Reddet" butonuna tıkla
✓ Adım 2: Reddetme modalini kontrol et
✓ Adım 3: Red gerekçesi gir (zorunlu)
✓ Adım 4: "Reddet" butonuna tıkla
✓ Beklenen: "Reddedildi" durumuna geçiş ve gerekçe görünümü
4. Cross-Role Testleri
4.1 Rol Değiştirme Testi
✓ Adım 1: Admin olarak çıkış yap
✓ Adım 2: Fuel Manager olarak giriş yap
✓ Adım 3: Fiş oluştur
✓ Adım 4: Çıkış yap
✓ Adım 5: Goods Manager olarak giriş yap
✓ Adım 6: Oluşturulan fişi onayla
✓ Adım 7: Çıkış yap
✓ Adım 8: Admin olarak giriş yap
✓ Adım 9: Fiş durumunu kontrol et ("Onaylı")
4.2 Yetki Kontrol Testi
✓ Fuel Manager testleri:
✓ Araç yönetimi sayfasına erişim denemesi → 403
✓ Birlik yönetimi sayfasına erişim denemesi → 403
✓ Personel yönetimi sayfasına erişim denemesi → 403
✓ Goods Manager testleri:
✓ Araç yönetimi sayfasına erişim denemesi → 403
✓ Birlik yönetimi sayfasına erişim denemesi → 403
✓ Personel yönetimi sayfasına erişim denemesi → 403
✓ Mal sorumluları yönetimi sayfasına erişim denemesi → 403
✓ Admin testleri:
✓ Tüm sayfalara erişim ✅
5. Responsive Tasarım Testleri
5.1 Mobil Görünüm Testi
✓ Adım 1: Tarayıcıyı daralt (mobile view)
✓ Adım 2: Menu butonunun görünürlüğü
✓ Adım 3: Mobil menü açma/kapama
✓ Adım 4: Form alanlarının mobil uyumluluğu
✓ Adım 5: Buton boyutlarının dokunma için uygunluğu
5.2 Tablet Görünüm Testi
✓ Adım 1: Tarayıcıyı tablet boyutuna getir
✓ Adım 2: Layout'ın adaptasyonu
✓ Adım 3: Grid sistem çalışması
6. Form Validasyon Testleri
6.1 Zorunlu Alan Testleri
✓ Araç formu:
✓ Boş marka → Hata mesajı
✓ Boş plaka → Hata mesajı
✓ Birlik formu:
✓ Boş birlik adı → Hata mesajı
✓ Geçersiz TC → Hata mesajı
✓ Mal sorumlusu formu:
✓ Boş ad soyad → Hata mesajı
✓ Boş rütbe → Hata mesajı
✓ Boş sicil numarası → Hata mesajı
✓ Geçersiz TC Kimlik (11 hane değil) → Hata mesajı
✓ Geçersiz e-posta formatı → Hata mesajı
✓ Boş irtibat numarası → Hata mesajı
✓ Fiş formu:
✓ Boş litre → Hata mesajı
✓ Negatif KM → Hata mesajı
✓ Boş personel → Hata mesajı
6.2 Veri Format Testleri
✓ TC Kimlik: 11 hane kontrolü
✓ E-posta: Format kontrolü (@ ve . içermeli)
✓ Sicil numarası: Tekrar kontrolü
✓ Plaka: Format kontrolü
✓ Sayısal alanlar: Negatif değer kontrolü
✓ Tarih: Geçerli tarih aralığı
7. Hata Yönetimi Testleri
7.1 Bağlantı Hataları
✓ Backend kapalıyken API çağrıları
✓ Hata mesajlarının kullanıcı dostu olması
✓ Loading state'lerin düzgün çalışması
7.2 Edge Case Testleri
✓ Çok uzun metin girişleri
✓ Özel karakterli veriler
✓ Çok hızlı art arda buton tıklamaları
✓ Browser refresh durumları
🔧 Troubleshooting
Yaygın Sorunlar
-
404 Hatası: Sayfa bulunamadı
- ✅ Çözüm: Sunucunun çalıştığını kontrol et (
npm run dev)
- ✅ Çözüm: Sunucunun çalıştığını kontrol et (
-
Erişim Reddedildi: Yetki hatası
- ✅ Çözüm: Doğru kullanıcı adı/şifre ile giriş yap
-
Form Gönderilmiyor: Validasyon hatası
- ✅ Çözüm: Tüm zorunlu alanları doldur
-
Veri Gözükmüyor: API hatası
- ✅ Çözüm: Browser console'da hata mesajlarını kontrol et
Debug Adımları
- Console Kontrolü: F12 → Console sekmesi
- Network Kontrolü: F12 → Network sekmesi
- Storage Kontrolü: F12 → Application → Local Storage
- Backend Logları: Terminal çıktısını kontrol et
📊 Test Sonuçları Template
Test Tarihi: ___________
Test Edilen: ___________
Sonuç: ✅ Başarılı / ❌ Başarısız
Notlar:
- Test adımları
- Beklenen sonuçlar
- Gerçekleşen sonuçlar
- Hata mesajları
- Ekran görüntüleri
🎯 Başarı Kriterleri
- ✅ Tüm kullanıcı rolleri giriş yapabiliyor
- ✅ Role-based yönlendirme çalışıyor
- ✅ Form validasyonları doğru çalışıyor
- ✅ CRUD işlemleri tamamlanıyor
- ✅ Responsive tasarım tüm cihazlarda çalışıyor
- ✅ Hata mesajları kullanıcı dostu
- ✅ Cross-role iş akışları tamamlanıyor