İçeriğe atla
Venitech Bize ulaşın

Teknoloji

Altyapıyı kendimiz kuruyoruz.

Platformun arkasındaki parçaların çoğunu kendimiz geliştiriyoruz: haritayı, menü okuma hattını, yapay zeka katmanını, sıralamayı ve konumun nasıl dolaştığını. Bu sayfa, nasıl yaptığımızı anlatıyor.

Üzerine kurduklarımız

  • Claude
  • Cloudflare
  • OpenStreetMap
  • Wikidata
  • H3

Mimari

Tek arka uç, üç yüzey.

Restaurant OS, Veni App ve yönetim paneli aynı arka ucu ve aynı veritabanını kullanır. Her alan kendi modülünde, sınırları otomatik denetlenen katmanlarla durur.

  • Çok kiracılı.

    Her mekan ve grup kendi verisinde; her sorgu kiracı sınırıyla çalışır.

  • Gerçek zamanlı.

    Siparişler, mutfak, mesajlar ve bildirimler olay akışlarıyla taşınır.

  • Uçta dayanıklı.

    Terminallerin yetkileri imzalı taşınır; bağlantı koptuğunda da güvenle çalışırlar.

Yapay zeka katmanı

Model bağımsız, sınırları belli.

  • Veni IQ.

    İşletmecinin sorusu, satış, stok, personel, menü, salon ve finans alanlarındaki 70’ten fazla araçtan uygun olanlara yönlendirilir. Değişiklik yapan araçlar, işletmeci açıkça onaylamadan çalışmaz; girdi ve çıktı ayrı güvenlik denetimlerinden geçer.

  • Model zinciri.

    Birincil model Claude’dur; bir model yanıt vermezse istek sıradaki modele geçer. Model seçimi koda gömülü değildir, ayardan değişir.

  • Anlamsal arama.

    Yemekler ve mekanlar çok dilli gömme vektörleriyle eşleştirilir; aynı yemeğin farklı yazımları birbirini bulur.

Gözcü

Menüden veriye.

Bir mekanın menüsü çoğu zaman bir QR kodun arkasında, onlarca farklı sağlayıcıdan birinde durur. Gözcü bu menüleri topluluğun yardımıyla okur ve yapılandırılmış veriye çevirir.

  1. Tara

    Kullanıcı, mekanın içindeyken masadaki QR kodu Veni ile tarar. Konum 100 metre içinde doğrulanır.

  2. Tanı

    Sistem, menünün hangi sağlayıcıda durduğunu tanır. Bilinen 57 sağlayıcı için ayrı, testli adaptörler var.

  3. Oku

    Yapısı olmayan sayfalar, menü fotoğrafları ve PDF’ler Claude ile okunur; kategori, ürün ve fiyat yapısına çevrilir.

  4. Onayla

    Her menüyü bir insan inceler ve onaylar. Boş bir menü yayına giremez.

  • Aynı mekan iki kez girmesin diye ad benzerliği, 50 metrelik konum yarıçapı ve telefon numarası birlikte değerlendirilir.
  • Yüklenen fotoğrafların konum bilgisi sunucuya ulaşmadan silinir.

Claude ile

Okuyan model, onaylayan insan.

Menü okuma hattımızın görsel ve metin adımları ve Veni IQ’nun birincil modeli Claude üzerinde çalışır. Model, bir menü fotoğrafını, PDF’ini ya da düzensiz bir web sayfasını kategori, ürün ve fiyat yapısına çevirir. Ortaya çıkan menü doğrudan yayına girmez, bir insanın onay kuyruğuna düşer.

Model sabit kurallarla değil, menünün kendisiyle çalışır; bu sayede tek tek adaptör yazılmamış sağlayıcıların menüleri de okunabilir. Yazılım geliştirme sürecimizde de Claude ile çalışıyoruz.

Harita

Kendi haritamız.

Haritayı OpenStreetMap verisinden kendimiz üretiyor, kendi altyapımızda sunuyoruz. Mekanlar, kullanıcıların paylaştığı anlar ve arkadaşlar aynı haritanın üzerinde ayrı katmanlar olarak durur.

Tarihi yerler katmanı Wikidata’dan gelir. Her veri kaynağının lisansı, hangi kaynağın nerede kullanılabileceğine göre ayrı tutulur.

Konum

Konum sunucuya gitmez.

Telefonda kalır

40.9921, 29.0229

Sunucuya giden

8a1ec90213b7fff

Kadıköy İskelesi. Sağdaki kimlik, yaklaşık 100 metrelik bir altıgenin adıdır; içindeki noktayı söylemez.
  • Sis haritası.

    Gezdikçe açılan sis haritasında telefondan sunucuya koordinat gitmez; yalnızca yaklaşık 100 metrelik altıgen hücrelerin kimlikleri gider. Bir hücreye ilk hangi gün gidildiği tutulur, saat ve rota tutulmaz.

  • Canlı konum.

    Canlı konum varsayılan olarak kapalıdır. Açıldığında arkadaşlara 50 metrelik bir ızgaraya yuvarlanarak gösterilir ve 24 saat içinde silinir. Herkese açık modda ad, fotoğraf ve mekan gösterilmez.

  • Kör eşleştirme.

    Rehberden arkadaş bulunurken numaralar telefonda maskelenir ve eşleşme telefonda kurulur (OPRF). Veni’de olmayan kişilerin numaraları sunucuya hiç ulaşmaz.

Sıralama

Canlı olan öne çıkar.

Keşfet akışı, Rust ile yazdığımız ayrı bir sıralama servisinde hesaplanır. Yakınlık, canlılık ve etkileşimin kalitesi birlikte tartılır; yeni mekanların da görünme şansı olsun diye bir keşif payı bırakılır. Servis yanıt vermezse uygulama daha basit bir sıralamaya geçer, akış durmaz.

Dayanıklılık

Bağlantı kopsa da kaybolmaz.

Paylaşılan fotoğraflar arka planda yüklenir; bağlantı koparsa yükleme kaldığı yerden devam eder. Terminaller çevrimdışı çalışır, bağlantı gelince eşitlenir.

Nasıl çalışıyoruz

Kurallar koda yazılı.

  • Tek sözleşme.

    Uygulama ile sunucu arasındaki sözleşme tek bir şemadan üretilir. Bir değişiklik eski bir uygulama sürümünü bozacaksa, bu derleme aşamasında yakalanır.

  • Gömülü değer yok.

    Fiyatlar, eşikler ve metinler koda gömülmez; değiştirilebilir ayarlar olarak durur.

  • Her değişiklik testten geçer.

    Tip denetimi, gerçek veritabanına karşı çalışan entegrasyon testleri ve kod kalitesi taraması her değişiklikte çalışır. Para ve yetki hesaplayan kodda mutasyon ve özellik testleri de var.

  • Kapalı kapılar.

    Sunucular dışarıya port açmaz; erişim Cloudflare tüneli üzerinden gelir. Her gece yedek alınır, her yayın sağlık denetiminden geçer ve sorun çıkarsa kendiliğinden geri alınır.