\section*{3. DİYAGRAMLAR}
\subsection*{3.1. Use Case Diyagramı}
Sistemin temel kullanım senaryolarını gösteren Use Case diyagramı aşağıda yer almaktadır. Bu diyagram, sistemin ana aktörleri (Kullanıcı) ve sistemin sunduğu temel işlevleri göstermektedir.
\begin{figure}[h] \centering \includegraphics[width=0.7\textwidth]{usecase.png} \caption{MediaRate Platformu Use Case Diyagramı} \label{fig:usecase} \end{figure}
Use Case diyagramında görüldüğü üzere, sistemin ana aktörü olan Kullanıcı, aşağıdaki temel işlevleri gerçekleştirebilmektedir:
\begin{itemize} \item Kullanıcı kaydı ve girişi \item Profil yönetimi (bilgi güncelleme, profil fotoğrafı yükleme) \item İçerik arama ve keşfetme \item İçerik detaylarını görüntüleme \item İçerik puanlama (1-10 arası) \item İçerik hakkında yorum yapma \item Liste oluşturma ve yönetme \item Listelere içerik ekleme/çıkarma \item Diğer kullanıcıları takip etme \item Feed (akış) sayfasında aktiviteleri görüntüleme \item Aktiviteleri beğenme ve yorum yapma \end{itemize}
\subsection*{3.2. Class Diyagramı}
Sistemin nesne yönelimli yapısını gösteren Class diyagramı aşağıda yer almaktadır. Bu diyagram, sistemin temel sınıflarını, özelliklerini ve aralarındaki ilişkileri göstermektedir.
\begin{figure}[h] \centering \includegraphics[width=0.7\textwidth]{class.png} \caption{MediaRate Platformu Class Diyagramı} \label{fig:class} \end{figure}
Class diyagramında temel sınıflar ve ilişkileri şu şekildedir:
\begin{itemize} \item \textbf{User:} Kullanıcı bilgilerini temsil eden sınıf (id, username, email, password_hash, avatar_url, bio) \item \textbf{Content:} Film ve kitap içeriklerini temsil eden sınıf (id, type, title, description, release_year, cover_url) \item \textbf{Rating:} Kullanıcıların içeriklere verdiği puanları temsil eden sınıf (user_id, content_id, score) \item \textbf{Review:} Kullanıcıların içerikler hakkında yazdığı yorumları temsil eden sınıf (user_id, content_id, text) \item \textbf{UserList:} Kullanıcıların oluşturduğu listeleri temsil eden sınıf (id, user_id, name, description, is_public) \item \textbf{UserListItem:} Listelere eklenen içerikleri temsil eden sınıf (list_id, content_id) \item \textbf{Activity:} Tüm kullanıcı aktivitelerini kaydeden sınıf (id, user_id, type, content_id, value, related_id) \item \textbf{Follow:} Kullanıcılar arası takip ilişkilerini temsil eden sınıf (follower_id, following_id) \item \textbf{Like:} Aktiviteler için beğeni kayıtlarını temsil eden sınıf (user_id, activity_id) \item \textbf{Comment:} Aktiviteler için yorum kayıtlarını temsil eden sınıf (user_id, activity_id, text) \end{itemize}
Sınıflar arası ilişkiler: \begin{itemize} \item User ile Content arasında Rating ve Review ilişkileri (One-to-Many) \item User ile UserList arasında sahiplik ilişkisi (One-to-Many) \item UserList ile Content arasında UserListItem üzerinden Many-to-Many ilişki \item User ile Activity arasında One-to-Many ilişki \item User ile User arasında Follow üzerinden Many-to-Many ilişki (self-referential) \item Activity ile Like ve Comment arasında One-to-Many ilişkiler \end{itemize}