Skip to content

ferhatolmez/LohusaVeBebekLaravel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Laravel 12 PHP 8.2 Sanctum Pest Docker MIT



🏥 Lohusa & Bebek İzlem Platformu

Doğum sonrası anne ve bebek takibini tek çatı altında toplayan, klinik akışına göre tasarlanmış modern, güvenli ve kapsamlı sağlık yönetim sistemi.


Kurulum · Mimari · API · Testler



📋 İçindekiler


💡 Proje Hakkında

Doğum sonrası dönem, hem anne hem bebek için kritik bir süreçtir. Geleneksel kliniklerde bu süreç genellikle kağıt formlar veya basit e-tablolar ile yönetilmektedir.

Lohusa & Bebek İzlem Platformu, ebe ve klinisyenlerin bu hassas süreci dijital, entegre, ölçülebilir ve son derece güvenli bir biçimde yönetmesini sağlar. Sektör standartlarında Laravel mimarisi kullanılarak inşa edilmiş olan uygulama, sadece bir veri giriş aracı değil; riskleri öngören, hasta durumunu analiz eden ve kliniğe bütüncül bir bakış açısı sunan bir asistan görevi görür.


✨ Öne Çıkan Özellikler

Kategori Özellik Detay
Klinik Analiz Hasta Risk Skoru Hayati bulgular (ateş, tansiyon) ve psikolojik faktörlere göre otomatik risk (Düşük/Orta/Yüksek) hesaplama
İş Akışı Çok Adımlı Form Sihirbazı 16 adımlık parçalı kayıt akışı (klinik → fiziksel muayene → sosyal durumlar)
Görselleştirme Dinamik Dashboard Chart.js destekli aylık kayıt trendi, termin ve beslenme dağılımları, hızlı özet metrikler
Yönetim Admin ve Kullanıcı Paneli Yöneticiler için takım yönetimi (Ebe, Öğrenci), rol atama, profil ve şifre güncellemeleri
UX & UI Dark Mode & Kısayollar Göz yormayan yerel depolamalı Karanlık Tema, güç-kullanıcıları için klavye kısayolları (N, B, ?)
Güvenlik Role-Based Access Control Spatie Permission altyapısı ile admin, ebe ve student rolleriyle form okuma/yazma kısıtlamaları
Dışa Aktarım CSV ve PDF Çıktı Formların detaylı PDF'ini oluşturma (DomPDF) veya toplu listeleri CSV formatında indirebilme
Altyapı İleri Backend Patternleri Observer, Event/Listener, Type-Safe Enums, Soft Deletes, Rate Limiting gibi sektör pratikleri

🔧 Sistem Mimarisi ve Backend Örüntüleri

Bu proje, ölçeklenebilir ve test edilebilir modern bir Laravel uygulamasının nasıl tasarlanması gerektiğini göstermek üzere en güncel yazılım örüntüleri (Software Patterns) ile kodlanmıştır:

  • Repository & Service Pattern: İş mantığı (Service) ve veri tabanı erişimi (Repository) Controller'lardan tamamen ayrıştırılarak SOLID prensiplerine uygun mimari sağlanmıştır.
  • Observer Pattern: Modeller üzerindeki (Lohusa, Bebek) oluşturma, güncelleme ve silme eylemleri ActivityLog modeli vasıtasıyla eşzamanlı olarak veritabanına loglanır.
  • Event-Driven Architecture (Event/Listener): FormCreated olayı fırlatılarak sisteme eklenen yeni formların loglama işlemleri loosely coupled (gevşek bağlı) şekilde LogFormCreation dinleyicisi ile gerçekleşir.
  • Type-Safe Enums (PHP 8.1+): Rol yönetimi ve takip durumları, hatalı veri girişini önlemek ve state mantığını düzenlemek için App\Enums altında (renk, ikon metotları dahil) yapılandırılmıştır.
  • Soft Deletes: Klinik hasta verilerinin kalıcı olarak yok edilmesini engellemek için deleted_at mekanizması devreye alınmıştır.
  • API Rate Limiting: Servislere yönelik brute force saldırılarını önlemek adına AppServiceProvider üzerinden yapılandırılan dakikada 60 istekle sınırlı bir throttle tanımlanmıştır.
  • Health Check Endpoint (/api/health): Sunucu ve DB durumunu izleyen (Monitoring) üretim ortamlarına hazır sağlık test noktası oluşturulmuştur.
  • Artisan Console Commands: Sistem yöneticilerinin takip durumlarını görebilmesi için php artisan report:daily terminal komutu entegre edilmiştir.
┌──────────────────────────────────────────────────────────────────┐
│                         İSTEK AKIŞI                              │
├──────────────────────┬───────────────────────────────────────────┤
│     Web Arayüzü      │           API v1 / Sanctum                │
│   (Blade + BS5 +     │        (Token tabanlı erişim)             │
│    Glassmorphism)     │                                          │
└─────────┬────────────┴──────────────────┬────────────────────────┘
          │                               │
          ▼                               ▼
┌──────────────────────────────────────────────────────────────────┐
│                Web & API Controller Katmanı                      │
│          Policy · Permission · Middleware · Auth                  │
└──────────────────────────────────────────────────────────────────┘
                          │
                          ▼
┌──────────────────────────────────────────────────────────────────┐
│                      Service Katmanı                             │
│         İş mantığı · Validasyon · Hesaplama motoru               │
└──────────────────────────────────────────────────────────────────┘
                          │
                          ▼
