🎵

Muzibu
Kapsamlı Sistem Analizi

Türkiye'nin Modern Müzik Streaming Platformu

Tenant ID
1001
Domain
muzibu.com
Tarih
21 Aralık 2025

📋 İçindekiler

🌐

1. Genel Bakış

🎯 Platform Özeti

Platform: Spotify-style müzik streaming
Teknoloji: Laravel + Alpine.js + Tailwind CSS
Mimari: Multi-tenant SaaS
Streaming: HLS (HTTP Live Streaming)
UI Pattern: SPA-like with Blade SSR
State Management: Alpine.js stores

📊 Sistem İstatistikleri

8
Veri Modeli
20+
Controller
50+
View Dosyası
20+
Component

Console Analizi - Temiz Sistem

• ✅ Player state cleared (fresh start)
• ✅ SPA Router initialized (Hover Prefetch only)
• ✅ Player store verified
• ✅ Debug Panel connected
• ✅ Auto-prefetch kaldırıldı → 429 hatası yok
• ✅ Hover prefetch sorunsuz çalışıyor
🗄️

2. Veri Modelleri (8 Core Models)

🎵 Song (Şarkı)

Dosya: Modules/Muzibu/app/Models/Song.php
İlişkiler: Album, Artist (via Album), Genre, Playlists, Plays
Özellikler: HLS streaming, lyrics, duration, play count
Media: Audio file (HLS chunks)

💿 Album (Albüm)

Dosya: Modules/Muzibu/app/Models/Album.php
İlişkiler: Artist, Genre, Songs
Özellikler: Cover image, release date, total duration
Media: Cover image

🎤 Artist (Sanatçı)

Dosya: Modules/Muzibu/app/Models/Artist.php
İlişkiler: Albums, Songs (via Albums)
Özellikler: Bio, photo, social links
Media: Profile photo (circular)

📝 Playlist (Çalma Listesi)

Dosya: Modules/Muzibu/app/Models/Playlist.php
İlişkiler: User, Songs, Sectors, Radios
Özellikler: User-created, public/private, duration
Tipler: Editorial, User-created

🎸 Genre (Tür)

Dosya: Modules/Muzibu/app/Models/Genre.php
İlişkiler: Albums, Songs
Özellikler: Icon/image, description
Örnekler: Pop, Rock, Jazz, Classical

🎭 Sector (Sektör)

Dosya: Modules/Muzibu/app/Models/Sector.php
İlişkiler: Playlists, Radios
Özellikler: Mood-based categorization
Örnekler: Workout, Relax, Party, Study

📻 Radio (Radyo)

Dosya: Modules/Muzibu/app/Models/Radio.php
İlişkiler: Sectors, Playlists
Özellikler: Live stream URL, logo
Özel: Detay sayfası YOK, direkt çalar

📊 SongPlay (Dinleme İstatistiği)

Dosya: Modules/Muzibu/app/Models/SongPlay.php
İlişkiler: Song, User, Device
Özellikler: Play tracking, analytics
Kullanım: Popular songs, recommendations

🗃️ Database Tabloları (Tenant-Aware)

muzibu_songs
muzibu_albums
muzibu_artists
muzibu_playlists
muzibu_genres
muzibu_sectors
muzibu_radios
muzibu_song_plays
muzibu_playlist_song
🛣️

3. Route Yapısı

🌐 Frontend Routes (Blade Views)

GET / → Homepage
GET /playlists → Playlist grid
GET /playlists/{slug} → Playlist detail
GET /albums → Album grid
GET /albums/{slug} → Album detail
GET /artists → Artist grid
GET /artists/{slug} → Artist detail
GET /genres → Genre grid
GET /genres/{slug} → Genre detail
GET /sectors → Sector grid
GET /sectors/{slug} → Sector detail
GET /songs → Song list
GET /songs/{slug} → Song detail
GET /radios → Radio grid (NO detail)

👤 User Library Routes

GET /favorites → Favorites page
GET /my-playlists → User playlists
GET /playlist/{id}/edit → Edit playlist

🔍 API Routes (AJAX)

