Skip to content

Latest commit

 

History

134 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

distributed-parallel-text-search

🇹🇷 Türkçe açıklama aşağıda bulunmaktadır.


🇬🇧 English

📌 About the Project

A distributed parallel text search application built with Java. The system distributes keyword search tasks across multiple CPU cores and/or multiple computers on the same network, significantly reducing search time for large text files.

✨ Features

  • 🔍 Keyword Search — Search for words or phrases within uploaded text files
  • Parallel Processing — Distributes search tasks across multiple CPU cores
  • 🌐 Distributed Architecture — Sends tasks to multiple computers over the same network (Client-Server)
  • 🖥️ Graphical User Interface — Easy-to-use Java GUI
  • 📧 Email Notification — Sends search results via email
  • 📁 File Transfer — Supports sending files across the network

🛠️ Technologies Used

Technology Purpose
Java Core language
Java Sockets Client-Server communication
Java Swing GUI
Java Threading Parallel processing
JavaMail API Email sending

📁 Project Structure

distributed-parallel-text-search/
├── Main.java              # Entry point
├── Server.java            # Server — receives and distributes tasks
├── Client.java            # Client — sends tasks to server
├── Cekirdek.java          # Core processor — handles parallel search
├── GUI.java               # Graphical user interface
├── EmailGonder.java       # Email notification module
└── dosyaGonder.java       # File transfer module

🚀 How to Run

  1. Clone the repository:
    git clone https://github.com/gulseliocakci/distributed-parallel-text-search.git
  2. Compile all .java files:
    javac *.java
  3. Start the server:
    java Server
  4. Launch the client / GUI:
    java Main

📸 How It Works

[User uploads text file]
        ↓
[GUI sends search request]
        ↓
[Server distributes tasks to Clients on network]
        ↓
[Each Client searches its chunk in parallel using CPU cores]
        ↓
[Results collected and displayed / sent via email]

🇹🇷 Türkçe

📌 Proje Hakkında

Java ile geliştirilmiş dağıtık ve paralel metin arama uygulaması. Sistem, anahtar kelime arama görevlerini birden fazla CPU çekirdeğine ve/veya aynı ağdaki birden fazla bilgisayara dağıtarak büyük metin dosyalarında arama süresini önemli ölçüde azaltır.

✨ Özellikler

  • 🔍 Anahtar Kelime Arama — Yüklenen metin dosyalarında kelime veya ifade arama
  • Paralel İşlem — Arama görevlerini birden fazla CPU çekirdeğine dağıtma
  • 🌐 Dağıtık Mimari — Aynı ağdaki birden fazla bilgisayara görev gönderme (İstemci-Sunucu)
  • 🖥️ Grafiksel Kullanıcı Arayüzü — Kullanımı kolay Java GUI
  • 📧 E-posta Bildirimi — Arama sonuçlarını e-posta ile gönderme
  • 📁 Dosya Transferi — Ağ üzerinden dosya gönderme desteği

🛠️ Kullanılan Teknolojiler

Teknoloji Kullanım Amacı
Java Ana programlama dili
Java Sockets İstemci-Sunucu iletişimi
Java Swing Grafiksel arayüz
Java Threading Paralel işlem
JavaMail API E-posta gönderimi

📁 Proje Yapısı

distributed-parallel-text-search/
├── Main.java              # Giriş noktası
├── Server.java            # Sunucu — görevleri alır ve dağıtır
├── Client.java            # İstemci — sunucuya görev gönderir
├── Cekirdek.java          # Çekirdek işlemci — paralel aramayı yönetir
├── GUI.java               # Grafiksel kullanıcı arayüzü
├── EmailGonder.java       # E-posta bildirim modülü
└── dosyaGonder.java       # Dosya transfer modülü

🚀 Nasıl Çalıştırılır

  1. Depoyu klonla:
    git clone https://github.com/gulseliocakci/distributed-parallel-text-search.git
  2. Tüm .java dosyalarını derle:
    javac *.java
  3. Sunucuyu başlat:
    java Server
  4. İstemciyi / GUI'yi başlat:
    java Main

📸 Nasıl Çalışır

[Kullanıcı metin dosyası yükler]
        ↓
[GUI arama isteğini gönderir]
        ↓
[Sunucu görevi ağdaki istemcilere dağıtır]
        ↓
[Her istemci kendi bölümünü CPU çekirdekleriyle paralel arar]
        ↓
[Sonuçlar toplanır, ekranda gösterilir / e-posta ile iletilir]

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages