MRPYWEB

Web Sitesi, Web Uygulamaları ve İş Sistemleri Geliştirme
Portföylere Geri Dön
وب‌سایت فروشگاهی چندفروشندگی و سیستم نوبت‌دهی آنلاین مهدیس

Mahdis Çok Satıcılı E-Ticaret ve Online Randevu Sistemi

"Mahdis" web sitesi, güzellik ve kozmetik sektöründe hizmet sunmak amacıyla tasarlanmış ve geliştirilmiş kapsamlı bir çevrimiçi platformdur. Site, iki ana hizmeti tek bir birleşik platformda bir araya getirir: her satıc…

Genel Bakış

Proje Hakkında

"Mahdis" web sitesi, güzellik ve kozmetik sektöründe hizmet sunmak amacıyla tasarlanmış ve geliştirilmiş kapsamlı bir çevrimiçi platformdur. Site, iki ana hizmeti tek bir birleşik platformda bir araya getirir: her satıcı için özel panele sahip Çok Satıcılı (Multi-Vendor) kozmetik ve hijyen ürünleri çevrimiçi mağazası ve kuaförler için çevrimiçi randevu sistemi ile zaman yönetimi, fiyat listeleri ve müşteriler tarafından randevu rezervasyonu imkânı.

Proje Django 4.2, MySQL ve Bootstrap 5 (RTL) ile geliştirilmiş olup 10 modüler uygulama ve 50'den fazla özel sayfa içermektedir. Sistem, Ghasedak hizmeti üzerinden OTP tabanlı SMS doğrulama ile 5 farklı erişim seviyesine (Süper Yönetici, Satıcı, Kuaför, Yanıtlayıcı ve Normal Kullanıcı) sahiptir.

Sepehr ve ZarinPal ödeme geçitleri tamamen entegre edilmiş olup çevrimiçi ödeme ve işlem yönetimi sağlanmaktadır. Diğer özellikler arasında cüzdan ve para çekme talebi sistemi, çevrimiçi/telefonla/yüz yüze danışmanlık sistemi, makaleler, SSS'ler, videolar ve kullanıcı deneyimleriyle SEO bölümü ve yönetim raporlaması için Excel dışa aktarma yer almaktadır.

Mimari modüler ve ölçeklenebilir olarak tasarlanmış olup CSRF Koruması, XSS Önleme ve SQL Enjeksiyonu Önleme gibi güvenlik ilkeleri tüm bölümlerde uygulanmaktadır. Kapsamlı yönetim paneli, yöneticilere kullanıcılar, mağazalar, kuaförler, siparişler, ürünler ve mali raporlar üzerinde tam kontrol sağlar.

Proje şu anda mahdiss.com adresinde çevrimiçi ve aktif olarak halka açıktır.

Vaka Çalışması

Proje Vaka Çalışması

Zorluklar, çözümler, kazanımlar, teknik öne çıkanlar, mimari ve proje ölçeği.

⚡

Zorluklar

Bağımsız iki hizmeti — bir mağaza ve bir randevu sistemi — tek bir birleşik platformda birleştirmek, paylaşılan bir User modeli ile modüler bir mimari gerektirdi. Çok Satıcılı (Multi-Vendor) modelde renk, beden ve koku çeşitliliğiyle karmaşık envanter yönetimi, her kombinasyon için bağımsız bir Owners modeli tasarlanarak çözüldü.

Farklı yapılara sahip iki ödeme geçidinin — Sepehr ve ZarinPal — eşzamanlı olarak entegre edilmesi, bağımsız bir Service Layer (Hizmet Katmanı) ve özel Callback yönetimi aracılığıyla gerçekleştirildi. Tüm bölümlerde Fars takvimi (Hicri Şemsi) desteği, persiantools kütüphaneleri ve çift kayıt (Miladi + Şemsi) yöntemiyle tam olarak sağlandı.

