Skip to content

Repository files navigation

🎵 Ritmora

Şarkıları keşfet, sanatçıları incele, paketine uygun müzikleri dinle ve dinleme geçmişine göre sana özel öneriler al.




✨ Proje Hakkında

Ritmora, kullanıcıların şarkıları, sanatçıları ve müzik türlerini keşfedebildiği; paket seviyelerine göre müzik dinleyebildiği modern bir müzik platformudur.

Kullanıcılar katalogdaki tüm şarkıları görebilir. Ancak şarkı oynatılmak istendiğinde sistem, kullanıcının paket seviyesini kontrol eder. Böylece katalog sade kalır, erişim kontrolü ise yalnızca oynatma anında yapılır.

Örneğin:

  • Basic kullanıcılar sadece Basic şarkıları dinleyebilir.
  • Gold kullanıcılar Basic + Gold şarkıları dinleyebilir.
  • Premium kullanıcılar Basic + Gold + Premium şarkıları dinleyebilir.
  • Elit kullanıcılar tüm şarkılara erişebilir.

Şarkı oynatma anında JWT içerisindeki paket bilgisi okunur ve erişim kontrolü yapılır.


✨ Özellikler

👤 Kullanıcı Özellikleri

  • Kullanıcı kayıt sistemi
  • Kullanıcı giriş sistemi
  • JWT tabanlı kimlik doğrulama
  • Paket seviyesine göre şarkı dinleme
  • Şarkı, sanatçı ve tür listeleme filtreleme
  • Sanatçı detay sayfası
  • Dinleme geçmişi görüntüleme
  • Kullanıcı geçmişine göre müzik önerileri ML.NET
  • Modern ve responsive kullanıcı arayüzü

🔐 JWT ve Paket Kontrolü

Kullanıcı giriş yaptığında API tarafından JWT oluşturulur.

Token içerisinde kullanıcının bilgileri ve paket seviyesi tutulur:

UserId
Email
Name
Surname
PackageLevel
Role

Şarkı oynatma isteğinde sistem token içerisindeki PackageLevel değerini okur.

Eğer kullanıcının paketi şarkı için yeterliyse oynatma başlar. Yeterli değilse kullanıcıya paket yükseltmesi gerektiğini belirten uyarı gösterilir.


🎵 Dinleme Geçmişi

Kullanıcı bir şarkıyı oynatmak istediğinde ve paket kontrolünden geçtiğinde dinleme geçmişi kaydedilir.

Kaydedilen bilgiler:

UserId
SongId
GenreId
ListenedAt

Bu kayıtlar daha sonra kullanıcıya özel öneriler üretmek için kullanılır.


🧠 ML.NET ile Müzik Öneri Sistemi

Ritmora’da kullanıcıların dinleme geçmişine göre öneri sistemi bulunmaktadır.

Sistem temel olarak şu mantıkla çalışır:

  • Kullanıcının dinlediği şarkılar alınır.
  • Kullanıcının daha önce dinlediği şarkılar öneri listesinden çıkarılır.
  • Kullanıcının paket seviyesinin yetmediği şarkılar filtrelenir.
  • ML.NET ile kullanıcı-şarkı ilişkisi üzerinden skor üretilebilir.
  • Veri az olduğunda sistem, kullanıcının en çok dinlediği türlerden öneri üretir.

Bu sayede kullanıcıya, daha önce dinlemediği ve paket seviyesine uygun şarkılar önerilir.


🎧 Player Özellikleri

  • MP3 şarkı oynatma
  • Paket kontrolü ile güvenli oynatma
  • Oynatma / duraklatma
  • Sonraki / önceki şarkı
  • Shuffle modu
  • Repeat modu
  • Ses kontrolü
  • Dinleme geçmişi kaydı
  • Yetkisiz erişimde uyarı mesajı

🛠️ Admin Panel Özellikleri

  • Şarkı ekleme, güncelleme ve silme
  • MP3 dosya yükleme
  • Sanatçı yönetimi
  • Tür yönetimi
  • Paket yönetimi
  • Kullanıcı yönetimi
  • Kullanıcı paket güncelleme
  • Rol atama
  • Dinleme raporları
  • Modern admin arayüzü

🧱 Kullanılan Teknolojiler

Backend

  • ASP.NET Core Web API
  • Entity Framework Core
  • ASP.NET Core Identity
  • JWT Authentication
  • AutoMapper
  • ML.NET
  • SQL Server

Frontend

  • ASP.NET Core MVC
  • Razor View
  • ViewComponent
  • HTML
  • CSS
  • JavaScript
  • Responsive UI

Araçlar

  • Rider
  • Swagger
  • Git & GitHub

🏗️ Proje Mimarisi

Proje iki ana katmandan oluşur:

Ritmora.WebUI
│
├── Controllers
├── Areas/Admin
├── Views
├── ViewComponents
├── Services
└── DTOs

Ritmora.WebApi
│
├── Controllers
├── Context
├── Entities
├── DTOs
├── Services
├── Mappings
└── Migrations

Ekran Görüntüleri

Account


Ana Sayfa

Ana sayfada dinleme geçmişine göre önerilen şarkılar gösterilir.


Şarkılar

Şarkılar listelenebilir, filtrelenebilir ve oynatma sırasında paket kontrolü yapılır.


Sanatçılar


Türler


Hata Sayfaları


Admin Panel

Kullanıcı Yönetimi


Şarkı Yönetimi


Sanatçı Yönetimi


Tür Yönetimi


Paket Yönetimi


Rol Yönetimi

About

ASP.NET Core MVC ve Web API ile geliştirilmiş, JWT paket kontrolü, MP3 player, admin paneli, dinleme geçmişi ve ML.NET öneri sistemi içeren müzik platformu.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages