Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Smart Product Search Engine

Geliştirici: Zeynep Nermin Gülyiğit | Konya Teknik Üniversitesi - Bilgisayar Mühendisliği

.NET 10 • WPF • Elasticsearch • MongoDB • Docker • MVVM

Proje Hakkında

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.


Kullanılan Teknolojiler

  • C#
  • .NET 10
  • WPF
  • ASP.NET Core Web API
  • MongoDB
  • Elasticsearch
  • Docker
  • Python
  • Faker

Proje Yapısı

Proje üç ana bölümden oluşmaktadır.

SearchDesktopApp

Kullanıcının arama yaptığı masaüstü uygulamasıdır.

SearchAPI

Masaüstü uygulamasından gelen istekleri karşılayan Web API katmanıdır. Arama işlemleri bu katman üzerinden Elasticsearch'e iletilmektedir.

DataGenerator

Test verilerini oluşturan ve MongoDB'den Elasticsearch'e veri aktarımını sağlayan Python scriptlerini içerir.


Çalıştırmadan Önce

Bilgisayarınızda aşağıdaki yazılımların kurulu olması gerekmektedir.

  • .NET 10 SDK
  • Docker Desktop
  • Python 3

Projenin Çalıştırılması

1. Docker servislerini başlatın.

docker compose up -d

Bu komut MongoDB ve Elasticsearch servislerini çalıştıracaktır.

2. İlk kurulum

İ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.

3. Projeyi Başlatın

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.

Uygulamanın Özellikleri

  • Ü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ı

Veri Seti

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.


Not

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.

About

Desktop Product Search Engine using WPF, ASP.NET Core Web API, MongoDB and Elasticsearch

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages