PHP 8.2 ile çalışan, ana dili Türkçe olan ve İngilizce dil desteği sunan, modern ve modüler bir İnsan Kaynakları Yönetim Sistemi geliştir. ## 1. Projenin genel amacı Sistem; farklı kurumların kendi çalışanlarını, pozisyonlarını, özlük bilgilerini, izin süreçlerini, puantajlarını, bordro verilerini, görevlendirmelerini ve insan kaynakları operasyonlarını yönetebildiği çok kurumlu (multi-tenant) bir SaaS uygulaması olmalıdır. Arayüz kullanım kolaylığı açısından Kolay İK benzeri sade, modern ve anlaşılır bir yapıya sahip olabilir; ancak tasarım, bileşenler ve marka dili özgün olmalı, başka bir ürünün birebir kopyası yapılmamalıdır. Uygulama: * PHP 8.2 ile çalışmalıdır. * SQLite tabanlı olabilir, veritabanı korumalı olmalı. * Responsive olmalı; masaüstü, tablet ve mobil cihazlarda düzgün çalışmalıdır. * Varsayılan dili Türkçe olmalıdır. * İngilizce dil desteği bulunmalıdır. * Kullanıcı, profil ayarlarından dil değiştirebilmelidir. * Gündüz ve gece modları bulunmalıdır. * Tema tercihi kullanıcı bazında kaydedilmelidir. * Arayüz erişilebilirlik standartlarına uygun olmalıdır. * Tarih, saat, para birimi ve resmi tatil hesaplamalarında kurumun ülke, dil ve saat dilimi ayarları kullanılmalıdır. * Türkiye için varsayılan saat dilimi Europe/Istanbul olmalıdır. ## 2. Teknik mimari Aşağıdaki yapıyı kullan: * Backend: PHP 8.2 ve Laravel * Veritabanı: SQLite * Frontend: Blade + Livewire/Alpine.js veya modern bir Vue tabanlı yapı * CSS: Tailwind CSS * Kimlik doğrulama: Laravel authentication altyapısı * Yetkilendirme: Rol ve izin bazlı RBAC sistemi * Dil desteği: Laravel localization * Dosya sistemi: Local ve S3 uyumlu depolama * Kuyruk işlemleri: Laravel Queue * Zamanlanmış görevler: Laravel Scheduler * Bildirimler: Uygulama içi ve e-posta bildirimleri * Takvim: Aylık, haftalık ve günlük görünümleri destekleyen takvim bileşeni * API: İleride mobil uygulama geliştirilebilmesi için REST API’ye uygun servis katmanı Kod temiz, modüler, test edilebilir ve genişletilebilir olmalıdır. Controller içerisinde yoğun iş mantığı bulunmamalı; servis, action, policy, request ve repository benzeri uygun katmanlar kullanılmalıdır. ## 3. Çok kurumlu yapı Her kurum sistemde birbirinden tamamen izole edilmelidir. Bir kuruma ait: * Çalışanlar * Kullanıcılar * Pozisyonlar * Departmanlar * Birimler * Belgeler * İzinler * Puantajlar * Bordrolar * Takvim kayıtları * Bildirimler * Ayarlar başka bir kurum tarafından kesinlikle görüntülenememelidir. Her veri kaydı uygun şekilde `organization_id` ile ilişkilendirilmeli ve tüm sorgularda kurum izolasyonu uygulanmalıdır. Yetkisiz kurumlar arası veri erişimini engelleyen middleware, policy ve otomatik testler hazırlanmalıdır. ## 4. Kurum tanımlama Yeni kurum oluşturulurken aşağıdaki bilgiler kaydedilebilmelidir: * Kurum adı * Kısa kurum adı * Logo * Vergi numarası * Vergi dairesi * Adres * İl * İlçe * Ülke * Posta kodu * Telefon * E-posta * Web sitesi * Yetkili kişi * Çalışan sayısı * Para birimi * Saat dilimi * Haftalık çalışma günleri * Günlük çalışma saatleri * Kurumun varsayılan dili * Resmi tatil takvimi * Kurumsal renkler Kurum logosu ve adı giriş ekranı, ana menü, belgeler ve raporlar üzerinde kullanılabilmelidir. ## 5. Kullanıcı rolleri ve yetkiler En az aşağıdaki roller bulunmalıdır: ### Süper yönetici * Sistemdeki tüm kurumları yönetebilir. * Kurum oluşturabilir, güncelleyebilir ve pasife alabilir. * Kurum abonelik ve kullanım durumlarını görebilir. * Sistem genelindeki ayarları yönetebilir. * Kurum verilerine erişim, ayrıca açık şekilde yetkilendirilmediği sürece sınırlandırılmalıdır. ### İK yöneticisi * Kendi kurumuna ait çalışanları yönetebilir. * Departman ve pozisyonları yönetebilir. * Çalışan özlük bilgilerini görüntüleyebilir ve güncelleyebilir. * Özlük alanları oluşturabilir. * Belge talep edebilir ve yüklenen belgeleri inceleyebilir. * İzin türlerini ve izin haklarını tanımlayabilir. * İzin taleplerini onaylayabilir veya reddedebilir. * Puantajları ve bordro bilgilerini yönetebilir. * Takvim kayıtlarını ve görevlendirmeleri yönetebilir. * Rapor alabilir. * Başka çalışanlara İK yöneticisi rolü verebilir. * Yetkileri dahilinde başka yönetici rolleri oluşturabilir. ### Birim/Departman yöneticisi * Yalnızca sorumlu olduğu çalışanları görüntüleyebilir. * Kendisine bağlı çalışanların izin taleplerini inceleyebilir. * Kurumun onay akışına göre izin taleplerini onaylayabilir. * Ekibinin takvimini ve yaklaşan izinlerini görebilir. ### Çalışan * Kendi profilini ve izin bakiyelerini görebilir. * İzin talebinde bulunabilir. * Kendi bordro ve puantaj kayıtlarını yetkisi varsa görebilir. * Kendisine atanmış belgeleri yükleyebilir. * Kurum takvimini görebilir. * Diğer çalışanların yalnızca kurum tarafından görünür olarak belirlenen iletişim bilgilerini görebilir. * Kendi bilgilerini, kurumun izin verdiği alanlarda güncelleyebilir. Yetki sistemi sabit rollerle sınırlı kalmamalıdır. İK yöneticisi özel roller oluşturabilmeli ve modül/işlem bazında görüntüleme, ekleme, düzenleme, silme, onaylama ve dışa aktarma yetkileri verebilmelidir. ## 6. Çalışan yönetimi Çalışan kaydında aşağıdaki temel alanlar bulunmalıdır: * Çalışan numarası * Ad * Soyad * Profil fotoğrafı * T.C. kimlik numarası veya yabancı kimlik numarası * Doğum tarihi * Cinsiyet * Medeni durum * Uyruk * Kişisel telefon * Kurumsal telefon * Kişisel e-posta * Kurumsal e-posta * Adres * Acil durumda aranacak kişi * Acil durum telefon numarası * İşe başlama tarihi * İşten ayrılma tarihi * Çalışma durumu * Çalışma şekli * Departman * Birim * Pozisyon * Bağlı olduğu yönetici * İşyeri veya şube * SGK bilgileri * Banka/IBAN bilgileri * Maaş bilgileri * Notlar Hassas alanlar yalnızca özel yetkiye sahip kullanıcılar tarafından görüntülenebilmelidir. Maaş, kimlik, banka ve sağlık bilgileri için alan bazlı yetkilendirme uygulanmalıdır. Çalışan listesinde: * Arama * Filtreleme * Sıralama * Sayfalama * Departmana göre filtre * Pozisyona göre filtre * Çalışma durumuna göre filtre * İşe giriş tarihine göre filtre * Excel/CSV dışa aktarma * Toplu içe aktarma * Toplu güncelleme özellikleri bulunmalıdır. ## 7. Departman ve pozisyon yönetimi İK yöneticisi: * Departman oluşturabilmeli. * Birim ve alt birim oluşturabilmeli. * Pozisyon tanımlayabilmeli. * Pozisyonu departmanla ilişkilendirebilmeli. * Pozisyon açıklaması ekleyebilmeli. * Pozisyona bağlı çalışanları görebilmeli. * Departman yöneticisi belirleyebilmeli. * Organizasyon şemasını görüntüleyebilmelidir. ## 8. Dinamik özlük alanları İK yöneticisi çalışanlardan görmek veya toplamak istediği özel alanları tanımlayabilmelidir. Desteklenecek alan tipleri: * Kısa metin * Uzun metin * Sayı * Ondalıklı sayı * Tarih * Tarih ve saat * Tekli seçim * Çoklu seçim * Evet/hayır * Dosya * Birden fazla dosya * Telefon * E-posta * URL Her özel alan için şu ayarlar yapılabilmelidir: * Alan adı * Açıklama * Alan tipi * Zorunlu olup olmadığı * Çalışan tarafından görüntülenip görüntülenemeyeceği * Çalışan tarafından güncellenip güncellenemeyeceği * Yalnızca İK tarafından görüntülenip görüntülenemeyeceği * Liste ekranında gösterilip gösterilmeyeceği * Belirli departman veya pozisyonlarda kullanılıp kullanılmayacağı * Dosya türü ve boyut kısıtlamaları ## 9. Belge yönetimi Çalışanlara ait aşağıdaki belgeler saklanabilmelidir: * İş sözleşmeleri * İmzalı formlar * Kimlik belgeleri * Diplomalar * Sertifikalar * Sağlık belgeleri * İzin belgeleri * Bordrolar * Kurum tarafından tanımlanan diğer belgeler Belge özellikleri: * Belge kategorileri tanımlanabilmeli. * Belge yükleme tarihi kaydedilmeli. * Belgeyi yükleyen kullanıcı kaydedilmeli. * Son geçerlilik tarihi tanımlanabilmeli. * Süresi yaklaşan belgeler için bildirim gönderilebilmeli. * Belgenin eski sürümleri korunabilmeli. * Yetkisiz kullanıcılar belge bağlantısını bilseler dahi dosyaya erişememeli. * İmzalı ve imzasız belge durumu takip edilebilmeli. * Çalışandan belge talep edilebilmeli. * Dosyalar virüs taramasına uygun bir yükleme sürecinden geçirilmelidir. ## 10. İzin yönetimi İK yöneticisi kurum bazında izin türleri oluşturabilmelidir. Örnek izin türleri: * Yıllık izin * Mazeret izni * İdari izin * Hastalık izni * Doğum izni * Babalık izni * Evlilik izni * Ölüm izni * Ücretsiz izin * Saatlik izin Her izin türü için: * İzin adı * Açıklama * Ücretli/ücretsiz bilgisi * Yıllık bakiyeden düşüp düşmediği * Gün veya saat bazında hesaplama * Hafta sonlarının izne dahil edilip edilmediği * Resmi tatillerin izne dahil edilip edilmediği * Belge zorunluluğu * Minimum ve maksimum süre * Kaç gün önceden talep edilebileceği * Geriye dönük talep izni * Kimlerin kullanabileceği * Onay akışı * Renk kodu tanımlanabilmelidir. İK yöneticisi çalışan bazında: * Yıllık izin hakkı tanımlayabilmeli. * Devreden izin ekleyebilmeli. * Manuel bakiye düzeltmesi yapabilmeli. * Hak ediş tarihi tanımlayabilmeli. * Kullanılmış, planlanmış ve kalan izinleri görebilmelidir. Tüm manuel izin bakiyesi değişikliklerinde açıklama zorunlu olmalı ve işlem geçmişi saklanmalıdır. ## 11. İzin talep süreci Çalışan izin talebi oluştururken aşağıdaki bilgileri girmelidir: * İzin türü * Başlangıç tarihi * Başlangıç saati * Bitiş tarihi * Bitiş saati * Tam gün, yarım gün veya saatlik izin seçimi * İzin açıklaması * Yerine bakacak kişi * İletişim bilgisi * Gerekliyse belge * Ek not Yerine bakacak kişi, kurumun aktif çalışanları arasından seçilmelidir. Seçilen kişiye bilgilendirme gönderilmelidir. Kurum ayarına göre yerine bakacak kişinin kabulü de onay sürecine eklenebilmelidir. Talep oluşturulduğunda: 1. Talep “Bekliyor” durumuna geçmelidir. 2. Kurumun onay akışına göre yöneticiye veya İK yöneticisine gönderilmelidir. 3. Onaylayacak kişilere uygulama içi ve e-posta bildirimi gönderilmelidir. 4. Talep onaylandığında takvime eklenmelidir. 5. İzin bakiyesi yalnızca nihai onaydan sonra düşürülmelidir. 6. Talep reddedilirse izin bakiyesi değişmemelidir. 7. Onaylanmış izin iptal edilirse kurum kuralına göre bakiye iade edilmelidir. 8. Tüm onay, ret ve iptal işlemleri tarih, kullanıcı ve açıklamayla kayıt altına alınmalıdır. Talep durumları: * Taslak * Bekliyor * Yerine bakacak kişinin onayı bekleniyor * Yönetici onayı bekleniyor * İK onayı bekleniyor * Onaylandı * Reddedildi * İptal talebi oluşturuldu * İptal edildi Çalışma günü ve izin süresi hesabı; kurumun hafta sonu, vardiya, resmi tatil ve izin türü kurallarına göre otomatik yapılmalıdır. ## 12. Puantaj yönetimi İK yöneticisi çalışanların aylık puantajlarını takvim üzerinden yönetebilmelidir. Her gün için şu durumlar seçilebilmelidir: * Tam gün çalıştı * Yarım gün çalıştı * Hafta tatili * Resmi tatil * Yıllık izin * Mazeret izni * Hastalık izni * İdari izin * Ücretsiz izin * Fazla mesai * Görevlendirme * Uzaktan çalışma * Devamsızlık * Eksik çalışma * Özel durum Her puantaj türüne kurum tarafından bir katsayı veya puan verilebilmelidir. Örnek: * Tam gün çalışma: 1 puan * Yarım gün çalışma: 0,5 puan * Puantaja dahil hafta tatili: 1 puan * Puantaja dahil resmi tatil: 1 puan * Ücretsiz izin: 0 puan * Devamsızlık: 0 puan Cumartesi veya pazar günü çalışmayan ancak ücretli puantaja dahil edilen çalışanlar için günün puanı kurum ayarına göre otomatik hesaplanmalıdır. Puantaj modülü: * Aylık takvim görünümü * Çalışan bazında görünüm * Departman bazında görünüm * Toplu durum atama * Tatilleri otomatik işleme * Onaylı izinleri otomatik işleme * Manuel düzeltme * Değişiklik geçmişi * Aylık puantaj kilitleme * Excel/CSV/PDF çıktısı * Toplam çalışma günü * Toplam izin günü * Toplam tatil günü * Eksik gün * Fazla mesai saati özelliklerini desteklemelidir. Kilitlenmiş puantaj yalnızca özel yetkiye sahip kullanıcı tarafından gerekçe belirtilerek tekrar açılabilmelidir. ## 13. Bordro yönetimi Bordro modülü, Türkiye’deki bordro süreçlerine uyarlanabilecek şekilde yapılandırılabilir olmalıdır. Ancak mevzuata bağlı oranlar kaynak koda sabit yazılmamalıdır. Bordro kaydında: * Brüt ücret * Net ücret * Prim * İkramiye * Fazla mesai * Yol yardımı * Yemek yardımı * Ek ödemeler * Kesintiler * Ücretsiz izin kesintisi * Eksik gün * Vergi * SGK kesintileri * Avans * BES kesintisi * Diğer gelir ve kesintiler bulunabilmelidir. Bordro özellikleri: * Aylık dönem oluşturma * Puantajdan veri alma * Çalışan bazında hesaplama * Toplu hesaplama * Manuel düzenleme * Hesaplama detaylarını gösterme * Taslak/onaylandı/kilitlendi durumları * PDF bordro oluşturma * Çalışanın kendi bordrosunu görüntülemesi * Yetkili kullanıcı tarafından bordro yayımlama * Bordro yayımlandığında çalışana bildirim gönderme * Excel dışa aktarma * Değişiklik ve erişim geçmişi Bordro hesaplama motoru servis tabanlı ve genişletilebilir hazırlanmalıdır. Güncel mevzuat oranları yönetim ekranından veya sürümlendirilmiş parametre tablolarından değiştirilebilmelidir. ## 14. Takvim Sistemde ortak bir kurum takvimi bulunmalıdır. Takvimde: * Onaylanmış izinler * Resmi tatiller * Görevlendirmeler * Doğum günleri * İşe başlama yıl dönümleri * Kurum etkinlikleri * Eğitimler * Toplantılar * Özel günler görüntülenebilmelidir. Takvim özellikleri: * Aylık görünüm * Haftalık görünüm * Günlük görünüm * Liste görünümü * Kategoriye göre renkler * Kategoriye göre filtreleme * Departmana göre filtreleme * Çalışana göre filtreleme * Yetkiye göre detay gizleme * Takvim kaydına tıklayarak detay görüntüleme Çalışanlar, diğer kişilerin izninin yalnızca gerekli bilgilerini görmelidir. İzin açıklaması, sağlık belgesi veya özel gerekçe gibi hassas bilgiler diğer çalışanlara gösterilmemelidir. ## 15. Ana ekran İK yöneticisi ana ekranında şu bilgiler bulunmalıdır: * Toplam aktif çalışan sayısı * Departmanlara göre çalışan dağılımı * Pozisyonlara göre çalışan dağılımı * Kadın/erkek/diğer dağılımı, kurum ayarına bağlı olarak * Bu ay işe başlayanlar * Bu ay işten ayrılanlar * Bugün izinli olanlar * Yaklaşan izinler * Bekleyen izin talepleri * Yaklaşan doğum günleri * Yaklaşan resmi tatiller * Süresi yaklaşan belgeler * Tamamlanmamış çalışan profilleri * Puantaj durumu * Bordro dönemi durumu * Hızlı işlem menüsü Çalışan ana ekranında: * Kalan izin bakiyesi * Bekleyen izin talepleri * Yaklaşan kendi izinleri * Bugün izinli olan çalışanlar * Yaklaşan çalışan izinleri * Yaklaşan doğum günleri * Yaklaşan resmi tatiller * Kurum duyuruları * Son yayımlanan bordro * Yüklenmesi gereken belgeler * Aylık takvim * Hızlı izin talebi oluşturma alanları bulunmalıdır. Dashboard kartları mobil cihazlarda düzgün sıralanmalı ve mümkünse kullanıcı bazında özelleştirilebilmelidir. ## 16. Çalışan rehberi Tüm aktif çalışanların görüntülenebildiği bir çalışan rehberi bulunmalıdır. Rehberde: * Profil fotoğrafı * Ad ve soyad * Pozisyon * Departman * Kurumsal e-posta * Kurumsal telefon * Çalışma konumu * İzin durumu * Bağlı olduğu yönetici görüntülenebilmelidir. Kişisel telefon, kişisel e-posta, adres, maaş, kimlik ve banka bilgileri çalışan rehberinde gösterilmemelidir. ## 17. Resmi tatiller ve çalışma takvimi Kurum: * Ülkeye göre resmi tatil takvimi seçebilmeli. * Resmi tatilleri manuel ekleyebilmeli. * Mevcut tatilleri düzenleyebilmeli. * Yarım gün tatil tanımlayabilmeli. * Kuruma özel tatil oluşturabilmeli. * Haftalık çalışma günlerini belirleyebilmeli. * Departman veya çalışan bazında farklı çalışma takvimi tanımlayabilmelidir. İzin ve puantaj hesaplamaları bu takvimi kullanmalıdır. ## 18. Bildirim sistemi Aşağıdaki olaylarda uygulama içi ve isteğe bağlı e-posta bildirimi oluştur: * Yeni izin talebi * İzin talebinin onaylanması * İzin talebinin reddedilmesi * Yerine bakacak kişi olarak atanma * İzin iptal talebi * Yeni belge talebi * Belge süresinin yaklaşması * Bordronun yayımlanması * Puantaj döneminin açılması veya kapanması * Yaklaşan doğum günü * Yaklaşan resmi tatil * Yeni görevlendirme * Kurum duyurusu Kullanıcılar bildirim tercihlerini profil ekranından yönetebilmelidir. ## 19. Raporlama İK yöneticisi aşağıdaki raporları alabilmelidir: * Çalışan listesi * Departman ve pozisyon dağılımı * İşe giriş ve işten çıkış raporu * İzin kullanım raporu * İzin bakiye raporu * Tarih aralığına göre izin raporu * Puantaj raporu * Fazla mesai raporu * Devamsızlık raporu * Bordro özet raporu * Eksik belge raporu * Süresi yaklaşan belge raporu * Doğum günü ve işe giriş yıl dönümü raporu Raporlar filtrelenebilmeli ve Excel, CSV veya PDF olarak dışa aktarılabilmelidir. ## 20. Denetim kaydı ve güvenlik Aşağıdaki işlemler audit log sisteminde kaydedilmelidir: * Kullanıcı girişleri * Başarısız giriş denemeleri * Çalışan kaydı oluşturma ve güncelleme * Rol ve yetki değişiklikleri * Özlük bilgisi değişiklikleri * Maaş ve banka bilgisi görüntüleme/değiştirme * Belge görüntüleme, indirme ve silme * İzin onay/ret işlemleri * İzin bakiye değişiklikleri * Puantaj değişiklikleri * Bordro oluşturma, düzenleme ve yayımlama * Rapor dışa aktarma Her log kaydında: * İşlemi yapan kullanıcı * Kurum * İşlem türü * Etkilenen kayıt * Eski değer * Yeni değer * Tarih ve saat * IP adresi * Kullanıcı cihazı bulunmalıdır. Güvenlik gereksinimleri: * CSRF koruması * XSS koruması * SQL injection koruması * Rate limiting * Güvenli parola politikası * Parola sıfırlama * İsteğe bağlı iki faktörlü doğrulama * Oturum zaman aşımı * Dosya erişim kontrolü * Hassas verilerin şifrelenmesi * Yetki kontrollerinin hem arayüz hem backend tarafında uygulanması * KVKK’ya uygun veri saklama ve silme süreçleri * Kullanıcı verisi dışa aktarma * Hesap ve çalışan verisi anonimleştirme * Yedekleme ve geri yükleme altyapısı ## 21. Arayüz tasarımı Tasarım sade, modern ve profesyonel olmalıdır. Ana yerleşim: * Sol tarafta açılır/kapanır menü * Üst tarafta kurum adı, hızlı arama, bildirimler, dil seçimi, tema seçimi ve kullanıcı menüsü * İçerikte kartlar, tablolar, grafikler ve takvim * Mobil görünümde alt menü veya hamburger menü * Formlarda anlaşılır açıklamalar ve doğrulama mesajları * Kritik işlemlerde onay penceresi * Başarılı ve başarısız işlemlerde toast bildirimleri * Uzun işlemlerde yükleniyor göstergesi * Veri olmayan ekranlarda açıklayıcı boş durum tasarımları Gündüz modu açık ve yumuşak renklerden; gece modu gözü yormayan koyu gri tonlardan oluşmalıdır. Kurumun ana rengi butonlarda ve vurgu alanlarında kullanılabilmelidir. Temel menü: * Ana Sayfa * Çalışanlar * Organizasyon * Takvim * İzinler * Puantaj * Bordro * Belgeler * Raporlar * Duyurular * Ayarlar Normal çalışanlar yalnızca yetkileri kapsamındaki menüleri görmelidir. ## 22. Temel veritabanı yapısı Aşağıdaki tabloları veya bunlara karşılık gelen modelleri planla: * organizations * organization_settings * users * employees * departments * units * positions * employee_managers * roles * permissions * role_user * custom_fields * custom_field_options * employee_custom_values * document_categories * employee_documents * leave_types * leave_policies * leave_entitlements * leave_balance_transactions * leave_requests * leave_approvals * work_calendars * work_calendar_days * public_holidays * assignments * timesheet_periods * timesheet_entries * attendance_types * payroll_periods * payrolls * payroll_items * announcements * notifications * audit_logs Soft delete gereken tablolarda `deleted_at`; kritik tablolarda `created_by` ve `updated_by` alanlarını kullan. Veritabanı ilişkilerini, indeksleri, unique constraint’leri ve foreign key yapılarını ayrıntılı tasarla. Para değerlerinde float kullanma; decimal kullan. Tarih ve saat kayıtlarını güvenli biçimde sakla ve kurum saat dilimine göre göster. ## 23. İş kuralları Aşağıdaki kuralları mutlaka uygula: * Bir çalışan aynı kurumda aynı e-posta veya çalışan numarasıyla tekrar oluşturulamamalıdır. * İzin bakiyesi yetersizse kurum politikasına göre talep engellenmeli veya uyarıyla onaya gönderilmelidir. * Çakışan izin talepleri tespit edilmelidir. * Başlangıç tarihi bitiş tarihinden sonra olamaz. * Saatlik izinlerde başlangıç saati bitiş saatinden önce olmalıdır. * İşten ayrılmış çalışan yeni izin talebi oluşturamamalıdır. * İzin bakiyesi yalnızca nihai onayda düşmelidir. * Reddedilen talep bakiyeyi etkilememelidir. * Onaylanan izin iptal edilirse ilgili bakiye hareketi ters kayıtla geri alınmalıdır. * Bakiye işlemleri doğrudan toplamı değiştirmek yerine hareket tablosuyla izlenmelidir. * Onaylı izinler puantaja otomatik yansımalıdır. * Puantaj kilitlendikten sonra normal kullanıcı değişiklik yapamamalıdır. * Bordro yayımlandıktan sonra değişiklik yapmak için yetkili kullanıcı ve gerekçe gerekmelidir. * Bir kullanıcı kendisine verilmemiş hassas alanları API üzerinden de görüntüleyememelidir. * İK yöneticisi rolü devredilirken işlemi yapan kullanıcı ve tarih kaydedilmelidir. ## 24. Testler Aşağıdakiler için otomatik testler yaz: * Kullanıcı girişi ve parola sıfırlama * Kurumlar arası veri izolasyonu * Rol ve yetki kontrolleri * Çalışan oluşturma ve güncelleme * Dinamik özlük alanları * Belge erişim yetkileri * İzin süresi hesaplama * Hafta sonu ve resmi tatil hesaplaması * Saatlik ve yarım günlük izin * İzin onay akışı * İzin bakiyesi düşme ve iade işlemleri * Puantaja otomatik izin aktarımı * Puantaj kilitleme * Bordro erişim yetkileri * Audit log oluşturulması * Türkçe ve İngilizce dil geçişi * Gündüz ve gece modu tercihi Testlerde en az iki farklı kurum oluşturarak bir kurum kullanıcısının diğer kurumun verisine hiçbir yöntemle erişemediğini doğrula. ## 25. Örnek veriler Demo ortamı için seed verileri oluştur: * Bir süper yönetici * İki farklı kurum * Her kurum için bir İK yöneticisi * Departman yöneticileri * Normal çalışanlar * Departmanlar ve pozisyonlar * Farklı izin türleri * İzin bakiyeleri * Bekleyen, onaylanan ve reddedilen izin talepleri * Resmi tatiller * Puantaj kayıtları * Örnek bordrolar * Çalışan belgeleri * Duyurular Demo kullanıcılarının giriş bilgilerini README dosyasında belirt. ## 26. Geliştirme yaklaşımı Projeyi tek seferde kontrolsüz biçimde üretme. Önce aşağıdaki çıktıları hazırla: 1. Gereksinim analizi ve varsayımlar 2. Modül listesi 3. Kullanıcı rolleri ve yetki matrisi 4. Veritabanı ER diyagramı 5. Ana ekranların kullanıcı akışları 6. Sistem mimarisi 7. Kurulum ve geliştirme planı 8. Riskler ve açık kararlar Ardından projeyi aşamalı olarak geliştir: ### Faz 1 – Temel altyapı * Laravel kurulumu * Kimlik doğrulama * Çok kurumlu yapı * Rol ve yetkiler * Türkçe/İngilizce desteği * Gündüz/gece modu * Kurum ayarları ### Faz 2 – Çalışan ve organizasyon * Çalışan yönetimi * Departmanlar * Pozisyonlar * Organizasyon şeması * Dinamik özlük alanları * Çalışan rehberi ### Faz 3 – Belgeler ve izinler * Belge yönetimi * İzin türleri * İzin bakiyeleri * İzin talep ve onay akışları * Takvim ### Faz 4 – Puantaj * Çalışma takvimleri * Resmi tatiller * Puantaj kayıtları * Toplu işlemler * Puantaj raporları ### Faz 5 – Bordro ve raporlama * Bordro dönemleri * Yapılandırılabilir hesaplama motoru * Bordro PDF’leri * Yönetim raporları * Excel/CSV dışa aktarma ### Faz 6 – Güvenlik ve kalite * Audit log * KVKK süreçleri * Otomatik testler * Performans iyileştirmeleri * Güvenlik kontrolleri * Yedekleme sistemi * Üretim ortamı kurulum dokümanı Her faz sonunda: * Yapılan işleri özetle. * Değiştirilen dosyaları listele. * Migration ve seed komutlarını belirt. * Testleri çalıştır ve sonuçlarını paylaş. * Bir sonraki faza geçmeden önce çalışan sürüm oluştur. * README dosyasını güncelle. ## 27. Teslimat kriterleri Proje tamamlandığında aşağıdakileri teslim et: * Çalışan kaynak kod * Migration dosyaları * Seeder ve factory dosyaları * Otomatik testler * API ve sistem dokümantasyonu * Kurulum kılavuzu * `.env.example` * Demo kullanıcıları * Yetki matrisi * Veritabanı diyagramı * Yedekleme talimatları * Production deployment talimatları * Cron, queue worker ve scheduler kurulum bilgileri Öncelikle kod yazmaya başlama. İlk cevapta gereksinim analizini, önerilen mimariyi, veri modelini, rol-yetki matrisini, ekran listesini ve açıklığa kavuşturulması gereken soruları sun. Varsayımlarını açıkça belirt ve daha sonra Faz 1’in uygulanmasını öner.