Emircan Erdemci

Formadaş

İki kulüpte de forma giymiş futbolcuları bulun.

  • TürFutbol veri uygulaması
  • Yıl2026
  • RolümTasarım, veri akışı ve full stack geliştirme

Kulüpleri karşılaştırın veya ülkeye göre arayın. Futbolcu kariyerlerini, mevcut maç istatistiklerini ve paylaşılabilir profilleri inceleyin. Telefonunuza uygulama olarak yükleyebilirsiniz.

İhtiyaç

Dağınık kulüp kayıtlarını ve farklı dillerdeki isimleri birleştirmek; Wikidata yavaşladığında veya erişilemediğinde sonuç sunmak.

Rolüm

Arayüzü, veri akışını, SQLite önbelleğini, zamanlanmış güncellemeleri ve paylaşım kartlarını geliştirdim. Docker dağıtımını da üstlendim.

Mimari

Her parçanın çalıştığı yer. Kırmızı çizgi örnek akışı izliyor.

  1. L1 Arayüz Çalıştığı yer: Tarayıcı

    Kulüp ve ülke araması, kariyer sayfaları ve paylaşım. Açık ve koyu tema; telefona yüklenebilir.

    • Nuxt 4
    • Nuxt UI 4
    • Installable web app
  2. L2 Uç ağ Çalıştığı yer: Cloudflare

    Sayfaları on dakika saklıyor; eski konteyner trafik almayı bırakınca önbelleği temizliyor.

    • Cloudflare cache
  3. L3 Sunucu Çalıştığı yer: Oracle Cloud sanal makinesinde Docker

    Nitro ve Dokploy ile API istekleri, paylaşım kartları ve zamanlanmış güncellemeler.

    • Node 24
    • Nitro
    • Docker
    • Dokploy
    • Takumi
  4. L4 Veri Çalıştığı yer: Kalıcı Docker biriminde SQLite

    Kalıcı sonuçlar, profiller ve 150 kulübü kapsayan oyuncu indeksi.

    • SQLite
    • Result cache
    • Local player index
  5. L5 Harici servisler Çalıştığı yer: Wikidata

    SPARQL ile kariyer kayıtları ve mevcut istatistikler; Wikimedia Commons üzerinden fotoğraflar.

    • Wikidata SPARQL
    • Wikimedia Commons

Adım adım akış: Beşiktaş ve Galatasaray’da kimler oynadı?

  1. L1 · Arayüz İki kulüp seçilir; /api/common-players isteği alır.
  2. L3 · Sunucu İlişkili Wikidata kulüp kayıtları gruplanır.
  3. L4 · Veri SQLite önbellekteki sonucu sunar; eski kayıtlar arka planda yenilenir.
  4. L5 · Harici servisler Önbellekte yoksa SPARQL, oyuncuları ve kariyer kayıtlarını getirir.
  5. L3 · Sunucu İsimler ve dönemler birleştirilir; 0 ile 100 arasında puanlanır.
  6. L1 · Arayüz Sonuçlar gösterilir; Wikidata erişilemiyorsa yerel indeks kullanılır.

Temel kararlar

  1. 01

    Arka planda yenileme

    Güncellik süresi transfer döneminde bir gün, diğer zamanlarda bir hafta. Eski sonuçlar gösterilirken yenileri alınır.

  2. 02

    Zamanlanmış güncellemeler

    Gece güncellemeleri transfer dönemlerinde günlük, diğer zamanlarda haftalık çalışıyor.

  3. 03

    Kulüp kayıtları

    Takma ad grupları, futbol takımı ve çok branşlı ana kulüp kayıtlarını sorgu öncesi birleştiriyor.

  4. 04

    İsim eşleştirme

    Türkçe ve İngilizce isimler standartlaştırma, baş harf ve Jaro-Winkler ile eşleştiriliyor. Tek kelimelik isimlerde standartlaştırılmış birebir eşleşme aranıyor.

  5. 05

    Paylaşım kartları

    Takumi, 1200×630 kartları kaydedilen ölçümlerde yaklaşık 40 ms içinde oluşturuyor. Profil değişene kadar saklanıyor.

  6. 06

    Dağıtım önbelleği

    Eski konteyner trafik almayı bırakınca Cloudflare önbelleği temizleniyor; eski betiklere başvurma riski azalıyor.

Masaüstü ve mobil

Sonraki proje · 04 InspireIT WordPress ile geliştirilen iki dilli kurumsal site.
İletişim

Projenizi konuşalım.

Yeni web projenizi bana e-posta ile anlatın.

E-posta gönder emircan.erdemci@hotmail.com