iToverDose/Yazılım· 30 HAZIRAN 2026 · 00:03

Evde Espresso Deneyimini Veri Tabanlı Hale Getiren BrewCore Projesi

Barista'lar espresso çekerken gram, süre ve basınç gibi detaylara odaklanır. Peki bu verileri nasıl sistematik olarak takip ederiz? H0 Hackathon için geliştirilen BrewCore, veritabanıyla çalışan bir espresso izleme aracı sunuyor.

DEV Community4 dk okuma0 Yorumlar

Evde yapılan espresso çekimleri genellikle sadece bir zamanlayıcıyla sınırlı kalır. Oysa bir barista, çekimin gramajından süresine, basınç profilinden öğütme inceliğine kadar onlarca değişkeni dikkate alır. Bu veriler kağıt notlar veya zihinsel notlarla takip edildiğinde, bir sorun yaşandığında geçmişe dair net bir kaynak bulmak neredeyse imkansız hale geliyor. H0 Hackathon için geliştirilen BrewCore, espresso deneyimini veri odaklı bir sisteme dönüştürmeyi hedefliyor.

BrewCore’un temel amacı, ev baristalarını verilerle donatılmış birer veri bilimciye çevirmek. Proje, Next.js 15, Vercel, Amazon DynamoDB ve Amazon Bedrock gibi modern araçlarla inşa edildi. Bu sayede, sadece bir çekim süresi değil, aynı zamanda çekimin tüm parametreleri, çekilen kahve miktarı ve hatta stok durumları da sistematik olarak kaydediliyor.

Veri Odaklı Espresso için Altyapı Tasarımı

BrewCore’un en önemli özelliklerinden biri, kullanıcı dostu bir arayüzle birlikte sağlam bir arka uç mimarisine sahip olması. Proje, dört temel aşamadan oluşan bir veri akışıyla çalışıyor:

  • Kullanıcı Etkileşimi: React tabanlı bir progresif web uygulaması olarak tasarlanan BrewCore, kullanıcıların çekim verilerini girmelerini ve geçmiş kayıtları incelemelerini sağlıyor. Bu uygulama, Next.js 15 Server Actions kullanılarak doğrudan Vercel üzerinde barındırılıyor.
  • Güvenlik ve Kimlik Doğrulama: Kullanıcı girişleri ve oturum yönetimi, Amazon Cognito User Pool üzerinden edge düzeyinde gerçekleştiriliyor. Bu sayede, kullanıcı verileri güvenli bir şekilde korunurken, sistem performansı da optimize ediliyor.
  • Veri Depolama: BrewCore, geleneksel API Gateway veya Lambda katmanlarına ihtiyaç duymadan doğrudan DynamoDB’ye veri yazıyor. AWS SDK v3 kullanılarak yapılan bu işlemler, hem basit hem de güvenilir bir veri yönetimi sunuyor.
  • Yapay Zeka Destekli Koçluk: Kullanıcıların geçmiş çekim verilerini analiz eden sistem, Amazon Bedrock Converse API üzerinden çalışan nova-micro modelini kullanarak kişiselleştirilmiş tavsiyeler sunuyor. Bu sayede, "öğütme inceliğini artır" gibi genel tavsiyeler yerine, kullanıcının geçmiş verilerine dayalı spesifik öneriler elde edilebiliyor.

DynamoDB: Veri Modeli ve Performans Optimizasyonu

Veritabanı seçimi, BrewCore’un en kritik kararlarından biriydi. Çoğu geliştirici ilişkisel veritabanlarını tercih ederken, bu projede DynamoDB’nin çok tablolu tasarımı benimsendi. Bu yaklaşım, kullanıcı arayüzünün davranışına doğrudan uyum sağlayarak, sorgulama performansını maksimum düzeye çıkardı.

Projenin veri modeli, aşağıdaki tablolardan oluşuyor:

  • users: Kullanıcı profilleri ve özel ayarları saklıyor.
  • beans: Kahve çekirdeklerinin stok durumunu, kavurma verilerini ve düşük stok uyarılarını yönetiyor.
  • shots: Çekim parametrelerini (öğütme inceliği, dozaj, verim, süre ve lezzet profilleri) detaylı olarak kaydediyor.
  • interactions ve comments: Topluluk beslemesindeki beğeni ve yorumları takip ediyor.
  • user_stats: Önceden hesaplanmış istatistik verileriyle, çalışma zamanı hesaplamalarını minimize ediyor.
  • follows ve product_states: Sosyal grafik yönetimi ve kullanıcı arayüzündeki durum bayraklarını kontrol ediyor.

Bu tasarım sayesinde, veriler üzerinde yapılan sorguların tamamı O(1) karmaşıklığına sahip anahtar-değer erişimleriyle gerçekleştiriliyor. Ayrıca, Global Secondary Indexes (GSIs) kullanılarak hedeflenen sorguların performansı da optimize edildi.

