Index: frontend/src/components/userProfile/ArtistView.tsx
===================================================================
--- frontend/src/components/userProfile/ArtistView.tsx	(revision 6de2873a46d63a69e2d1d579335ac1f20e9ee5bf)
+++ frontend/src/components/userProfile/ArtistView.tsx	(revision 98992cf92cf1399ea586c26d6dd45842df661773)
@@ -1,8 +1,8 @@
 import { useNavigate } from "react-router-dom";
 import { Music, Disc3 } from "lucide-react";
-import type { ArtistContributionDTO } from "../../utils/types";
+import type { ArtistContribution } from "../../utils/types";
 
 interface ArtistViewProps {
-  contributions: ArtistContributionDTO[];
+  contributions: ArtistContribution[];
 }
 
Index: frontend/src/components/userProfile/ListenerView.tsx
===================================================================
--- frontend/src/components/userProfile/ListenerView.tsx	(revision 6de2873a46d63a69e2d1d579335ac1f20e9ee5bf)
+++ frontend/src/components/userProfile/ListenerView.tsx	(revision 98992cf92cf1399ea586c26d6dd45842df661773)
@@ -1,9 +1,9 @@
 import { useNavigate } from "react-router-dom";
 import { Heart, ListMusic, Music, Album } from "lucide-react";
-import type { Playlist, MusicalEntityDTO } from "../../utils/types";
+import type { Playlist, MusicalEntity } from "../../utils/types";
 
 interface ListenerViewProps {
-  likedEntities: MusicalEntityDTO[];
-  playlists?: Playlist[];
+  likedEntities: MusicalEntity[] | [];
+  playlists: Playlist[] | [];
 }
 
@@ -11,6 +11,6 @@
   const navigate = useNavigate();
 
-  const likedSongs = likedEntities.filter((e) => e.type === "SONG");
-  const likedAlbums = likedEntities.filter((e) => e.type === "ALBUM");
+  const likedSongs = likedEntities?.filter((e) => e.type === "SONG");
+  const likedAlbums = likedEntities?.filter((e) => e.type === "ALBUM");
 
   return (
@@ -55,5 +55,5 @@
       )}
 