POST /api/muzibu/play → Play tracking
GET /api/muzibu/stream/{song} → HLS stream
GET /api/muzibu/playlists/featured → Featured lists
POST /api/muzibu/playlists → Create playlist
POST /api/muzibu/favorites/toggle → Toggle favorite
POST /api/muzibu/rating → Rate song
GET /api/muzibu/queue/refill → Infinite queue
⚙️

4. Controller Yapısı (20+ Controllers)

🌐 Frontend Controllers (Blade)

HomeController
Homepage + featured content
PlaylistController
Index, show (detail page)
AlbumController
Index, show (detail page)
ArtistController
Index, show (detail page)
GenreController
Index, show (detail page)
SectorController
Index, show (detail page)
SongController
Index, show (detail page)
RadioController
Index only (NO detail page)
FavoritesController
User favorites page
MyPlaylistsController
Index, edit playlist
SearchController
Search results (Livewire)

🔌 API Controllers (JSON)

SongStreamController
HLS streaming endpoint
PlayController
Play tracking, analytics
PlaylistManagementController
CRUD operations (create, update, delete)
QueueRefillController
Infinite queue algorithm
RatingController
Star rating (1-5)
DeviceController
Device limit, sessions
AlbumController (API)
JSON data for SPA
SongController (API)
JSON data for SPA
PlaylistController (API)
Featured playlists JSON
📄

5. View Sayfaları (50+ Blade Files)

📋 Index Sayfaları (Grid)

playlists/index.blade.php
albums/index.blade.php
artists/index.blade.php
genres/index.blade.php
sectors/index.blade.php
songs/index.blade.php
radios/index.blade.php

📖 Detail Sayfaları

playlists/show.blade.php
albums/show.blade.php
artists/show.blade.php
genres/show.blade.php
sectors/show.blade.php
songs/show.blade.php
radios/show.blade.php
YOK - Radio no detail

✨ Özel Sayfalar

home.blade.php
Homepage
favorites/index.blade.php
User favorites
my-playlists.blade.php
User playlists
playlist/edit.blade.php
Edit playlist
search/index.blade.php
Search results
dashboard.blade.php
User dashboard
🧩

6. UI Component'ler (20+ Components)

🎴 Card Components (Standardized)

album-card.blade.php
Square cover, bottom-right play
playlist-card.blade.php
Square cover, bottom-right play
artist-card.blade.php
Circular photo, bottom-right play
genre-card.blade.php
Square icon, bottom-right play
sector-card.blade.php
Square icon, bottom-right play
song-card.blade.php
Album cover, bottom-right play
radio-card.blade.php
⚠️ FARKLI: Center overlay play (no detail page)
song-row.blade.php
List view (table row)

🖼️ Layout Components

header.blade.php
Top navigation + search
footer.blade.php
Bottom footer links
sidebar-left.blade.php
Main navigation menu
sidebar-right.blade.php
Preview panel (album/playlist detail)
bottom-nav.blade.php
Mobile navigation
player.blade.php
Bottom sticky player

🪟 Modal & Overlay Components

context-menu.blade.php
Right-click menu
playlist-select-modal.blade.php
Add to playlist
create-playlist-modal.blade.php
Create new playlist
auth-modal.blade.php
Login/register
device-limit-modal.blade.php
Device limit warning
lyrics-overlay.blade.php
Fullscreen lyrics
queue-overlay.blade.php
Current queue view
rating-modal.blade.php
Star rating (1-5)
keyboard-shortcuts-overlay.blade.php
Keyboard help (?)

🔧 Helper Components

loading-skeleton.blade.php
Loading animation
loading-overlay.blade.php
Fullscreen loading
debug-panel.blade.php
Dev debug panel
cookie-consent.blade.php
GDPR cookie banner
ai-chat-widget.blade.php
AI chatbot

7. JavaScript Yapısı (Alpine.js)

🎯 Core JavaScript Files

player-core.js
Main player logic, HLS.js integration
~3600 lines
muzibu-store.js
Alpine.js global store
spa-router.js
SPA navigation + hover prefetch
favorites.js
Favorite toggle, sync
keyboard.js
Keyboard shortcuts (Space, Arrow keys)
session.js
Session management, device limit
auth.js
Auth state, login/register modals

🗃️ Alpine.js Stores