Ghasedak servisi üzerinden OTP tabanlı SMS doğrulama sistemi ve Boolean alanları kullanılarak 5 erişim seviyesinin yönetimi ile her görünümde (View) hassas izin kontrolü, gerekli güvenliği ve esnekliği sağladı. Ayrıca 3 bağımsız Layout (Panel, Site, SEO) tasarımı ve 4 farklı içerik türünün (Makale, Soru, Video, Deneyim) type alanı kullanılarak tek bir modelde yönetilmesi, projenin diğer önemli zorlukları arasındaydı.

Finansal işlem güvenliği, takip kodunun tekrarlanıp tekrarlanmadığının kontrol edilmesi, InvoiceID için UUID kullanılması ve Advice aşamasında tutarın eşleştirilmesiyle sağlandı. Ölçeklenebilirlik ise sorgu optimizasyonu, select_related kullanımı ve sık tekrarlanan sonuçların önbelleğe alınmasıyla elde edildi.

💡

Çözümler

Proje, 10 bağımsız Django uygulaması içeren modüler bir mimari üzerine kurulmuştur ve User modeli tüm hizmetler arasında merkezi bağlantı noktası olarak hizmet eder. Kimlik doğrulama sistemi, Ghasedak servisi üzerinden 4 haneli OTP SMS kullanılarak uygulanmış ve kod random_pass alanında saklanmaktadır.

5 erişim seviyesinin yönetimi, User modelindeki Boolean alanları aracılığıyla ve her görünümün (View) başında hassas izin kontrolüyle gerçekleştirilir. Tüm görünümler, kod bakımını kolaylaştıran @login_required + is_ajax() + i=action_name parametresi + JsonResponse şeklindeki birleşik bir deseni takip eder.

Çok Satıcılı (Multi-Vendor) moddaki ürün envanteri, owner_id, color, size ve scent alanlarına sahip Owners modeli aracılığıyla her kombinasyon için bağımsız olarak yönetilir. Sepehr ve ZarinPal ödeme geçitleri, bağımsız Service Layer'lar, Session yönetimi, Advice doğrulaması ve tutar eşleştirme kontrolüyle uygulanmıştır.

Fars takvimi (Hicri Şemsi) desteği, persiantools kütüphaneleri kullanılarak jalil_record_data alanında çift kayıt (Miladi + Şemsi) yöntemiyle sağlanır. Otomatik SMS sistemi, her senaryo için (kayıt, giriş, sipariş, para yatırma) bağımsız fonksiyonlar ve myclass.py içinde dinamik şablonlarla tasarlanmıştır.

Çok adımlı konuşma tabanlı danışmanlık sistemi, Counseling modeli ve Conversation ile ManyToMany bağlantısı kullanılarak dosya yükleme, konuşmayı sürdürme ve otomatik arşivleme imkânı sunar. SEO sistemi, tek bir Seo modeli ve type alanı (Makale, Soru, Deneyim, Video) ile türe özel alanlar kullanarak içerik yönetimini bütünleştirir.

Üç özel Layout (shared_panel, shared_index, shared_seo) ve paylaşılan bileşenler, kod tekrarı olmadan görsel çeşitlilik sağlar. Finansal güvenlik, InvoiceID için UUID, takip kodunun tekrarlanıp tekrarlanmadığının kontrolü ve Advice aşamasında tutar eşleştirmesiyle sağlanmıştır.

📚

Kazanımlar

Mahdis projesi tamamen hayata geçirilmiş ve şu anda mahdiss.com adresinde çevrimiçi olarak hizmet vermektedir; kozmetik perakendeciliği ve kuaför randevu hizmetlerini tek bir entegre platformda sunar. Proje, 10 modüler Django uygulaması, 50'den fazla özel sayfa, 25+ veri modeli ve 5 kullanıcı erişim seviyesi içermekte olup 3 farklı Layout üzerinde uygulanmıştır.

Teknik açıdan, iki güvenilir ödeme geçidi (Sepehr ve ZarinPal) başarıyla entegre edilmiş, OTP tabanlı SMS doğrulama sistemi aktif hale getirilmiş ve cüzdan, çevrimiçi danışmanlık, SEO, Excel raporlama ve otomatik SMS gibi özellikler tam olarak uygulanmıştır. Sistem güvenliği, tüm bölümlerde CSRF Koruması, XSS Önleme ve SQL Enjeksiyonu Önleme ilkelerine bağlı kalınarak sağlanmıştır.

