.NET 10 • WPF • Elasticsearch • MongoDB • Docker • MVVM
Bu proje, Bilgisayar Mühendisliği staj projesi kapsamında geliştirilmiştir. Amaç, büyük veri kümeleri üzerinde hızlı ve doğru ürün araması yapabilen bir masaüstü uygulaması geliştirmektir.
Projede yaklaşık 1.000.000 ürün verisi kullanılmıştır. Veriler MongoDB'de tutulmakta, arama işlemleri ise Elasticsearch üzerinden gerçekleştirilmektedir. Masaüstü uygulaması WPF ile geliştirilmiş olup, arka planda ASP.NET Core Web API kullanılmaktadır.
- C#
- .NET 10
- WPF
- ASP.NET Core Web API
- MongoDB
- Elasticsearch
- Docker
- Python
- Faker
Proje üç ana bölümden oluşmaktadır.
Kullanıcının arama yaptığı masaüstü uygulamasıdır.
Masaüstü uygulamasından gelen istekleri karşılayan Web API katmanıdır. Arama işlemleri bu katman üzerinden Elasticsearch'e iletilmektedir.
Test verilerini oluşturan ve MongoDB'den Elasticsearch'e veri aktarımını sağlayan Python scriptlerini içerir.
Bilgisayarınızda aşağıdaki yazılımların kurulu olması gerekmektedir.
- .NET 10 SDK
- Docker Desktop
- Python 3
docker compose up -d
Bu komut MongoDB ve Elasticsearch servislerini çalıştıracaktır.
İlk çalıştırmada Elasticsearch boş olacağı için MongoDB'deki verilerin Elasticsearch'e aktarılması gerekir.
cd DataGenerator
python mongo_to_elasticsearch.py
Bu işlem yalnızca ilk kurulumda yapılmalıdır.
Ayrı ayrı terminal komutları girmenize gerek yoktur. Proje ana dizinindeki Baslat.bat dosyasına çift tıklamanız yeterlidir. Bu betik, API servisini ve Masaüstü uygulamasını sırasıyla otomatik olarak ayağa kaldıracaktır.
- Ürün arama
- Kategori filtreleme
- Marka filtreleme
- Departman filtreleme
- Minimum ve maksimum fiyat filtreleme
- Stokta bulunan ürünleri filtreleme
- Sayfalama (Pagination)
- Sıralama
- Ürün detay ekranı
Projede yaklaşık 1.000.000 adet ürün verisi kullanılmıştır.
Her ürün için aşağıdaki bilgiler bulunmaktadır.
- Ürün adı
- Açıklama
- Marka
- Kategori
- Departman
- Fiyat
- Stok bilgisi
- Etiketler
- Oluşturulma tarihi
Test verileri Python ve Faker kütüphanesi kullanılarak oluşturulmuştur.
MongoDB ürünlerin saklandığı ana veritabanıdır. Elasticsearch ise yalnızca arama performansını artırmak amacıyla kullanılmaktadır. Masaüstü uygulaması doğrudan Elasticsearch'e bağlanmamakta, tüm arama işlemleri SearchAPI üzerinden gerçekleştirilmektedir.