Readme index'ler eklendi.
This commit is contained in:
191
README.md
Normal file
191
README.md
Normal 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.
|
||||
Reference in New Issue
Block a user