Skip to content

turkereren/Chat-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💬 Gerçek-Zamanlı Chat Uygulaması

Flask ve Flask-SocketIO ile geliştirilmiş modern ve güvenli bir gerçek-zamanlı chat uygulaması. Python'un threading modelini kullanır, ekstra async kütüphaneler gerektirmez.


✨ Özellikler

🎯 Temel Özellikler

  • Gerçek-Zamanlı Mesajlaşma: WebSocket tabanlı anlık mesajlaşma
  • Kullanıcı Listesi: Çevrimiçi kullanıcıları görüntüleme
  • Mesaj Geçmişi: Son 50 mesajı görüntüleme (oturum açınca)
  • Zaman Damgaları: Her mesajın gönderilme zamanı
  • Bağlantı Durumu: Canlı bağlantı durumu göstergesi

🎨 Kullanıcı Arayüzü

  • Modern Tasarım: Gradient arka plan, animasyonlu mesajlar
  • Responsive: Mobil ve masaüstü uyumlu
  • Kullanıcı Dostu: Sezgisel arayüz, kolay kullanım
  • Görsel Geri Bildirim: Animasyonlar ve geçiş efektleri

🔒 Güvenlik

  • XSS Koruması: HTML escape ile güvenli mesaj gönderimi
  • Input Validation: Kullanıcı girdilerinin doğrulanması
  • Environment Variables: Güvenli yapılandırma yönetimi
  • Mesaj Sınırları: Uzun mesajların otomatik kısaltılması

⚡ Performans

  • Threading Model: Python'un built-in threading'i
  • Bellek Yönetimi: Mesaj geçmişi otomatik temizleme (son 100 mesaj)
  • Optimize Edilmiş: Hızlı ve verimli çalışma

🚀 Kurulum

Gereksinimler

  • Python 3.7+
  • Git

Adım Adım Kurulum

# 1. Repository'yi klonlayın
git clone https://github.com/<your-username>/chat-app.git
cd chat-app

# 2. Virtual environment oluşturun
# Windows:
py -3 -m venv venv
# macOS/Linux:
python3 -m venv venv

# 3. Virtual environment'ı aktifleştirin
# Windows (PowerShell):
.\venv\Scripts\Activate.ps1
# Windows (CMD):
venv\Scripts\activate.bat
# macOS/Linux:
source venv/bin/activate

# 4. Bağımlılıkları yükleyin
pip install -r requirements.txt

# 5. (Opsiyonel) Environment variables ayarlayın
# .env dosyası oluşturun ve aşağıdaki değerleri ekleyin:
# SECRET_KEY=your-secret-key-here
# PORT=5000
# FLASK_ENV=development

# 6. Uygulamayı çalıştırın
python server.py

Uygulama http://localhost:5000 adresinde çalışacaktır.


📖 Kullanım

  1. Sohbete Katılma:

    • Tarayıcınızda http://localhost:5000 adresine gidin
    • Kullanıcı adınızı girin ve "Katıl" butonuna tıklayın
  2. Mesaj Gönderme:

    • Mesaj alanına mesajınızı yazın
    • Enter tuşuna basın veya "Gönder" butonuna tıklayın
  3. Kullanıcıları Görme:

    • Çevrimiçi kullanıcılar üst panelde görüntülenir
    • Kendi kullanıcı adınız yeşil renkte gösterilir

🔧 Yapılandırma

Environment Variables

Uygulamayı yapılandırmak için .env dosyası oluşturabilirsiniz:

# Flask Secret Key (Production'da mutlaka güçlü bir key kullanın)
SECRET_KEY=your-secret-key-here

# Server Port (varsayılan: 5000)
PORT=5000

# Flask Environment
FLASK_ENV=development

Production Kullanımı

Production ortamında:

  • SECRET_KEY için güçlü bir key kullanın
  • FLASK_ENV=production olarak ayarlayın
  • Gerekirse reverse proxy (nginx) kullanın
  • HTTPS kullanın

🏗️ Teknik Detaylar

Backend

  • Flask: Web framework
  • Flask-SocketIO: WebSocket desteği
  • Threading: Async mode için threading kullanımı

Frontend

  • Bootstrap 5: Responsive UI framework
  • Socket.IO Client: WebSocket bağlantısı
  • Vanilla JavaScript: Ekstra framework yok

Veri Yapıları

  • users: {sid: {'username': str, 'room': str}}
  • message_history: {room: [messages]}
  • rooms: {room: set(sid1, sid2, ...)}

📝 Geliştirme Notları

Yapılan İyileştirmeler

  1. Güvenlik:

    • XSS koruması eklendi
    • Input validation ve sanitization
    • Environment variables desteği
  2. UI/UX:

    • Modern gradient tasarım
    • Kullanıcı listesi paneli
    • Bağlantı durumu göstergesi
    • Mesaj zaman damgaları
    • Animasyonlar ve geçişler
  3. Özellikler:

    • Mesaj geçmişi (son 50 mesaj)
    • Kullanıcı listesi güncellemeleri
    • Hata yönetimi ve bildirimler
    • Responsive tasarım
  4. Kod Kalitesi:

    • Daha iyi hata yönetimi
    • Fonksiyonel yapı
    • Yorumlar ve dokümantasyon
    • .gitignore eklendi

🤝 Katkıda Bulunma

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

📄 Lisans

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


🐛 Sorun Bildirimi

Bir hata bulduysanız veya özellik önerisi varsa, lütfen bir Issue açın.


👨‍💻 Geliştirici

Bu proje açık kaynak olarak geliştirilmiştir. Katkılarınızı bekliyoruz!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published