$store.player
Player state, current song, queue
$store.favorites
Favorite items (songs, albums, etc.)
$store.sidebar
Sidebar preview panel state
$store.contextMenu
Right-click context menu
$store.auth
Auth state (isLoggedIn, user)
$store.session
Device sessions, limits

✨ JavaScript Özellikleri

HLS Streaming
HLS.js ile adaptive bitrate
Infinite Queue
Otomatik şarkı yükleme
Keyboard Shortcuts
Space, ←, →, ↑, ↓
SPA Navigation
Hover prefetch, smooth transitions
Local Storage
Queue, volume, settings
Media Session API
Browser media controls
🎧

8. Player Sistemi (HLS Streaming)

⚡ Player Özellikleri

HLS Streaming: Adaptive bitrate, chunk-based
Infinite Queue: Otomatik şarkı yükleme
Context-aware: Album, Playlist, Genre, Sector
Media Session API: Browser controls
Play Tracking: Analytics, song plays
Fade In/Out: Smooth transitions
Volume Memory: LocalStorage persistence
Keyboard Shortcuts: Space, Arrow keys

🎨 Player UI Elements

Bottom Sticky Player: Always visible
Album Cover: Current song artwork
Progress Bar: Seekable timeline
Volume Slider: 0-100% control
Play/Pause: Large center button
Next/Previous: Skip controls
Favorite: Heart icon toggle
Queue: View upcoming songs
Lyrics: Fullscreen overlay
🚀

9. Özellikler & Sistemler

👤 Kullanıcı Özellikleri

Favorites (Multi-type)
Create Playlists
Edit Playlists
Rate Songs (1-5 stars)
Listening History
Device Management
Profile Settings

💎 Premium Sistemler

Subscription Plans
Device Limit (3-5 devices)
Session Management
Play Limits
Corporate Accounts
Payment Integration

⚙️ Teknik Sistemler

Multi-tenant Architecture
HLS Streaming (CDN)
Response Cache
SPA Router (Hover Prefetch)
SEO Meta (Dynamic)
CORS for HLS
AI Chat Widget
🖥️

10. Browser Console Analizi (b-html.txt)

Temiz Sistem - Hatalar Giderildi

player-core.js:3608 ✅ Player state cleared (fresh start)
spa-router.js:95 🚀 SPA Router initialized (Hover Prefetch only)
VM2058:3 🔐 Auth Debug: {isLoggedIn: false, currentUser: null}
radios:5052 ✅ Player store verified
VM2349:38 🧪 Debug Panel connected
radios:5038 ✅ Player store = Proxy to root (auto-forward all properties/methods)

spa-router.js:233 ⚡ Prefetching (hover): /radios
spa-router.js:258 ✅ Prefetched (hover): /radios
spa-router.js:233 ⚡ Prefetching (hover): /sectors
spa-router.js:258 ✅ Prefetched (hover): /sectors
spa-router.js:233 ⚡ Prefetching (hover): /genres
spa-router.js:258 ✅ Prefetched (hover): /genres
spa-router.js:233 ⚡ Prefetching (hover): /albums
spa-router.js:258 ✅ Prefetched (hover): /albums
spa-router.js:233 ⚡ Prefetching (hover): /playlists
spa-router.js:258 ✅ Prefetched (hover): /playlists

❌ Önceki Sorun (Çözüldü)

429 Too Many Requests:
Auto-prefetch script'leri her sayfa yüklemede ilk 6 kartı yüklemeye çalışıyordu
JSON Parse Error:
429 hatası HTML döndürüyordu, player JSON bekliyordu
Çakışma:
SPA Router + Auto-prefetch aynı anda çalışıyordu

✅ Uygulanan Çözüm

Auto-prefetch Kaldırıldı:
7 dosyadan auto-prefetch script'leri temizlendi
SPA Router Hover Prefetch:
Sadece kullanıcının hover yaptığı kartlar yükleniyor
Sonuç:
✓ 429 hatası yok
✓ Prefetch çalışıyor
✓ Hızlı ve performanslı

🎵 Muzibu - Kapsamlı Sistem Analizi

Türkiye'nin Modern Müzik Streaming Platformu

🤖 Claude AI ile oluşturuldu • 21 Aralık 2025