Bu proje, bir SaaS platformunun finansal ve operasyonel metriklerini analiz edecek şekilde geliştirilmiş, Nesne Yönelimli Programlama (OOP) mimarisine sahip bir veri analitiği ve simülasyon projesidir.
Bu projenin amacı; Docker üzerinde izole bir SaaS veritabanı mimarisi kurarak, ham transaction verilerinden LAG() Window Fonksiyonu ile anlık finansal büyüme trendlerini hesaplayan, her katmanı Single Responsibility prensibine uygun ve Pytest ile otomatize edilmiş kurumsal bir analitik backend motoru geliştirmektir.
Note
Proje, Docker üzerinde koşan bir MySQL veritabanı ile entegre çalışır ve ham veriler içerisinden kurumsal düzeyde anlamlı içgörüler çıkarmak için İleri Düzey SQL (Window Functions, Complex Joins) konseptlerini kullanır.
Proje, Single Responsibility (Tek Sorumluluk) prensibine uygun olarak katmanlı bir mimaride tasarlanmıştır:
saas_analytics_project/
│
├── .gitignore # Geçici dosyaları filtreler
├── requirements.txt # Gerekli bağımlılıklar (pymysql, pytest)
├── README.md # Proje dökümantasyonu
│
├── init_db.py # Veritabanı şemasını kuran katman
├── veri_generator.py # Kullanıcı yaşam döngüsünü taklit eden mock veri motoru
├── analiz_servisi.py # LAG() ve Window Functions içeren SQL analiz katmanı
└── test_analiz.py # Pytest ile SQL çıktılarını doğrulayan test katmanı
---
🎯 Kullanılan İleri Düzey SQL ve Mimari Konseptler1. Veritabanı İlişkisel Bütünlüğü (Referential Integrity)init_db.py içinde tablolar oluşturulurken Foreign Key (Yabancı Anahtar) kısıtlamaları kullanılmıştır.ON DELETE CASCADE kuralı sayesinde, sistemden bir kullanıcı silindiğinde o kullanıcıya ait tüm abonelik ve ödeme geçmişi otomatik olarak temizlenir.2. LAG() Window Function (Analitik Pencere Fonksiyonları)SaaS şirketlerinin en kritik metriği olan MRR (Monthly Recurring Revenue) trendini ölçmek için LAG() fonksiyonu kullanılmıştır. Veritabanına ekstra yük bindirmeden tek bir sorguda, bulunulan ayın cirosunun hemen yanına bir önceki ayın cirosu getirilmiş ve finansal büyüme trendi hesaplanmıştır.
🧪 Test StratejisiProjede yer alan test_analiz.py dosyası, analiz servisinden dönen verilerin tip doğruluğunu ve mantıksal sınırlarını tam otomatize şekilde denetler.[!IMPORTANT]Testlerin başarıyla geçmesi, yazılan gelişmiş SQL sorgularının yapısal olarak bozulmadığının en büyük kanıtıdır.