┌──────────────────────────────────────────────────────────────────┐
│                    Repository Katmanı                             │
│            Veri erişimi · Sorgular · Eloquent ORM                │
└──────────────────────────────────────────────────────────────────┘

🛠 Teknoloji Yığını

Katman Teknoloji
Backend PHP 8.2 + Laravel 12
API Güvenliği Laravel Sanctum
Yetkilendirme Spatie Laravel Permission
PDF & Raporlama Barryvdh DomPDF, League CSV
Test Pest Framework (Feature, Unit)
Frontend Blade, Bootstrap 5, Chart.js, Lucide Icons
Tema Özellikleri Glassmorphism, Native Dark Mode, Custom CSS Variables
Veritabanı MySQL / SQLite

📦 Modüller

📊 Dashboard & Analitik
- Aktif ve toplam form sayılarının üst seviye özeti.
- Chart.js Entegrasyonu: 6 aylık kayıt trend çubukları, yenidoğan bebek termin (zamanında/erken) dağılım pasta grafiği ve beslenme istatistiği.
- Bugün ve bu hafta için aciliyet rengine göre sınıflandırılmış Takip Uyarıları.
🤱 Lohusa İzlem Modülü
- Çok adımlı form üzerinden anneye ait fizyolojik bulguların girilmesi.
- `RiskCalculator` sınıfı ile annenin ateşi, tansiyonu veya psikolojik durumuna dayanarak "Düşük/Orta/Yüksek" risk seviyelerinin otomatik saptanması.
- Tarayıcı kapanmasına kalsı veri kaybını önleyen "Taslak Kaydetme" (LocalStorage).
- PDF Rapor ve Excel/CSV indirme.
👶 Bebek İzlem Modülü
- Genişletilmiş muayene adımları (cilt, baş, göbek kordonu vs.)
- Yenidoğanın doğum yeri, termin durumu ve beslenme modeline yönelik takibi.
- Düzenleme (Update) desteği.
- CSV olarak dışarı aktarım seçenekleri.
👥 Kullanıcı & Profil Yönetimi
- Profilim: Her kullanıcının e-postasını ve şifresini güvenle güncelleyebileceği sayfa.
- Admin Paneli: Sistem yetkililerinin hesapları izlediği, yeni ebe veya öğrenci hesapları yaratıp silebildiği `UserController` tabanlı yönetim alanı.

🚀 Kurulum

Ön Koşullar

  • PHP ≥ 8.2 (pdo_sqlite uzantısı testler için gerekli)
  • Composer
  • Node.js ≥ 18 + npm
  • MySQL veya SQLite bağlantısı

Adım Adım Kurulum

# 1. Projeyi klonlayın
git clone https://github.com/ferhatolmez/LohusaVeBebekLaravel.git
cd LohusaVeBebekLaravel

# 2. Bağımlılıkları yükleyin
composer install
npm install
npm run build

# 3. Çevre değişkenlerini ayarlayın
cp .env.example .env
php artisan key:generate

# 4. Veritabanını yapılandırın (SQLite varsayılan yapılabilir veya MySQL bilgilerinizi .env'ye girin)
php artisan migrate:fresh --seed

# 5. Sunucuyu başlatın
php artisan serve

👩‍⚕️ Kullanıma Başlama

Sunucu çalışırken varsayılan admin hesabıyla panele girebilirsiniz (migration'da seed edilmişse). Aksi takdirde, Laravel Tinker üzerinden ilk ana kullanıcı hesabınızı şu şekilde oluşturabilirsiniz:

php artisan tinker
$user = App\Models\User::create(['name' => 'Sistem Yöneticisi', 'email' => 'admin@clinic.com', 'password' => bcrypt('password123')]);
$user->assignRole('admin');

Bu bilgilerle giriş yaptıktan sonra:

  1. Sağ üst menüden Kullanıcı Yönetimi'ne gidip kliniğinizdeki diğer kişileri (Ebe, Öğrenci) oluşturun.
  2. Ana ekrandan veya klavyeden N tuşuna basarak ilk Lohusa kaydını yaratın.

🔌 API Kullanımı

Sistemin sunduğu RESTful JSON API altyapısı mevcuttur. İstek yapmak için token gereklidir.

  1. Token Alma: POST /api/v1/tokens/create (email ve password ile)
  2. Kayıt Listeleme: GET /api/v1/lohusa?page=1 (Header: Authorization: Bearer <token>)
  3. Sistem Durumu: GET /api/health

Tüm API yanıtları JsonResource üzerinden düzenli formatta (data/meta) dönmektedir ve Rate Limiting ile limitlenmiştir.


🧪 Test & Kalite

Proje, iş mantığının hiç kırılmadığından emin olmak için Pest PHP framework'ü kullanılarak yazılmış kapsamlı test paketlerine sahiptir.

# Tüm test senaryolarını çalıştırmak için
php artisan test

Testler in-memory SQLite kullanarak çalışır (Test sırasında veritabanına zarar gelmez):

  • LohusaFormTest — Erişilebilirlik, yaratma ve PDF indirme işlemleri
  • BebekFormTest — Validasyonlar, düzenleme ve listeleme testleri
  • DashboardTest — Rollerin doğru veriyi görüp görmediği

Lohusa & Bebek İzlem Platformu · 2026

About

Lohusa ve yenidoğan bebek izlem formları için, Laravel 12 tabanlı klinik takip ve PDF raporlama uygulaması.(giriş: e-posta:ebe@example.com, şifre:password)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages