Skip to content

dusova/social-media-analyzer-tool

Repository files navigation

📊 SMATool - Social Media Analysis Tool

Java Maven Reddit API License

Sosyal medya verilerini analiz eden, nesne tabanlı programlama prensipleriyle geliştirilmiş Java uygulaması.

ÖzelliklerKurulumKullanımAPI KaynaklarıMimariİletişim


🎯 Proje Hakkında

SMATool (Social Media Analysis Tool), sosyal medya platformlarından veri çekerek çeşitli analizler yapabilen bir komut satırı uygulamasıdır. Nesne Tabanlı Programlama (OOP) prensipleri kullanılarak geliştirilmiştir.

Desteklenen Platformlar

  • 🔴 Reddit API - Subreddit ve konu bazlı analiz
  • 🌐 Custom Web API - Özel JSON API desteği
  • 📁 JSON Dosyası - Yerel veri analizi
  • 🧪 Dummy Data - Test ve geliştirme için sahte veri

✨ Özellikler

📈 Analiz Yetenekleri

Özellik Açıklama
🔑 Keyword Analizi En sık kullanılan kelimeleri tespit eder ve görselleştirir
😊 Duygu Analizi Pozitif, negatif ve nötr içerikleri sınıflandırır
👥 Aktif Kullanıcılar En çok paylaşım yapan kullanıcıları listeler
📊 İstatistikler Detaylı istatistiksel özet sunar
💾 Rapor Kaydetme Tüm analizleri TXT formatında dışa aktarır

🔌 Veri Kaynakları

  • Reddit API: Herhangi bir subreddit'ten veya konu aramasından gerçek zamanlı veri çekme
  • Web API: Özel JSON endpoint'lerinden veri alma
  • JSON Dosyası: Yerel JSON dosyalarını analiz etme
  • Dummy Source: Offline test için hazır veri seti

🚀 Kurulum

Gereksinimler

  • Java 11 veya üzeri
  • 📦 Maven 3.6+ (veya dahil edilen Maven Wrapper)

Adımlar

  1. Repository'yi klonlayın

    git clone https://github.com/dusova/social-media-analyzer-tool/.git
    cd social-media-analyzer-tool
  2. Projeyi derleyin

    # Windows
    .\mvnw.cmd clean compile
    
    # Linux/macOS
    ./mvnw clean compile
  3. Uygulamayı çalıştırın

    # Windows
    .\mvnw.cmd exec:java
    
    # Linux/macOS
    ./mvnw exec:java

📖 Kullanım

Başlangıç

Uygulama başlatıldığında aşağıdaki menü görüntülenir:

╔══════════════════════════════════════════════════════════╗
║        SOSYAL MEDYA ANALİZ ARACI (SMATool)               ║
╚══════════════════════════════════════════════════════════╝

┌────────────────────────────────────────┐
│   VERİ KAYNAĞI SEÇİMİ                  │
└────────────────────────────────────────┘
1. Web API (Hosting)
2. JSON Dosyası
3. Sahte Veri (DummyAPI - Offline Test)
4. Reddit API (Subreddit/Topic Analizi)

🔴 Reddit API Kullanımı

  1. Seçenek 4'ü seçin
  2. Subreddit veya arama modunu belirleyin
  3. Konu/subreddit adını girin (örn: technology, programming, python)
  4. Çekilecek post sayısını belirleyin (max 100)

Örnek Subreddit'ler:

  • technology - Teknoloji haberleri
  • programming - Programlama tartışmaları
  • python - Python dili
  • java - Java geliştirme
  • news - Güncel haberler

📊 Analiz Menüsü

┌────────────────────────────────────────┐
│   ANALİZ MENÜSÜ                        │
└────────────────────────────────────────┘
1. Keyword Analizi
2. Duygu Analizi (Sentiment)
3. En Aktif Kullanıcılar
4. İstatistiksel Özet
5. Tüm Analizleri Göster
6. Rapor Kaydet (TXT)
0. Çıkış

Örnek Çıktılar

Keyword Analizi:

╔════════════════════════════════════════╗
║    KEYWORD ANALİZİ (TOP 10)            ║
╚════════════════════════════════════════╝
 1. technology      │ 45 kez │ ████████████████████
 2. programming     │ 32 kez │ ██████████████
 3. software        │ 28 kez │ ████████████

İstatistiksel Özet:

╔════════════════════════════════════════╗
║    İSTATİSTİKSEL ÖZET                  ║
╚════════════════════════════════════════╝
Toplam gönderi      : 50
Benzersiz kullanıcı : 45
Toplam kelime       : 2787
Ortalama kelime     : 55

🏗 Proje Mimarisi

SMATool/
├── src/main/java/com/codewithmad/smatool/
│   ├── SMATool.java              # Ana sınıf (Entry point)
│   ├── analyzer/
│   │   └── SocialMediaAnalyzer.java   # Analiz motoru (Singleton)
│   ├── model/
│   │   └── Post.java             # Veri modeli
│   ├── source/
│   │   ├── DataSource.java       # Interface (Abstraction)
│   │   ├── ApiSource.java        # Web API implementasyonu
│   │   ├── JsonFileSource.java   # JSON dosya implementasyonu
│   │   ├── DummySource.java      # Test verisi implementasyonu
│   │   └── RedditSource.java     # Reddit API implementasyonu
│   └── ui/
│       └── CLI.java              # Komut satırı arayüzü
├── pom.xml                       # Maven yapılandırması
├── mvnw                          # Maven Wrapper (Linux/macOS)
└── mvnw.cmd                      # Maven Wrapper (Windows)

🎨 Tasarım Desenleri

Desen Kullanım
Singleton SocialMediaAnalyzer - Tek analiz motoru instance'ı
Strategy DataSource interface - Farklı veri kaynakları
Factory Veri kaynağı seçimine göre nesne oluşturma

📦 Bağımlılıklar

  • Gson 2.10.1 - JSON parsing için Google Gson kütüphanesi

🔧 Yapılandırma

Özel API Kullanımı

Web API seçeneğinde kendi JSON API'nizi kullanabilirsiniz. API'nizin aşağıdaki formatta veri döndürmesi gerekir:

[
  {
    "kullanici": "username",
    "displayName": "Display Name",
    "metin": "Post içeriği",
    "tarih": "2025-01-01",
    "id": "unique-id"
  }
]

🤝 Katkıda Bulunma

  1. Bu repository'yi fork edin
  2. Feature branch oluşturun (git checkout -b feature/YeniOzellik)
  3. Değişikliklerinizi commit edin (git commit -m 'Yeni özellik eklendi')
  4. Branch'inizi push edin (git push origin feature/YeniOzellik)
  5. Pull Request açın

📜 Lisans

Bu proje MIT lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakınız.


👨‍💻 İletişim

Mustafa Arda Düşova

Email LinkedIn GitHub Website


⭐ Bu projeyi beğendiyseniz yıldız vermeyi unutmayın! ⭐

Made with ❤️ by Mustafa Arda Düşova

About

📊 Sosyal Medya Analiz Aracı (SMATool) - Reddit subreddit'lerinden ve özel API'lerden veri çekerek keyword analizi, duygu analizi, kullanıcı istatistikleri sunan CLI uygulaması. Nesne Tabanlı Programlama prensipleriyle Java 11'de geliştirildi.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages