# Yakıt Takip Sistemi (YTP) **Türk Silahlı Kuvvetleri Akaryakıt İkmal ve Yönetim Sistemi** TSK bünyesindeki akaryakıt istasyonlarında yakıt ikmal süreçlerini dijital ortama taşıyan, rol bazlı yetkilendirme ile stok takibi ve fiş yönetimi sağlayan modern bir web uygulaması. ## 🚀 Özellikler ### 🎯 Rol Bazlı Erişim Sistemi - **Admin**: Tüm sistem kullanıcılarını ve kaynakları yönetir - **Yakıt Sorumlusu**: Yakıt fişleri oluşturur, süreci yönetir - **Mal Sorumlusu**: Atanan yakıt fişlerini onaylar/reddeder ### ⚡ Gerçek Zamanlı İşlemler - Socket.IO tabanlı anında bildirimler - Otomatik güncellemeler ve durum takibi - Çoklu kullanıcı desteği ### 📊 Kapsamlı Yönetim - **Araç Yönetimi**: Plaka, marka, model, yıl bilgileri - **Birim Yönetimi**: Adres, STK/BTK, sorumlu kişi bilgileri - **Personel Yönetimi**: Yakıt personeli kayıt ve takibi - **Fiş Yönetimi**: Oluşturma, onay, red ve arşivleme ### 📋 Dijital Fiş Sistemi - Otomatik fiş numarası üretimi - PDF formatında resmi fiş çıkarma - Tüm kuvvetler için destek (MSB, K.K.K., Dz.K.K., Hv.K.K., SGK, Gnkur. Bşk., Hrt.Gn.K.) ### 🔒 Güvenlik - Token bazlı oturum yönetimi - Rol bazlı yetkilendirme - SQLite veritabanı güvenliği ## 🏗️ Teknik Mimari ### Backend - **Node.js + Express**: REST API sunucusu - **Socket.IO**: Gerçek zamanlu iletişim - **SQLite3**: Hafif veritabanı - **PDFKit**: PDF belge oluşturma - **CORS**: Çapraz kaynak paylaşımı ### Frontend - **Svelte 4**: Modern ve reaktif UI kütüphanesi - **Vite**: Hızlı geliştirme ve build aracı - **Socket.IO Client**: Gerçek zamanlu istemci - **Font Awesome**: İkon kütüphanesi ### Veritabanı - **SQLite**: Hafif ve taşınabilir veritabanı - **Foreign Key** desteği ile veri bütünlüğü - **Otomatik yedekleme ve migration ## 📁 Proje Yapısı ``` ytp/ ├── client/ # Frontend uygulaması │ ├── src/ │ │ ├── components/ # Svelte bileşenleri │ │ │ ├── LoginView.svelte # Giriş ekranı │ │ │ ├── AdminPanel.svelte # Admin paneli │ │ │ ├── FuelManagerPanel.svelte # Yakıt sorumlusu paneli │ │ │ ├── InventoryManagerPanel.svelte # Mal sorumlusu paneli │ │ │ └── RoleWelcome.svelte # Rol karşılama ekranı │ │ ├── lib/ # Yardımcı kütüphaneler │ │ │ └── numberToWordsTr.js # Sayıdan metne çeviri │ │ ├── api.js # API istemcisi │ │ ├── app.css # Ana stil dosyası │ │ ├── main.js # Uygulama giriş noktası │ │ └── App.svelte # Ana uygulama bileşeni │ ├── package.json # Frontend bağımlılıkları │ ├── vite.config.js # Vite yapılandırması │ └── svelte.config.js # Svelte yapılandırması ├── server/ # Backend uygulaması │ ├── index.js # Express sunucusu │ ├── db.js # Veritabanı işlemleri │ └── db-init.js # Veritabanı başlangıç ├── data/ # Veritabanı dosyaları │ └── app.db # SQLite veritabanı └── package.json # Proje bağımlılıkları ``` ## 🚀 Kurulum ### Gereksinimler - Node.js 16+ - npm 7+ - SQLite3 (otomatik yüklenir) ### Adım 1: Projeyi Klonlayın ```bash git clone cd ytp ``` ### Adım 2: Bağımlılıkları Yükleyin ```bash # Ana proje bağımlılıkları npm install # Frontend bağımlılıkları cd client npm install cd .. ``` ### Adım 3: Veritabanını Başlatın ```bash npm run prepare:db ``` ### Adım 4: Uygulamayı Çalıştırın ```bash # Geliştirme modunda çalıştırma npm run dev # Veya sadece sunucuyu başlatma npm run start:server ``` ### Adım 5: Tarayıcıda Açın Uygulama `http://localhost:5005` adresinde çalışacaktır. ## 👤 Varsayılan Kullanıcılar Sistem ilk kurulumda aşağıdaki test kullanıcılarını oluşturur: | Rol | Kullanıcı Adı | Şifre | Açıklama | |-----|--------------|-------|----------| | Admin | `admin` | `Admin!123` | Sistem yöneticisi | | Yakıt Sorumlusu | `yakitsorum` | `Yakit@123` | Yakıt fişi oluşturabilir | | Mal Sorumlusu | `malsorum1` | `Mal@123` | Fiş onay/reddeder | ## 📚 API Dokümantasyonu ### Kimlik Doğrulama - `POST /api/auth/login` - Giriş - `POST /api/auth/logout` - Çıkış - `GET /api/session` - Oturum bilgisi ### Yönetim (Admin) - `GET/POST/PUT/DELETE /api/inventory-managers` - Mal sorumluları - `GET/POST/PUT/DELETE /api/vehicles` - Araçlar - `GET/POST/PUT/DELETE /api/units` - Birlikler - `GET/POST/PUT/DELETE /api/fuel-personnel` - Personel ### Yakıt İşlemleri - `GET /api/fuel/resources` - Kaynak bilgileri - `GET /api/fuel-slips` - Tüm fişler - `POST /api/fuel-slips` - Fiş oluştur - `GET /api/fuel-slips/:id/pdf` - PDF indir - `PATCH /api/fuel-slips/:id/status` - Durum güncelle ## 🔧 Geliştirme ### Proje Özellikleri - **Responsive Tasarım**: Mobil uyumlu arayüz - **Real-time Updates**: Socket.IO ile anında bildirimler - **Type Safety**: JavaScript tabanlı yapı - **Modern CSS**: Flexbox/Grid tabanlı responsive design - **Error Handling**: Kapsamlı hata yönetimi - **Session Management**: Güvenli oturum yönetimi ### Kod Standartları - ESLint kullanımı önerilir - Bileşen tabanlı geliştirme - Clean Code prensipleri - Responsive first design ## 📄 Lisans Bu proje ISC lisansı ile lisanslanmıştır. ## 🤝 Katkıda Bulunma 1. Projeyi fork edin 2. Geliştirme branch'ini oluşturun (`git checkout -b feature/AmazingFeature`) 3. Değişikliklerinizi commit edin (`git commit -m 'Add some AmazingFeature'`) 4. Branch'e push edin (`git push origin feature/AmazingFeature`) 5. Pull Request oluşturun ## 📞 Destek Geliştirici: [İletişim Bilgileri] Proje Sayfası: [GitHub Repository] --- **Not**: Bu proje TSK bünyesindeki akaryakıt yönetim süreçlerini dijitalleştirmek amacıyla geliştirilmiş örnek bir uygulamadır.