Geliştirme Sürecindeki Pratik İpuçları

Hackathon’larda karşılaşılan en büyük zorluklardan biri, bulut altyapısının kurulma sürecidir. BrewCore’un geliştiricisi, bu sorunu çift arka uç arayüzü yaklaşımıyla çözdü. Öncelikle, yerel localStorage üzerinde DynamoDB’nin veri yapısına tamamen uyumlu bir mock sistemi oluşturuldu. Bu sayede, geliştirme süreci tamamen çevrimdışı olarak tamamlandı. Hazır olduğunda ise yalnızca bir ortam değişkeni değiştirilerek, üretimdeki AWS tablolarına geçiş yapıldı.

Bu yaklaşım, hem geliştirme sürecini hızlandırdı hem de hata ayıklama sürecini kolaylaştırdı. Ayrıca, bulut altyapısına geçiş yapıldıktan sonra da yerel ortamda yapılan testlerle sistemin doğruluğu doğrulandı.

Yapay Zekanın Kişiselleştirilmiş Espresso Tavsiyeleri

Genel yapay zeka tavsiyeleri, espresso için çoğu zaman işe yaramıyor. Örneğin, "öğütme inceliğini artır" gibi bir öneri, kullanıcının mevcut öğütme ayarlarını, makine özelliklerini veya geçmiş verilerini bilmediğinde anlamsız kalıyor. BrewCore’da bu sorunun üstesinden gelmek için yapay zekaya gerçek zamanlı veri erişimi sağlandı.

Kullanıcının geçmiş çekim verileri, makine ayarları ve çekirdek stok bilgileri, yapay zekaya bir JSON payload olarak iletildi. Bu sayede, model sadece genel bilgilerle değil, kullanıcının özel durumu hakkında da analiz yapabiliyor. Örneğin, bir kullanıcı geçmişte daha ince öğütmeyle daha düşük sıcaklıkta iyi sonuçlar aldıysa, sistem gelecekteki önerilerini bu verilere dayandırıyor.

Geliştirme Sürecinden Çıkarılan Dersler

  • Next.js Server Actions için hata yönetimi kritik öneme sahip. Geleneksel HTTP durum kodları olmadan doğrudan DynamoDB’ye yazan Server Actions, beklenmedik hatalara karşı savunmasız hale geliyor. Bu nedenle, tüm veri işlemleri için global hata yakalama mekanizmaları kurulması gerekiyor. AWS SDK’dan gelen hatalar kullanıcı dostu uyarılara dönüştürülerek, hem güvenlik hem de kullanıcı deneyimi korunmuş oluyor.
  • DynamoDB GSIs için veri türleri önem taşıyor. Topluluk beslemesi için bir GSI kurarken, Terraform’un varsayılan olarak yalnızca string (S), number (N) veya binary (B) veri türlerini desteklediği fark edildi. Başlangıçta boolean olarak modellenen isPublic özelliği, altyapı provisioning’inde başarısızlığa yol açtı. Bu sorunun üstesinden gelmek için boolean değerler string olarak ("true" veya "false") saklandı.
  • LLM’ler için katı veri bağlamı şart. Amazon Bedrock’un nova-micro modeliyle yapılan ilk denemelerde, model genellikle kullanıcının geçmiş verilerini dikkate almadan genel tavsiyelerde bulunuyordu. Bu sorunun çözümü, kullanıcının son üç çekim verisinin JSON formatında modele iletilmesiyle sağlandı. Bu sayede, model artık geçmişe dayalı analizler yapabiliyor ve daha kişiselleştirilmiş öneriler sunabiliyor.

BrewCore, evde espresso deneyimini veri odaklı bir sisteme dönüştürerek, hem baristaların hem de kahve meraklılarının işini kolaylaştırıyor. Gelecekte, bu proje daha da genişleyerek topluluk özellikleri ve gelişmiş yapay zeka analizleriyle zenginleştirilebilir. Kahve tutkunları için bu yenilikçi yaklaşım, hem eğlenceli hem de verimli bir deneyim sunmaya devam edecek.

Yapay zeka özeti

H0 Hackathon için geliştirilen BrewCore, Next.js 15, Vercel ve DynamoDB ile evde espresso çekimini veri odaklı bir sisteme dönüştürüyor. Kişiselleştirilmiş AI tavsiyeleriyle kullanıcı deneyimini nasıl iyileştirdiğini keşfedin.

Yorumlar

00
YORUM BIRAK
ID #PUXKC3

0 / 1200 KARAKTER

İnsan doğrulaması

8 + 3 = ?

Editör onayı sonrası yayına girer

Moderasyon · Spam koruması aktif

Henüz onaylı yorum yok. İlk yorumu sen bırak.