Files
ytp-glm/docs/KNOWLEDGE_BASE.md
sbilketay 4205a8d387 Initial commit: Yakıt Takip Modülü - Akaryakıt İstasyonu Yönetim Sistemi
🚀 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>
2025-11-05 08:35:13 +03:00

166 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# YTP Bilgi Bankası
Yakıt Takip Sistemi kapsamlı bilgi bankası - hızlı referans, kılavuzlar ve sorun giderme rehberi.
### İlk Yakıt Fişi Oluşturma
1. **Giriş Yap**: Yakıt sorumlusu ile giriş yapın
2. **Kaynak Kontrolü**: Araç, birlik ve personel kayıtlarını kontrol edin
3. **Fiş Oluştur**: "Yeni Fiş" butonuna tıklayın
4. **Form Doldur**: Tüm zorunlu alanları doldurun
5. **Onay Gönder**: Mal sorumlusuna gönder
6. **Bildirim Takibi**: Real-time bildirimleri izleyin
## 🏗️ Sistem Mimarisi
### Mimari Diyagram
```
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Frontend │ │ Backend │ │ Database │
│ (Svelte) │◄──►│ (Express) │◄──►│ (SQLite) │
│ │ │ │ │ │
│ - UI Components │ │ - REST API │ │ - users │
│ - State Mgmt │ │ - Socket.IO │ │ - vehicles │
│ - Routing │ │ - Auth/Authz │ │ - units │
│ - API Client │ │ - PDF Generation│ │ - fuel_personnel│
└─────────────────┘ └─────────────────┘ │ - fuel_slips │
└─────────────────┘
```
### Teknoloji Stack Karşılaştırması
| Katman | Teknoloji | Neden? | Alternatifler |
|--------|-----------|--------|---------------|
| Frontend | Svelte + Vite | Hızlı, küçük bundle, reaktif | React, Vue, Angular |
| Backend | Node.js + Express | Hızlı development, JavaScript ekosistemi | Python, PHP, Java |
| Database | SQLite3 | Hafif, kurulum gerektirmeyen, taşınabilir | PostgreSQL, MySQL |
| Real-time | Socket.IO | WebSocket wrapper, fallback mekanizmaları | Raw WebSocket, SSE |
| PDF | PDFKit | Node.js uyumlu, esnek | Puppeteer, jsPDF |
## 👥 Kullanıcı Rolleri ve Yetkileri
### Admin (Sistem Yöneticisi)
**Yetkiler:**
- ✅ Tüm kullanıcıları yönetme
- ✅ Mal sorumluları ekleme/güncelleme/silme
- ✅ Araç kayıtlarını yönetme
- ✅ Birlik bilgilerini yönetme
- ✅ Personel kayıtlarını yönetme
- ✅ Sistem ayarlarını yapılandırma
- ❌ Yakıt fişi oluşturma
- ❌ Fiş onaylama/reddetme
**Kullanım Alanları:**
- Sistem kurulum ve bakım
- Kullanıcı yönetimi
- Temel veri girişi
- Raporlama ve analiz
### Yakıt Sorumlusu
**Yetkiler:**
- ✅ Yakıt fişi oluşturma
- ✅ Fiş durumlarını takip etme
- ✅ PDF fiş indirme
- ✅ Kaynak bilgilerini görme
- ❌ Kullanıcı yönetimi
- ❌ Fiş onaylama
- ❌ Temel veri düzenleme
**Kullanım Alanları:**
- Günlük yakıt ikmal işlemleri
- Fiş oluşturma ve takip
- Raporlama
### Mal Sorumlusu
**Yetkiler:**
- ✅ Atanan fişleri görme
- ✅ Fiş onaylama/reddetme
- ✅ Onay/reddetme gerekçesi ekleme
- ✅ Atanan fişleri arşivleme
- ❌ Fiş oluşturma
- ❌ Kullanıcı yönetimi
- ❌ Temel veri düzenleme
**Kullanım Alanları:**
- Yakıt ikmal onay süreçleri
- Stok takibi
- Raporlama
## 🔄 İş Akışları
### 1. Kullanıcı Yönetimi Akışı (Admin)
```
Başlangıç
Admin Girişi
"Kullanıcı Yönetimi" → "Mal Sorumluları"
"Ekle" butonu → Form doldur → Kaydet
Kullanıcı oluşturuldu → Bilgilendirme
Bitiş
```
### 2. Yakıt Fişi Oluşturma Akışı
```
Başlangıç
Yakıt Sorumlusu Girişi
"Yeni Fiş" butonu
Form doldurma:
├─ Tarih seçimi
├─ Kuvvet seçimi
├─ Birlik seçimi
├─ Araç seçimi
├─ Yakıt bilgileri
├─ Personel seçimi
└─ Mal sorumlusu atama
"Oluştur" butonu
Validasyon → Veritabanı kayıt
Mal sorumlusuna bildirim
PDF fiş oluştur (opsiyonel)
Bitiş
```
### 3. Fiş Onay Akışı
```
Başlangıç
Mal Sorumlusu Girişi
"Atanan Fişler" listesi
Fiş seçimi → Detay görüntüle
Karar verme:
├─ "Onayla" → Durum: approved
└─ "Reddet" → Gerekçe gir → Durum: rejected
Yakıt sorumlusuna bildirim
Bitiş
```
### 4. Real-time Bildirim Akışı
```
Olay Tetiklenir
Server Event Oluştur
Socket.IO Emit
İlgili Client'a Gönder
UI Güncellenir
Kullanıcı Bilgilendirilir