Tüm projelere dön

eAuction

Gerçek zamanlı açık artırma

Katılımcıların açık artırmalara teklif verebildiği ve güncel teklifleri anında görebildiği web uygulaması.

Kimler için?
Açık artırmaya katılan alıcılar ve ürün listeleyen kullanıcılar
Katkım
Kişisel proje · Yazılım geliştirme
Dönem
2023

Çözülmesi gereken ihtiyaç

Bir açık artırmada tekliflerin ve kapanış bilgilerinin kullanıcılar arasında güncel kalması, sonuçların da arka plan işlemleriyle tamamlanması gerekiyor.

Ortaya çıkan işlevler

Teklif tutarı, teklif sayısı ve kapanış süresinin canlı güncellendiği; kapanış bildirimleri ve sipariş görevleri bulunan bir uygulama geliştirildi.

Ben ne yaptım?

React istemcisi ve Django API üzerinde ürün, teklif ve kullanıcı akışları geliştirdim; gerçek zamanlı yayınları ve kapanış görevlerini bağladım.

Geliştirme ayrıntılarını incele

Teknik yaklaşımla ilgilenenler için: çalışma akışı, kullandığım teknolojiler ve uygulama kararları.

Süreç nasıl işliyor?

Açık artırma, ürün keşfinden tekliflerin canlı takibine ve kapanış işlerine uzanıyor. WebSocket güncellemeleri ile zamanlanmış görevler farklı sorumluluklar taşıyor.

Ana akış

  1. Kullanıcı oturumunu aç

    OAuth ve kullanıcı akışlarıyla istemcinin kimliği doğrulanır.

  2. Ürünü ve açık artırmayı incele

    React / Redux arayüzü ürün, teklif ve kapanış bilgilerini API’den alır.

  3. Teklif tutarını hazırla

    Başlangıç ve mevcut teklif tutarlarıyla karşılaştırma ve ek ödeme hesaplama akışı çalışır.

  4. Teklifi kaydet

    DRF API teklifi kullanıcı ve ürünle ilişkilendirerek kaydeder.

  5. Canlı güncellemeyi yayınla

    Django Channels / Redis ürünün açık artırma grubuna WebSocket olayı yayınlar.

  6. Katılımcı ekranlarını güncelle

    Teklif tutarı, teklif sayısı ve kapanış zamanı canlı arayüzde güncellenir.

  7. Kapanışı zamanlanmış görevle işle

    Celery süresi dolan açık artırmaları kontrol eder ve en yüksek teklifi belirler.

  8. Sonucu bildir ve siparişi oluştur

    Teklif varsa kazanan / kaybeden bildirimleri gönderilir ve kazanan için sipariş oluşturulur.

Alternatif ve destek süreçleri

Kapanış yaklaşırken

  1. Yaklaşan kapanışları bul

    Celery aktif açık artırmaların son tarihlerini kontrol eder.

  2. Katılımcıyı hatırlat

    Teklif veren kullanıcılara kapanış hatırlatma e-postaları gönderilir.

Teklif tutarı uygun değilse

  1. Hesaplamada hatayı bildir

    Başlangıç fiyatını veya mevcut yüksek teklifi geçmeyen tutar için hata yanıtı döner.

  2. Tutarı yeniden düzenle

    Kullanıcı yeni tutarla hesaplama akışına dönebilir.

WebSocket ile teklifler, Celery ile kapanış akışı.Ürünün çalışma mantığını anlatan şematik görsel.

Çözüm yaklaşımı

  • Django REST Framework API ve React/Redux istemcisinde ürün listeleme, teklif ve kullanıcı akışlarını geliştirdim; OAuth 2.0 kimlik doğrulama entegrasyonu uyguladım.
  • Django Channels/Redis ile açık artırma bazlı WebSocket yayınları geliştirdim; teklif tutarı, teklif sayısı ve kapanış süresini istemcide canlı güncelledim.
  • Celery ile kapanış hatırlatmaları, kazanan/kaybeden bildirimleri ve açık artırma sonunda sipariş oluşturma görevleri geliştirdim.

Teknolojiler

  • Django REST Framework
  • React
  • Django Channels
  • Redux
  • Redis
  • Celery