Proforma SaaS’i Sıfırdan Geliştirme Süreci
Bir Teklif ve Proforma Yönetim Platformunun Uçtan Uca Yolculuğu
Giriş
Teklif ve proforma süreçleri, birçok firmada hâlâ Word, Excel ve manuel e-posta zincirleri üzerinden yürütülüyor. Bu durum; versiyon karmaşası, tasarım tutarsızlığı, arşiv sorunları ve operasyonel verimsizlik doğuruyor.
Bu yazıda; Proforma SaaS adını verdiğim, çok kiracılı (multi-tenant) bir teklif–proforma yönetim platformunu fikrin doğuşundan canlıya alım sürecine kadar nasıl tasarladığımı ve geliştirdiğimi adım adım anlatıyorum.
1. Problemin Tanımlanması ve İhtiyaç Analizi
Projeye başlamadan önce netleştirdiğim temel problemler:
- Tekliflerin manuel hazırlanması
- Kurumsal tasarım standardının olmaması
- Tekliflerin izlenememesi (kim, ne zaman, hangi versiyon)
- Geçerlilik süresi ve revizyon kontrolünün yapılamaması
- Firma bazlı ayrışmanın olmaması
Bu problemlerden yola çıkarak şu hedefleri belirledim:
- Tekliflerin dijital ortamda standartlaştırılması
- Firma bazlı izole veri yapısı
- Tema bazlı, kurumsal sunum
- Ölçeklenebilir ve entegrasyona açık mimari

2. Ürün Kapsamının Belirlenmesi (Scope)
İlk faz için ürün kapsamını bilinçli olarak sınırlı tuttum:
Kapsama alınanlar
- Satış teklifi
- Tedarik teklifi
- Tema seçimi
- Teklif önizleme
- Firma ve kullanıcı yönetimi
- Kullanıcı izin yönetimi
İleri faza bırakılanlar
- E-imza
- PDF servisleri
- E-fatura entegrasyonu
- ERP bağlantıları
Bu yaklaşım, ürünü hızlıca ayağa kaldırmamı sağladı.
3. Mimari Tasarım ve Teknoloji Seçimi
Backend
- Django
- Class-Based Views
- Service Layer yaklaşımı
- Modüler uygulama yapısı
Frontend
- Django Template Engine
- Bootstrap 5
- Component bazlı yapı
Veritabanı
- Geliştirme: SQLite
- Prodüksiyon: PostgreSQL
Sunucu
- Ubuntu
- Nginx
- UWSGI
- AWS EC2
- AWS Route53
Bu teknoloji seti; hızlı geliştirme, güvenlik ve bakım kolaylığı sağladı.
4. Çok Kiracılı (Multi-Tenant) Yapının Kurulması
Sistemin temel taşı Company (Firma) modelidir.
Tüm kritik tablolar firma ile ilişkilidir:
- Users
- Offers
- Notifications
- Themes
Bu sayede:
- Firmalar birbirinin verisini göremez
- SaaS modeli doğal olarak desteklenir
- Yetkilendirme sadeleşir

5. Teklif Modelinin Tasarlanması
Teklif yapısını modüler kurdum:
- Offer (ana kayıt)
- OfferItem (kalemler)
- OfferType (satış / tedarik)
- OfferTheme (tasarım)
Her teklif:
- Benzersiz teklif numarası
- Geçerlilik süresi
- KDV dahil/hariç yapı
- Dinamik kalemler içerir
Bu yapı, ileride fatura ve sipariş modüllerine dönüşebilecek esnekliği sağlar.


6. Tema ve Kurumsal Tasarım Altyapısı
Tekliflerin profesyonel algısı için tema sistemini kritik gördüm.
- Bootstrap tabanlı temalar
- Primary renk odaklı kurumsal tasarım
- Beyaz zemin, okunabilir tipografi
- Aynı teklif, farklı temalarla sunulabilir
Bu yapı, müşteriye özel sunum imkânı verir.

7. Teklif Önizleme ve İçerik Yönetimi
Teklif önizleme ekranı:
- Gerçek baskı düzenine yakın
- Hizmet şartları alanı
- Müşteri tarafından doldurulacak alanlar
- Kapanış metni (teşekkür, saygılarımızla vb.)
Bu alanların tamamı dinamik ve yönetilebilir şekilde tasarlandı.

8. Bildirim ve Sistem Olayları
Sistemde gerçekleşen önemli aksiyonlar kayıt altına alınıyor:
- Teklif oluşturma
- Güncelleme
- Entegrasyon olayları
Bildirim altyapısı ileride:
- E-posta
- Dashboard bildirimleri
- Push notification
için hazır durumda.

9. Güvenlik ve Yetkilendirme
Dikkat edilen başlıca noktalar:
- Firma bazlı erişim kontrolü
- Teklif URL’lerinde yetki doğrulaması
- Django CSRF korumaları
- Yetkisiz erişimlerin engellenmesi
SaaS projelerde güvenlik, özellikten önce gelir.
10. Canlıya Alım (Deployment)
- Nginx reverse proxy
- UWSGuygulama sunucusu
- Ortam değişkenleriyle yapılandırma
- Log ve hata takibi
Bu aşamada hedef:
Stabil, sürdürülebilir ve izlenebilir bir sistem oluşturmaktı.
11. Kazanımlar ve Öğrenimler
Bu proje sayesinde:
- SaaS mimarisi pratiği
- Multi-tenant veri tasarımı
- Ürün odaklı geliştirme yaklaşımı
- Gerçek iş problemlerine çözüm üretme
konularında ciddi deneyim kazandım.
12. Sonuç
Proforma SaaS; teklif ve proforma süreçlerini dijitalleştiren, kurumsal sunumu standartlaştıran ve ölçeklenebilir şekilde tasarlanan bir platformdur.
Bu proje, sadece bir yazılım değil; ürün düşüncesiyle inşa edilmiş bir SaaS deneyimidir.
Kapanış
Bu yazıyı;
- benzer bir SaaS geliştirmek isteyenler,
- Django ile ürün geliştirenler,
- teklif/proforma süreçlerini dijitalleştirmek isteyen firmalar
için yol gösterici bir referans olarak paylaşıyorum.