MindRooms.

MindRooms’ta podcast dinleyebilir veya kendi yayınını paylaşabilirsin. Sevdiğin serileri takip edebilir, bölümler üzerine yorum yapabilir ve aynı konulara ilgi duyan insanlarla topluluklarda buluşabilirsin. Canlı ses odalarında dinleyiciler ve içerik üreticileri bir araya gelir. Mobilde ve web’de ücretsiz.
İlgi alanına ve dinlemek istediğin dile göre yeni podcastler bulabilirsin.
Podcast dinlerken yorum yapabilir, diğer dinleyicilerle sohbet edebilirsin.
Ortak ilgi alanları etrafında dinleyiciler ve içerik üreticileriyle buluşabilirsin.
Sevdiğin serileri takip edip tüm bölümlerine tek yerden ulaşabilirsin.
Dinleme, paylaşma ve topluluklar
MindRooms, sesli içerik dinlemek ve paylaşmak için geliştirilen bir uygulama. Keşfet ekranında podcast ve seriler listeleniyor; dil ve konu filtreleriyle içerik seçilebiliyor. Bir bölümden serinin diğer bölümlerine geçilebiliyor. Kullanıcılar serileri takip edebiliyor, yorum yapabiliyor ve ilgilendikleri topluluklara katılabiliyor.
İçerik yükleme bölümünde ses dosyası, kapak ve açıklama giriliyor. Dinleyici tarafında ise oynatma kontrolleri, bölüm bilgileri ve yorumlar bulunuyor. Profil, topluluk ve seri sayfaları içerikleri ayrı ayrı listeliyor. Uygulama mobil cihazlar ve web için geliştirildi.
Oynatıcı ve cihaz desteği
Uygulama Flutter ile geliştirildi; oturum, içerik ve oynatma durumu Riverpod ile yönetiliyor. Tablet oynatıcısının ve web canlı yayın ekranlarının ayrı yerleşimleri var. Podcast çalarken başka sayfalarda gezilebilmesi için oynatma durumu açık olan ekrandan ayrı tutuluyor.
Podcast oynatma için just_audio ve arka plan ses desteği kullanılıyor. Canlı ses WebRTC ile iletiliyor. Mikrofon izni, ses çıkışı ve bağlantı yönetiminin tarayıcıda ve telefonda farklı olması nedeniyle bu işlemler platforma özel kodlarla ele alınıyor.
Dosya yükleme ve saklama
Hesaplar, podcast bilgileri, yorumlar ve topluluk kayıtları Supabase’de tutuluyor. Ses dosyaları Cloudflare R2’de saklanıyor; dosya erişimi ilgili Worker üzerinden yönetiliyor. Veritabanında sesin kalıcı dosya yolu bulunuyor. Dinleme sırasında geçerli erişim bağlantısı alınıyor, süresi dolan bir bağlantı kalıcı kayıt olarak saklanmıyor.
Yükleme yüzdesi gönderilen bayt sayısına göre hesaplanıyor. Yüklemenin bitmesi, iptal edilmesi ve hata vermesi ayrı sonuçlar olarak işleniyor. Ses, kapak ve profil görsellerinin erişim kuralları da ayrı. Dosyayı görme veya değiştirme izni sunucuda kontrol ediliyor.
Canlı ses odaları
Canlı odada yayıncı, konuşmacı ve dinleyicinin yetkileri farklı. Oda açma, odaya katılma, konuşmacı izni verme ve yayını bitirme işlemleri ayrı yönetiliyor. WebRTC bağlantısının yanında, veritabanında odanın açık mı kapalı mı olduğu da takip ediliyor.
Bağlantı kesilmesi veya yayının bitmesi durumunda uygulamanın oda bilgisini güncellemesi gerekiyor. Sunucuya ait bağlantı ayrıntıları yalnız ihtiyacı olan işlemlerde kullanılıyor. Canlı yayın kaydı ise ayrı izin ve altyapı kontrollerine bağlı; bir odanın açılması otomatik olarak kayıt başlatmıyor.
Hesap işlemleri ve moderasyon
Takip, beğeni, yorum ve topluluk üyeliği veritabanındaki erişim kurallarıyla yönetiliyor. İçerik sahibiyle diğer kullanıcıların yapabileceği işlemler ayrılıyor. Hesap silme, hesap verilerini dışa aktarma ve moderasyon işlemleri de uygulamanın kapsamında bulunuyor.
Hata takibi için Sentry, bildirimler için Firebase Messaging kullanılıyor. Kontroller arayüzü, veri erişimini ve cihazlara göre ses davranışını kapsıyor. Buradaki ekran görüntüleri örnek içeriklerle hazırlanmıştır; ekranlarda görünen üye, takipçi ve dinlenme sayıları canlı kullanım verisi değildir.
Dilci