Readme index'ler eklendi.

This commit is contained in:
2025-11-03 23:12:45 +03:00
parent 7edbab2689
commit 63abf6eaff
10 changed files with 3867 additions and 0 deletions

191
README.md Normal file
View File

@@ -0,0 +1,191 @@
# 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 <repository-url>
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.