Projenin mimarisi modüler ve ölçeklenebilir olacak şekilde tasarlanmış olup gelecekteki özelliklerin geliştirilmesini kolaylaştırmaktadır. Bu proje, iki bağımsız hizmetin entegrasyonu, Çok Satıcılı (Multi-Vendor) envanter yönetimi ve iki ödeme geçidinin eşzamanlı işlenmesi gibi karmaşık zorlukların üstesinden başarıyla gelmiş ve sonuçta üretime hazır bir ürüne dönüşmüştür.

🔧

Teknik Öne Çıkanlar

Mahdis projesi, Django 4.2.6 (LTS) üzerine MySQL veritabanı ve Bootstrap 5 (RTL) kullanıcı arayüzü ile inşa edilmiş olup 10 bağımsız uygulamadan oluşan modüler bir mimari kullanmaktadır. Tüm görünümler (View), geliştirme ve bakımı kolaylaştıran @login_required + is_ajax() + i=action_name parametresi + JsonResponse şeklindeki birleşik bir deseni takip eder.

Kimlik doğrulama sistemi, Ghasedak servisi üzerinden SMS OTP tabanlıdır ve kod random_pass alanında saklanır. Erişim yönetimi ise her görünümün başında 5 Boolean Flag seviyesi (admin_access, shop_access, barber_access, response_access, is_superuser) kullanılarak kontrol edilir. Sepehr ödeme geçidi (GetToken/Advice/Session ile) ve ZarinPal (Authority/Verify ile) her biri bağımsız Service Layer içinde uygulanmıştır.

Fars takvimi (Hicri Şemsi) desteği, persiantools ve django-jalali kütüphaneleri kullanılarak jalil_record_data alanında çift kayıt (Miladi + Şemsi) yöntemiyle sağlanır. Otomatik SMS sistemi, her senaryo için (kayıt, giriş, sipariş, para yatırma) myclass.py içinde bağımsız fonksiyonlar ve dinamik şablonlarla tasarlanmıştır.

SEO bölümünde, tek bir Seo modeli ve type alanı kullanılarak dört içerik türü (Makale, Soru, Deneyim, Video) ayırt edilir ve türe özel alanlar (dava sonucu, video_id, il, şehir) koşullu olarak uygulanır. Üç özel Layout (shared_panel, shared_index, shared_seo) ve paylaşılan bileşenler, kod tekrarı olmadan görsel çeşitlilik sağlar.

Finansal güvenlik, benzersiz InvoiceID için UUID, takip kodunun (digitalreceipt/ref_id) tekrarlanıp tekrarlanmadığının kontrolü, Advice aşamasında tutar eşleştirmesi ve csrf_exempt yalnızca geçit Callback'i için kullanılarak sağlanmıştır. Ölçeklenebilirlik ise sorgu optimizasyonu (select_related, prefetch_related) ve sık tekrarlanan sonuçların önbelleğe alınmasıyla elde edilmiştir.

🏗️

Mimari

Mahdis projesi Modüler Mimari (Modular Architecture) üzerine tasarlanmış ve 10 bağımsız Django uygulamasına ayrılmıştır: account (kullanıcılar), barber (kuaförler), product (ürünler), cart (alışveriş sepeti), marketing (pazarlama), payment (Sepehr ödeme geçidi), zarinpal (ZarinPal ödeme geçidi), site_profile (site profili), seo (içerik yönetimi) ve resume (özgeçmişler). Her uygulamanın belirli bir sorumluluğu vardır ve User modeli tüm hizmetler arasında merkezi bağlantı noktası olarak hizmet eder.

Uygulamalar arası iletişim ForeignKey ve ManyToMany ilişkileriyle kurulur; örneğin, Products owner_shoper_id aracılığıyla User'a bağlanır ve envanteri Owners modelinde owner_id, color, size ve scent alanlarıyla tutulur. Sunum katmanı 3 özel Layout (shared_panel, shared_index, shared_seo) ve paylaşılan bileşenlerle (header_component, side_bar_component, footer_component, left_pop_up) uygulanmıştır.

