# PHP Nöbet Çizelgesi Yönetim Sistemi

## Kurulum
1. `nobet-cizelgesi` klasörünü FTP ile sunucuya yükleyin.
2. `database/nobet_cizelgesi.sql` dosyasını phpMyAdmin üzerinden import edin.
3. `config/config.php` dosyasındaki DB_HOST, DB_NAME, DB_USER, DB_PASS ve BASE_URL değerlerini düzenleyin.
4. Tarayıcıdan `public/login.php` dosyasını açın.

Varsayılan giriş:
- Kullanıcı adı: `admin`
- Şifre: `admin123`

## Notlar
- Composer ve SSH gerekmez.
- Excel import/export için proje içinde basit XLSX sınıfları vardır.
- Sunucuda PHP ZipArchive yoksa XLSX yerine CSV import kullanılabilir; export CSV olarak düşer.
- Bootstrap/DataTables CDN üzerinden çağrılır. İnternetsiz intranet kullanımı için bu dosyalar assets içine indirilmelidir.

## Modüller
- Kullanıcı girişi
- Personel ekleme / düzenleme / aktif-pasif
- CSV/XLSX personel import
- Personel izin yönetimi
- Resmi tatil yönetimi
- Otomatik aylık nöbet oluşturma
- Manuel çizelge düzenleme
- Excel export

## Algoritma
Sistem Pazar, resmi tatil ve izinleri atlar. Uygun personeller içinden en düşük toplam mesai, haftalık en az nöbet, son nöbet tarihi en eski ve eşitlikte rastgele seçim kurallarını uygular.

## HTTP 500 Kontrolü

500 hatası alırsanız önce şu adresi açın:

`/public/check.php`

Bu sayfa PHP sürümü, PDO MySQL, Zip extension, upload klasör yetkisi ve veritabanı tablolarını kontrol eder.

En sık sebepler:

1. `config/config.php` içinde veritabanı adı, kullanıcı veya şifre yanlış.
2. SQL dosyası import edilmemiştir.
3. Hosting üzerinde `pdo_mysql` kapalıdır.
4. PHP sürümü çok eskidir. Düzeltilmiş paket PHP 7.0+ uyumluluğu için tip tanımlarından arındırılmıştır; PHP 8+ önerilir.
5. `assets/uploads` klasöründe yazma izni yoktur.
