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.
- 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
- 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
- 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ı
- 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
- Python 3.7+
- Git
# 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.pyUygulama http://localhost:5000 adresinde çalışacaktır.
-
Sohbete Katılma:
- Tarayıcınızda
http://localhost:5000adresine gidin - Kullanıcı adınızı girin ve "Katıl" butonuna tıklayın
- Tarayıcınızda
-
Mesaj Gönderme:
- Mesaj alanına mesajınızı yazın
- Enter tuşuna basın veya "Gönder" butonuna tıklayın
-
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
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=developmentProduction ortamında:
SECRET_KEYiçin güçlü bir key kullanınFLASK_ENV=productionolarak ayarlayın- Gerekirse reverse proxy (nginx) kullanın
- HTTPS kullanın
- Flask: Web framework
- Flask-SocketIO: WebSocket desteği
- Threading: Async mode için threading kullanımı
- Bootstrap 5: Responsive UI framework
- Socket.IO Client: WebSocket bağlantısı
- Vanilla JavaScript: Ekstra framework yok
- users:
{sid: {'username': str, 'room': str}} - message_history:
{room: [messages]} - rooms:
{room: set(sid1, sid2, ...)}
-
Güvenlik:
- XSS koruması eklendi
- Input validation ve sanitization
- Environment variables desteği
-
UI/UX:
- Modern gradient tasarım
- Kullanıcı listesi paneli
- Bağlantı durumu göstergesi
- Mesaj zaman damgaları
- Animasyonlar ve geçişler
-
Özellikler:
- Mesaj geçmişi (son 50 mesaj)
- Kullanıcı listesi güncellemeleri
- Hata yönetimi ve bildirimler
- Responsive tasarım
-
Kod Kalitesi:
- Daha iyi hata yönetimi
- Fonksiyonel yapı
- Yorumlar ve dokümantasyon
- .gitignore eklendi
- Bu repository'yi fork edin
- Yeni bir branch oluşturun (
git checkout -b feature/amazing-feature) - Değişikliklerinizi commit edin (
git commit -m 'Add some amazing feature') - Branch'inizi push edin (
git push origin feature/amazing-feature) - Bir Pull Request açın
Bu proje MIT lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakın.
Bir hata bulduysanız veya özellik önerisi varsa, lütfen bir Issue açın.
Bu proje açık kaynak olarak geliştirilmiştir. Katkılarınızı bekliyoruz!