-      {likedSongs.length > 0 && (
+      {likedSongs && likedSongs.length > 0 && (
         <section>
           <div className="flex items-center gap-2 mb-6 pb-2 border-b-2 border-gray-200">
@@ -61,5 +61,5 @@
             <h3 className="text-2xl font-bold text-gray-800">Liked Songs</h3>
             <span className="text-sm text-gray-400 ml-1">
-              ({likedSongs.length})
+              ({likedSongs?.length})
             </span>
           </div>
@@ -90,5 +90,5 @@
       )}
 
-      {likedAlbums.length > 0 && (
+      {likedAlbums && likedAlbums.length > 0 && (
         <section>
           <div className="flex items-center gap-2 mb-6 pb-2 border-b-2 border-gray-200">
@@ -120,12 +120,16 @@
       )}
 
-      {likedEntities.length === 0 && (!playlists || playlists.length === 0) && (
-        <div className="flex flex-col items-center justify-center py-16 text-gray-300">
-          <p className="text-lg font-medium text-gray-400">Nothing here yet</p>
-          <p className="text-sm text-gray-400 mt-1">
-            Start exploring music to build your collection
-          </p>
-        </div>
-      )}
+      {likedEntities &&
+        likedEntities.length === 0 &&
+        (!playlists || playlists.length === 0) && (
+          <div className="flex flex-col items-center justify-center py-16 text-gray-300">
+            <p className="text-lg font-medium text-gray-400">
+              Nothing here yet
+            </p>
+            <p className="text-sm text-gray-400 mt-1">
+              Start exploring music to build your collection
+            </p>
+          </div>
+        )}
     </div>
   );
Index: frontend/src/pages/UserDetailView.tsx
===================================================================
--- frontend/src/pages/UserDetailView.tsx	(revision 6de2873a46d63a69e2d1d579335ac1f20e9ee5bf)
+++ frontend/src/pages/UserDetailView.tsx	(revision 98992cf92cf1399ea586c26d6dd45842df661773)
@@ -5,12 +5,11 @@
 import ListenerView from "../components/userProfile/ListenerView";
 import type {
-  ArtistContributionDTO,
-  MusicalEntityDTO,
+  MusicalEntity,
   Playlist,
+  ArtistContribution,
 } from "../utils/types";
 
-interface User {
+interface BaseUser {
   id: number;
-  username: string;
   fullName: string;
   userType: string;
@@ -18,15 +17,17 @@
   following: number;
   isFollowedByCurrentUser: boolean;
+}
 
-  musicalEntities?: {
-    contributions: ArtistContributionDTO[];
-  };
+interface Artist extends BaseUser {
+  userType: "ARTIST";
+  contributions: ArtistContribution[];
+}
+interface Listener extends BaseUser {
+  userType: "LISTENER";
+  likedEntities: MusicalEntity[];
+  createdPlaylists: Playlist[];
+}
 
-  likes?: {
-    likedEntities: MusicalEntityDTO[];
-  };
-
-  createdPlaylists?: Playlist[];
-}
+type UserProfile = Artist | Listener;
 
 const UserDetail = () => {
@@ -34,5 +35,5 @@
   const { userId } = useParams();
   const navigate = useNavigate();
-  const [user, setUser] = useState<User | null>(null);
+  const [user, setUser] = useState<UserProfile | null>(null);
   const [error, setError] = useState<string | null>(null);
   const [isFollowing, setIsFollowing] = useState(false);
@@ -43,8 +44,7 @@
     setIsFollowing(true);
     try {
-      const response = await axiosInstance.post<User>(
+      const response = await axiosInstance.post<UserProfile>(
         `/users/follow/${userId}`,
       );
-      setUser(response.data);
     } catch (err: any) {
       console.error(err.response?.data?.error);
@@ -59,4 +59,5 @@
       try {
         const response = await axiosInstance.get(`/users/${userId}`);
+        console.log(response.data);
 
         setUser(response.data);
@@ -135,11 +136,9 @@
         </div>
 
-        {user.userType === "ARTIST" && user.musicalEntities?.contributions && (
-          <ArtistView contributions={user.musicalEntities.contributions} />
-        )}
-
-        {user.userType === "LISTENER" && user.likes?.likedEntities && (
+        {user.userType === "ARTIST" ? (
+          <ArtistView contributions={user.contributions} />
+        ) : (
           <ListenerView
-            likedEntities={user.likes.likedEntities}
+            likedEntities={user.likedEntities}
             playlists={user.createdPlaylists}
           />
Index: frontend/src/utils/types.ts
===================================================================
--- frontend/src/utils/types.ts	(revision 6de2873a46d63a69e2d1d579335ac1f20e9ee5bf)
+++ frontend/src/utils/types.ts	(revision 98992cf92cf1399ea586c26d6dd45842df661773)
@@ -1,28 +1,28 @@
 export interface User {
-	username: string;
-	fullName: string;
-	email?: string;
-	profilePhoto?: string | null;
-	role?: "ADMIN" | "NONADMIN";
+  username: string;
+  fullName: string;
+  email?: string;
+  profilePhoto?: string | null;
+  role?: "ADMIN" | "NONADMIN";
 }
 
-export interface ArtistContributionDTO {
-	musicalEntityId: number;
-	title: string;
-	genre: string;
-	role: string;
-	entityType: string;
+export interface ArtistContribution {
+  musicalEntityId: number;
+  title: string;
+  genre: string;
+  role: string;
+  entityType: string;
 }
-export interface MusicalEntityDTO {
-	id: number;
-	title: string;
-	genre: string;
-	type: string;
+export interface MusicalEntity {
+  id: number;
+  title: string;
+  genre: string;
+  type: string;
 }
 
 export interface Playlist {
-	id: number;
-	name: string;
-	cover: string;
-	creatorName: string;
+  id: number;
+  name: string;
+  cover: string;
+  creatorName: string;
 }
