Vaka Çalışması
Proje Vaka Çalışması
Zorluklar, çözümler, kazanımlar, teknik öne çıkanlar, mimari ve proje ölçeği.
⚡
Zorluklar
1. Yönetici, müdür, pazarlamacı, avukat ve normal kullanıcı için farklı erişim seviyeleriyle çok rollü mimarinin uygulanması.
2. Satın alma anında her rol için otomatik hesaplamalı cüzdan ve gelir sistemi tasarımı.
3. Her mal sahibi için ayrı stok yönetimi (her kullanıcının kendi stoğu vardır).
4. ZarinPal ödeme geçidinin farklı roller arasında otomatik kâr dağıtımıyla entegrasyonu.
5. Kullanıcılar için SMS OTP giriş sisteminin uygulanması.
6. Her rol için farklı yeteneklere sahip özel yönetim panellerinin tasarlanması.
7. Çok bölümlü içerik yönetimi (makaleler, sorular, hukuki deneyimler, videolar) ile Seo modelinde birleşik yapı.
8. Kullanıcı ve avukat arasında sohbet benzeri danışmanlık sisteminin uygulanması.
💡
Çözümler
1. Erişim kontrolü için ayrı boolean alanları (admin_access, manager_access, agent_access, response_access) ile CustomUser oluşturma.
2. ZarinPal verify fonksiyonunda pazarlamacı ve ürün sahibi kârının otomatik hesaplanması ve cüzdana yatırılması.
3. Her kullanıcıya özel stok için Owners modeli oluşturma ve ürünlerle ManyToMany ilişkisi.
4. Geçitten dönüş ve sepet güncellemesi için dinamik Callback URL kullanımı.
5. SMS gönderimi için ghasedak hizmeti ve rastgele kodun random_pass alanında saklanması.
6. Erişim alanlarına göre farklı menülere sahip role özel panel şablonları tasarlama.
7. İçerik yönetimi için type alanı (articles/questions/experiences/video) olan tek bir Seo modeli kullanma.
8. Kullanıcı-avukat sohbeti için Counseling ve Conversation modelleri oluşturma.
📚
Kazanımlar
- 5 farklı rolle eksiksiz bir e-ticaret ekosistemi oluşturma.
- Çok seviyeli pazarlama sistemiyle gelir artışı.
- Tek panelde birleşik içerik ve ürün yönetimi.
- Kâr hesaplaması ve cüzdana yatırmanın tam otomasyonu.
- Çevrimiçi danışmanlık sistemiyle destek maliyetlerinin azaltılması.
- Hızlı SMS girişiyle dönüşüm oranının artırılması.
🔧
Teknik Öne Çıkanlar
- AbstractUser'dan miras alan ve 10+ özel alana sahip CustomUser kullanımı.
- Miladi'den Jalali'ye tarih dönüşümü için persiantools kullanımı.
- SMS gönderimi için ghasedak paketi kullanımı.
- Tüm sepet ve panel işlemleri için AJAX uygulanması.
- Erişim kontrolü için DRF İzinleri kullanımı.
- Timestamp ve ID tabanlı isimlendirme ile güvenli dosya yükleme yönetimi.
- MySQL bağlantısı için pymysql kullanımı.
🏗️
Mimari
Proje, Django'nun MVT mimarisi üzerine kurulmuştur ve 7 ana uygulamadan oluşur:
1. account: Kullanıcı yönetimi ve SMS kimlik doğrulama.
2. site_profile: Kullanıcı paneli, kontrol paneli, yöneticiler ve danışmanlıklar.
3. seo: Makaleler, sorular, hukuki deneyimler ve videolar yönetimi.
4. product: Ürünler, markalar, kategoriler, stok ve varyasyonlar yönetimi.
5. cart: Alışveriş sepeti ve sipariş yönetimi.
6. zarinpal: Ödeme geçidi entegrasyonu.
7. marketing: Pazarlamacı para çekme talepleri yönetimi.
Uygulamalar ForeignKey ve ManyToMany ile iletişim kurar ve ortak bir CustomUser paylaşır.
📐
Proje Ölçeği
Proje, 7 bağımsız uygulamaya sahip büyük ölçekli bir uygulama düzeyinde tasarlanmıştır. Şu anda SQLite kullanmaktadır ancak üretim için MySQL'e yükseltilmiştir. Kod tabanı 5.000 satırın üzerinde Python ve 50'den fazla HTML şablonu içerir.