⚡
Zorluklar
- Geleneksel şifre olmadan kimlik doğrulama sistemi ihtiyacı (SMS ile giriş)
- Çok dilli içerik ve Celali tarihlerinin Miladi tarihlerle birlikte yönetimi
- Alışveriş sepeti yönetimi ve fiyat senkronizasyonunun karmaşıklığı
- Celali takvimli masa rezervasyon sistemi ihtiyacı
- Ulaşım ve çok şehirli yönetim
- Ödeme entegrasyonu ve sipariş takibi
💡
Çözümler
- Mobil numara ve SMS OTP tabanlı özel kimlik doğrulama sistemi kullanma
- AbstractUser'dan miras alan özel User modeli uygulama
- Celali ve Miladi tarih dönüşümü için persiantools kütüphanesini kullanma
- Veri yönetimi için Commodity, Cart, Reservation ve Transport modelleri tasarlama
- Sunucu ile sorunsuz iletişim için AJAX sistemi uygulama
- MySQL bağlantısı için pymysql kullanma
- Farklı erişim seviyeleriyle (yönetici, kullanıcı) özel yönetim paneli tasarlama
📚
Kazanımlar
- Eksiksiz ve operasyonel kafe yönetim sistemi
- Müşteriler ve yöneticiler için özel kullanıcı paneli
- Güvenli ve hızlı SMS kimlik doğrulama sistemi
- Ürünler, siparişler ve rezervasyonların tam yönetimi
- Tüm bölümlerde tam Celali takvim desteği
- Duyarlı ve mobil uyumlu tasarım
🔧
Teknik Öne Çıkanlar
- Django 5.0.1 ve Python 3
- pymysql ile MySQL veritabanı
- Özel User modeli (AUTH_USER_MODEL)
- Ghasedak API ile SMS tabanlı kimlik doğrulama
- persiantools ile Celali tarih dönüşümü
- JSON ile kapsamlı AJAX sistemi
- Çoklu Uygulama tasarımı (store_account, store_profile)
- Erişim seviyesi yönetimi (kullanıcı, yönetici, süper kullanıcı)
- Sayfalama için Paginator kullanımı
- Ürün görseli yükleme ve yönetimi
🏗️
Mimari
Cafe Negar, Django'nun MVT (Model-View-Template) mimarisi üzerine kurulmuştur ve iki ana uygulamadan oluşur:
1. store_account: Kullanıcı yönetimi, kimlik doğrulama ve kayıt işlemlerinden sorumlu
- mobile, access_level, user_image alanlarına sahip özel User modeli
- SMS ve şifre ile giriş sistemi
- Mobil numara doğrulamalı kayıt
2. store_profile: Profil, ürünler, siparişler yönetiminden sorumlu
- Ürünler için Commodity modeli
- Alışveriş sepeti için Cart modeli
- Masa rezervasyonu için Reservation modeli
- Şehir yönetimi için Transport modeli
Proje DEBUG modunda çalışır ve geliştirme için SQLite, üretim için MySQL kullanır.
📐
Proje Ölçeği
- 2 ana uygulama (store_account, store_profile)
- 8'den fazla veri modeli (User, Commodity, Cart, Reservation, Transport, ImageFile, Comments, Keyword)
- 15'ten fazla sayfa ve HTML şablonu
- 20'den fazla görünüm ve endpoint
- Eksiksiz SMS kimlik doğrulama sistemi
- Özel yönetim paneli
- Alışveriş sepeti ve sipariş sistemi
- Masa rezervasyon sistemi