← Tüm projeler2026 / Yerel prototip

YataOil

YataOil, ikinci el araç ilanını ve kullanım maliyetini aynı akışta değerlendirmeyi amaçlıyor. İlan listesi ve yakıt maliyeti ekranı mevcut; canlı dış servis entegrasyonlarının kapsamı ayrıca doğrulanmalı.

Teknolojiler
React · TypeScript · Express · Puppeteer · Zod
YataOil Audi araç ilanları listesi
Görsel 1 / 2Görseli büyüt ↗

Problem

Araç ilanı ile yakıt maliyetini tek araştırma akışında değerlendirmek ve eksik veriden yanıltıcı hesap üretmemek.

Çözüm

Marka kataloğu ve ham ilan araması mevcut. Maliyet ekranı aylık kilometre, tüketim ve litre fiyatı üzerinden yaklaşık gideri gösteriyor.

Teknik karar

Marka slug'ı kaynak katalogla doğrulanıyor. Puppeteer sunucuda çalışıyor; katalog yanıtının live, cache veya fallback kaynağı belirtiliyor. Ham ilan araması kalıcı önbelleğe yazılmıyor.

Mevcut sınırlar

Canlı kaynak erişimi garanti değil. Detay servisi ve CollectAPI yakıt entegrasyonunun uçtan uca tamamlandığı henüz doğrulanmış değil; görseldeki hesap ekranı bu garantiyi vermiyor.

Ekranlar ve doğrulama kapsamı

İlan listesi ve maliyet ekranı paylaşılmış. Proje anlatısı fixture/mock kontrollerini belirtiyor; paylaşılan kanıtlar canlı detay ve yakıt entegrasyonunun çalıştığını henüz doğrulamıyor.

Projenin hikâyesi ve uygulama ayrıntıları

YataOil, ikinci el bir aracı değerlendirirken ilan bilgisi ile kullanım maliyetine farklı yerlerden bakma ihtiyacını tek araştırma akışında toplamak için tasarlandı. Kullanıcı marka seçip ilanları tarıyor, ilgilendiği aracın detayına geçiyor ve yakıt tüketimiyle fiyatı birlikte görerek aylık giderini değerlendirebiliyor. Ürünün temel ilkesi, kaynaktan gelmeyen araç veya yakıt değerlerini doldurup yanıltıcı bir maliyet üretmemek.

Marka kataloğu Arabam'ın otomobil kategori sayfasından bağlantıları okuyarak kuruluyor. Görünen marka adından slug tahmin edilmiyor; yalnız izin verilen URL biçimindeki bağlantılar kabul ediliyor. Seçilen marka için ilk ilan sayfasındaki kolon başlıkları ve satır hücreleri kaynak sırası korunarak alınıyor. Fiyat, kilometre, ilan tarihi ve konum arama aşamasında yorumlanıp tek tipe zorlanmıyor; ham metin olarak taşınıyor. Kullanıcı ilanı açtığında hedeflenen akışta araç ayrıntıları ve konuma göre yakıt fiyatları bir araya geliyor.

Paylaşılan ekran görüntüleri Audi ilan listesini ve yakıt maliyeti arayüzünü gösteriyor. Maliyet ekranında yakıt markası, aylık kilometre, ortalama tüketim ve depo kapasitesiyle yaklaşık aylık gider ve dolu depo tutarı hesaplanıyor. Hesap mantığı aylık kilometre / 100 × ortalama tüketim × litre fiyatı ve depo kapasitesi × litre fiyatı biçiminde. Son doğrulanmış teknik kapsam marka kataloğu ile ham ilan arama API'sini içeriyor; detay servisi ve CollectAPI entegrasyonunun uçtan uca tamamlandığı henüz doğrulanmış değil. Görseldeki hesap ekranı, canlı entegrasyon garantisi anlamına gelmiyor.

React ve TypeScript istemcisi Express API ile ortak tip ve Zod doğrulama sözleşmeleri üzerinden konuşuyor. Puppeteer ve HTML ayrıştırma sunucu tarafında çalışıyor. Katalog altı saatlik bellek önbelleğiyle gereksiz taramadan korunuyor; canlı çağrı başarısızsa son geçerli JSON veya sınırlı fallback kullanılabiliyor ve yanıt kaynağı live, cache ya da fallback olarak bildiriliyor. İlan aramasında marka slug'ı katalog listesiyle doğrulanıyor; bilinmeyen adresler tarama hedefine dönüşmüyor.

Fixture ve mock testleri marka ayrıştırma, ham ilan alanlarının sırasını koruma, geçersiz slug ve dış kaynak hata davranışlarını sınamak için kullanılmış. Arabam'ın 403, Cloudflare veya CAPTCHA engeli aşılarak veri alınmıyor; canlı erişim garanti edilmiyor ve anlamlı bir upstream hata dönülüyor. Projenin sonraki doğrulama adımı, detay ve yakıt fiyatı entegrasyonunun güncel kodla ve uçtan uca akışla teyit edilmesi. Bu sınır, görseldeki maliyet deneyimini anlatırken veri kaynağının gerçek çalışma durumunu olduğundan ileri göstermemeyi sağlıyor.