🌐 Sosyal Ağ Analizi ve Görselleştirme
Sosyal Ağ Analizi ve Görselleştirme, sosyal ağları graf (graph) veri yapısı ile modelleyen, çeşitli graf algoritmaları kullanarak analiz eden ve sonuçları modern bir PyQt6 arayüzü üzerinden görselleştiren bir masaüstü uygulamasıdır.
Bu proje, algoritma bilgisi, nesne yönelimli programlama, veri yapıları ve kullanıcı arayüzü geliştirme konularındaki yetkinliği göstermek amacıyla geliştirilmiştir.
⸻
✨ Özellikler
🔹 Grafik (Graph) Modelleme • Kullanıcılar Node (Düğüm) olarak modellenir • Kullanıcılar arası ilişkiler Edge (Kenar) olarak temsil edilir • Yönsüz ve ağırlıklı grafik yapısı • Düğüm özelliklerine göre otomatik kenar ağırlığı hesaplama
🔹 Uygulanan Algoritmalar
• BFS (Breadth First Search) – Erişilebilirlik analizi
• DFS (Depth First Search) – Derinlik tabanlı gezinti
• Dijkstra – En kısa yol bulma algoritması
• A* – Sezgisel (heuristic) en kısa yol algoritması
• Bağlı Bileşenler (Connected Components)
• Degree Centrality – Düğüm önem analizi
• Welsh–Powell Graph Coloring – Grafik renklendirme
🔹 Görselleştirme • Grafik yapısı canvas üzerinde canlı olarak çizilir • Algoritma sonuçları: • renkli düğümler • vurgulanan yollar • Seçilen düğümün detayları tablo halinde gösterilir
🔹 Kullanıcı Arayüzü (UI) • Modern card-based (kart tabanlı) tasarım • Scroll destekli kontrol paneli • Primary / Danger / Ghost buton stilleri • Kullanıcı dostu ve etkileşimli arayüz
🔹 JSON Desteği • Grafiği JSON formatında kaydetme • Daha önce kaydedilmiş grafiği JSON’dan yükleme
🧱 Proje Yapısı
SocialNetwork/ │ ├── src/ │ ├── main.py │ │ │ ├── models/ │ │ ├── node.py │ │ ├── edge.py │ │ └── graph.py │ │ │ ├── algorithms/ │ │ ├── bfs.py │ │ ├── dfs.py │ │ ├── dijkstra.py │ │ ├── a_star.py │ │ ├── components.py │ │ ├── centrality.py │ │ └── coloring.py │ │ │ ├── ui/ │ │ ├── main_window.py │ │ ├── graph_canvas.py │ │ └── style.py │ ├── README.md └── requirements.txt
🖥️ Kurulum
1️⃣ Sanal Ortam Oluşturma
python3 -m venv venv source venv/bin/activate
2️⃣ Gerekli Paketleri Kurma
pip install PyQt6 (İsteğe bağlı: matplotlib, networkx)
🧪 Kullanım Akışı
1. Kullanıcı (Node) ekle
2. Kullanıcılar arasında bağlantı (Edge) oluştur
3. Algoritmalardan birini çalıştır
4. Sonuçları görselleştir
5. Grafiği JSON olarak kaydet veya JSON’dan yükle
📌 Kullanılan Teknolojiler
• Python 3
• PyQt6
• Nesne Yönelimli Programlama (OOP)
• Grafik Veri Yapıları
• Graf Algoritmaları
• JSON Serialization
👤 Geliştirici • Yunus Emre Yılmaz Bilişim Sistemleri Mühendisliği Öğrencisi • Yunus Emir Atıcı Bilişim Sistemleri Mühendisliği Öğrencisi