Skip to content

Repository files navigation

📊 SaaS Analytics & Advanced SQL Simulation Project

Python MySQL Docker Pytest

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 Mimarisi ve Dosya Yapısı (Tree)

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.

About

Docker MySQL üzerinde çalışan, LAG() Window fonksiyonu ile ham verilerden anlık SaaS MRR büyüme trendlerini hesaplayan ve Pytest ile şema doğruluğu test edilmiş kurumsal backend analitik motoru. 📊🐳🧪

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages