💡 İlham Kaynağı (Inspiration)
İnternetin köklü ve en güvenilir metin tabanlı iletişim kültürü olan IRC (Internet Relay Chat) ile modern web dünyasının en güçlü gerçek zamanlı medya teknolojisi olan WebRTC'yi bir araya getirmek istedik. Geleneksel görüntülü sohbet platformlarının hantallığından uzak, retro ruhu modern teknolojiyle harmanlayan, tamamen bulut tabanlı ve ölçeklenebilir bir hibrit platform oluşturmak amacıyla Chattv'yi geliştirdik.
🚀 Chattv Nedir ve Ne İş Yapar? (What it does)
Chattv, kullanıcıların hem klasik IRC komutları ve odalarıyla yazışabildiği hem de aynı oda içerisindeki kişilerle anında, düşük gecikmeli görüntülü ve sesli sohbet başlatabildiği yeni nesil bir iletişim platformudur.
- Hibrit Sohbet Deneyimi: Aynı ekranda hem IRC daemon altyapısı üzerinden metin tabanlı odalar hem de WebRTC ile görüntülü akış.
- Gelişmiş Veri Senkronizasyonu: Kullanıcı durumları, oda listeleri ve anlık mesajlaşma verileri kayıpsız bir şekilde hem lokalde hem bulutta işlenir.
- Kolay ve Hızlı Erişim: chattv.com.tr adresi üzerinden herhangi bir kurulum veya eklenti gerektirmeden tarayıcı üzerinden anında bağlantı.
🛠️ Nasıl Geliştirdik? (How we built it)
Chattv'nin arkasında, localden buluta uzanan oldukça katmanlı ve güçlü bir teknoloji yığını (stack) bulunuyor:
- IRC Altyapısı & Daemon: Klasik IRC mimarisini modern web standartlarına uyarlamak için Node.js kullanarak özel bir IRC Daemon yapısı kodladık.
- Çift Katmanlı Veri Yönetimi (SQLite3 & Firebase): Projede veri tutarlılığını ve hızı optimize etmek için hibrit bir veri modeli seçtik. Hızlı yerel sorgular, session yönetimi ve loglama için SQLite3 kullanırken; odaların anlık durum senkronizasyonunu ve global veri akışını gerçek zamanlı sağlamak için Firebase Realtime Database entegrasyonu yaptık.
- Gerçek Zamanlı Medya (WebRTC): Kullanıcıların odalarda birbirleriyle p2p (peer-to-peer) olarak, en düşük gecikmeyle görüntülü ve sesli iletişim kurabilmesi için WebRTC sinyalleşme mekanizmasını entegre ettik.
- Konteynerleştirme ve Dağıtım (Docker & Hugging Face): Localhostta ayağa kaldırdığımız Node.js backend ve IRC daemon yapısını Docker ile konteyner haline getirdik. Bu sayede platform bağımsız, taşınabilir bir altyapı elde ederek projeyi Hugging Face Spaces üzerinde Docker mimarisiyle 7/24 canlıda çalışacak şekilde konumlandırdık.
- Frontend & Yayınlama (Firebase Hosting): Kullanıcı arayüzümüzü Firebase Hosting kullanarak optimize bir şekilde yayına aldık ve projemizi chattv.com.tr domainiyle tamamen entegre ettik.
🧠 Karşılaştığımız Zorluklar (Challenges we ran into)
- Hugging Face Port ve Protokol Kısıtlamaları: Hugging Face Spaces üzerinde Docker çalıştırırken standart IRC protokol portlarını ve WebRTC sinyalleşme portlarını dış dünyaya açmak ağ kısıtlamalarına takıldı. Bu sorunu aşmak için tüm IRC ve WebRTC sinyalleşme trafiğini güvenli WebSocket (WSS) protokolü üzerinden tek bir HTTP portuna tünelledik.
- SQLite3 ve Firebase Veri Senkronizasyonu: Lokal çalışan SQLite3 ile buluttaki Firebase Realtime DB arasındaki veri senkronizasyonunu yarış durumları (race conditions) oluşturmadan yönetmek zorlayıcıydı. Event-driven (olay güdümlü) bir mimari kurarak, backend üzerindeki her IRC aksiyonunun eş zamanlı olarak iki veritabanına da güvenli bir şekilde yazılmasını sağladık.
🏅 Başarılarımız (Accomplishments that we're proud of)
- Localhostta sıfırdan geliştirdiğimiz bağımsız bir IRC Daemon yapısını, modern bulut teknolojileri (Docker, Firebase, Hugging Face) ile birleştirerek tamamen sunucusuz ve canlıya alınmış çalışan bir ürüne dönüştürdük.
- WebRTC ve IRC gibi iki farklı chat mimarisini tek bir çatı altında performans kaybı yaşanmadan çalıştırmayı başardık.
📚 Ne Öğrendik? (What we learned)
- Docker ile mikroservis mantığında backend konteynerleştirmeyi ve Hugging Face gibi cloud platformlarında ağ mimarilerini (port forwarding/WebSocket tunneling) yönetmeyi derinlemesine öğrendik.
- NoSQL (Firebase) ve Relational (SQLite3) veritabanlarının güçlerini birleştirerek hibrit bir state yönetimi kurma konusunda büyük tecrübe kazandık.
🔮 Chattv'nin Geleceği (What's next for Chattv)
- IRC kanallarına entegre edilebilecek yapay zeka tabanlı (Hugging Face modellerini doğrudan besleyen) moderasyon ve eğlence botları geliştirmek.
- Görüntülü sohbet esnasında WebRTC veri kanallarını (DataChannels) kullanarak uçtan uca şifreli dosya paylaşımı özelliği eklemek.
- Mobil kullanıcılar için IRC core altyapısını destekleyen yerel bir mobil uygulama yayınlamak.
Log in or sign up for Devpost to join the conversation.