Tüm projelere dön

Rovli Coffee

Sipariş, sadakat ve cüzdan uygulaması

Kahve müşterilerinin telefondan sipariş verip ödeme yapabildiği, cüzdanını ve sadakat avantajlarını takip edebildiği mobil uygulama.

Rovli Coffee tanıtımı: sipariş, sadakat ve sanal cüzdan özellikleri; mobil ana ekran ve cüzdan arayüzü.
Müşterinin deneyimi, işletmenin akışıyla buluşur.Mobil sipariş, sadakat ve cüzdan deneyiminin tanıtım görseli.
Kimler için?
Kahve müşterileri ve işletme ekipleri
Katkım
Bağımsız proje · Full-stack geliştirme

Çözülmesi gereken ihtiyaç

Müşterinin sipariş ve ödeme deneyimi; işletmenin menüsü, POS sistemi, sadakat programı ve cüzdan işlemleriyle tutarlı çalışmalı.

Ortaya çıkan işlevler

Sipariş verme, kart veya cüzdanla ödeme yapma ve sadakat indirimlerini kullanma; işlemleri işletmenin kasa sistemiyle birlikte yürütme.

Ben ne yaptım?

Mobil uygulama ve sunucu tarafında sipariş, ödeme, cüzdan ve sadakat akışlarını geliştirdim. Müşterinin uygulamadaki işlemlerini işletmenin kasa sistemiyle 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?

Sipariş, ödeme sağlayıcısı, POS ve sadakat aynı işlemin farklı parçaları. Kart ve cüzdan yolları ayrılıyor; zaman aşımında işlem durumu ayrıca uzlaştırılıyor.

Ana akış

  1. Menüyü ve seçenekleri keşfet

    Flutter istemcisinde ürünler ve varyantlar seçilir; Simpra menü eşleştirmeleri sipariş verisine bağlanır.

  2. Sepeti ve indirimi hazırla

    Ürün seçenekleri ve indirimler siparişin tutarlı bir anlık görüntüsünde tutulur.

  3. Ödeme yöntemini seç

    Kart ödemesi VakıfBank 3D Secure yoluna; cüzdan ödemesi bakiye rezervasyonuna ayrılır.

  4. 3D Secure doğrulamasını başlat

    Enrollment isteği hazırlanır ve müşteri banka doğrulama akışına geçer.

  5. Banka sonucunu doğrula

    Callback hash kontrolü ve authorization ile ödeme sonucu doğrulanır.

  6. Siparişi POS’a ilet

    Simpra ürün / varyant eşleştirmeleriyle check oluşturulur ve indirim bilgileri aktarılır.

  7. Sipariş ve ödemeyi tutarlı kaydet

    PostgreSQL transaction, satır kilitleme ve idempotency tekrarlanan isteklerin aynı işlemi çoğaltmasını önler.

  8. Cüzdan ve sadakat akışını bağla

    Sipariş sonucu mobil istemciye, cüzdan hareketlerine ve sadakat özelliklerine bağlanır.

Alternatif ve destek süreçleri

Cüzdanla ödeme

  1. Bakiyeyi rezerve et

    Sipariş için cüzdan bakiyesi kontrol edilir ve tutar rezerve edilir.

  2. Sipariş yoluna geç

    Rezerve tutarla POS adımına devam edilir. POS sonucu alındığında rezervasyon tamamlanır veya serbest bırakılır.

Akışa dönüş06Siparişi POS’a ilet

Sağlayıcı hatası veya zaman aşımı

  1. İşlem durumunu uzlaştır

    Ödeme / POS sonucunu idempotency bilgisiyle kontrol ederek belirsiz durumu ele al.

  2. Yeniden dene veya telafi et

    Retry worker’ları, iptal ve iade telafi adımları sipariş ile ödeme durumunu uzlaştırır.

Müşterinin deneyimi, işletmenin akışıyla buluşur.Ürünün çalışma mantığını anlatan şematik görsel.

Çözüm yaklaşımı

  • Modüler Go/Fiber backend'i ve Flutter istemcisinde sipariş, cüzdan ve sadakat akışları geliştirdim; domain, application, infrastructure ve transport katmanlarını ayırdım.
  • VakıfBank sanal POS ile sipariş ödemesi ve cüzdan yükleme entegrasyonu geliştirdim; 3D Secure enrollment, callback hash doğrulaması ve provizyon akışlarını uyguladım.
  • Simpra POS ile menü/varyant eşleştirme, fiş oluşturma ve sadakat indirimi entegrasyonları geliştirdim; sağlayıcı hataları ve eşleştirme durumları için Go regresyon testleri yazdım.
  • Ödeme ve cüzdan işlemlerinde PostgreSQL transaction, row locking ve idempotency kullandım; timeout, iptal/iade compensation ve retry worker akışları geliştirdim.

Teknolojiler

  • Go
  • Flutter
  • PostgreSQL
  • Redis
  • S3
  • 3D Secure
  • Simpra POS