Görünümlerdeki (Views) iş mantığı katmanı, bakım ve geliştirmeyi kolaylaştıran @login_required + izin kontrolü + is_ajax() + i=action_name + JsonResponse şeklindeki birleşik bir deseni takip eder. Ödeme geçitleri, her biri bağımsız bir Service Layer içinde özel mantıkla (Sepehr için GetToken/Advice ve ZarinPal için Authority/Verify) uygulanmıştır.

Güvenlik, CSRF Koruması, XSS Önleme ve SQL Enjeksiyonu Önleme ilkelerine bağlı kalınarak sağlanmış; ölçeklenebilirlik ise sorgu optimizasyonu (select_related, prefetch_related) ve sık tekrarlanan sonuçların önbelleğe alınmasıyla elde edilmiştir. Genel tasarım, sistemi etkilemeden yeni bir uygulama veya yeni bir özellik eklenmesine olanak tanır.

📐

Proje Ölçeği

Ölçek açısından Mahdis projesi, 10 bağımsız Django uygulaması, 25'ten fazla veri modeli ve yaklaşık 80+ görünüm (View) içeren orta-büyük ölçekli bir platform olarak değerlendirilir. Kullanıcı arayüzü, 3 farklı Layout (shared_panel, shared_index, shared_seo) üzerinde uygulanmış 50'den fazla özel HTML sayfası içermektedir.

Sistem, 5 kullanıcı erişim seviyesi (Süper Yönetici, Satıcı, Kuaför, Yanıtlayıcı, Normal Kullanıcı) ve 2 aktif ödeme geçidi (Sepehr ve ZarinPal) barındırmaktadır. SEO bölümü, tamamen ayrı yönetime sahip 4 içerik türünü (Makale, Soru, Deneyim, Video) içerir; kapsamlı yönetim paneli ise Excel raporlaması ile birlikte kullanıcılar, ürünler, siparişler, mağazalar ve kuaförler üzerinde tam kontrol sağlar.

Kod tabanı açısından proje, 15,000'den fazla satır Python kodu ve 20,000'den fazla satır Templates ve Frontend kodu içermektedir. Veritabanı, karmaşık ForeignKey ve ManyToMany ilişkileriyle birbirine bağlı 30'dan fazla tablo barındırmaktadır. Proje şu anda mahdiss.com adresinde çevrimiçi ve aktif olup ticari kullanıma hazırdır.

Teknolojiler

Teknolojiler

Bootstrap Django Django REST Framework HTML/CSS JavaScript MySQL Python SQLite
Kategoriler

Kategoriler

Girişim Platformu Çevrimiçi Hizmet Platformu Yönetim Paneli / Dashboard Ofis Otomasyonu CRM Sistemi Rezervasyon Sistemi Randevu Sistemi E-ticaret Sitesi
Sektör

İş Alanı

Online Kozmetik ve Hijyen Mağazası — Online Kuaför Randevu Sistemi
Faaliyet Alanı

Faaliyet Alanı

E-Ticaret (Kozmetik ve Hijyen Ürünleri) — Online Hizmetler (Kuaför Randevu Sistemi)
İstatistikler

Proje İstatistikleri

18
👁️ Görüntülenme
0
❤️ Beğeni
0
⬇️ İndirme
0
⭐ Puan
Metrikler

Özel Metrikler

Projenin temel performans göstergeleri

10 Modüler Uygulama
50+ Özel Sayfa
5 Erişim Seviyesi
2 Ödeme Geçidi
35,000+ Satır Kod
500+ Aktif Kullanıcı
Ekip

Proje Ekibi

Bu projede iş birliği yapan kişiler

حسن کاظمی
Hasan Kazemi
Full Stack Geliştirici
Faydalı Bağlantılar

Faydalı Bağlantılar

Görseller

Proje Görselleri

Proje ortamının ve kullanıcı arayüzünün bölümleri

Aklınızda benzer bir proje mi var?

Bir web sitesi, CRM, ERP veya özel bir sistem geliştirmek için iş birliğine ihtiyacınız varsa, projenizi görüşmekten mutluluk duyarım.

Proje Başlat