63abf6eaffe7cfef2867e462d2565eb0a6dbf61e
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
git clone <repository-url>
cd ytp
Adım 2: Bağımlılıkları Yükleyin
# 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
npm run prepare:db
Adım 4: Uygulamayı Çalıştırın
# 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çlarGET/POST/PUT/DELETE /api/units- BirliklerGET/POST/PUT/DELETE /api/fuel-personnel- Personel
Yakıt İşlemleri
GET /api/fuel/resources- Kaynak bilgileriGET /api/fuel-slips- Tüm fişlerPOST /api/fuel-slips- Fiş oluşturGET /api/fuel-slips/:id/pdf- PDF indirPATCH /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
- Projeyi fork edin
- Geliştirme branch'ini oluşturun (
git checkout -b feature/AmazingFeature) - Değişikliklerinizi commit edin (
git commit -m 'Add some AmazingFeature') - Branch'e push edin (
git push origin feature/AmazingFeature) - 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.
Description
Languages
Svelte
61.2%
JavaScript
38%
HTML
0.5%
CSS
0.3%