Index: frontend/src/components/userProfile/AllUsersHelper.tsx
===================================================================
--- frontend/src/components/userProfile/AllUsersHelper.tsx	(revision d47e22514aceaaacf9474187f2d3ee201e310ecd)
+++ frontend/src/components/userProfile/AllUsersHelper.tsx	(revision 0f71490112c86ba2e2d18bbf12dac1b42e534433)
@@ -1,5 +1,5 @@
 import React, { useEffect, useState } from "react";
 import { useNavigate } from "react-router-dom";
-
+import axiosInstance from "../../api/axiosInstance";
 interface User {
   id: number;
@@ -16,7 +16,6 @@
   useEffect(() => {
     const fetchUsers = async () => {
-      const response = await fetch("http://localhost:8080/users/all");
-      const data = await response.json();
-      setUsers(data);
+      const response = axiosInstance.get("/users/all");
+      setUsers((await response).data);
     };
     fetchUsers();
@@ -30,17 +29,23 @@
     e.preventDefault();
     try {
-      const response = await fetch(
-        `http://localhost:8080/users/search?name=${searchedUser}`,
-      );
-      if (!response.ok) throw new Error("Search failed");
-
-      const data = await response.json();
-      setUsers(data);
+      const response = await axiosInstance.get(`/users/search`, {
+        params: { name: searchedUser },
+      });
+      setUsers(response.data);
     } catch (err: any) {
-      setError(err.message);
+      const errorMessage = err.response?.data?.error || "Search failed";
+      setError(errorMessage);
     }
   };
 
   if (users.length == 0) return <div className="p-6">Loading...</div>;
+  if (error) {
+    return (
+      <div className="p-6 bg-red-50 border border-red-200 text-red-700 rounded-lg">
+        <h2 className="font-bold">Error</h2>
+        <p>{error}</p>
+      </div>
+    );
+  }
 
   return (
Index: frontend/src/components/userProfile/ArtistView.tsx
===================================================================
--- frontend/src/components/userProfile/ArtistView.tsx	(revision d47e22514aceaaacf9474187f2d3ee201e310ecd)
+++ frontend/src/components/userProfile/ArtistView.tsx	(revision 0f71490112c86ba2e2d18bbf12dac1b42e534433)
@@ -1,11 +1,5 @@
 import { useNavigate } from "react-router-dom";
 import { Music, Disc3, Mic2 } from "lucide-react";
-
-interface ArtistContributionDTO {
-  musicalEntityId: number;
-  title: string;
-  role: string;
-  entityType: string;
-}
+import type { ArtistContributionDTO } from "../../types";
 
 interface ArtistViewProps {
@@ -16,6 +10,6 @@
   const navigate = useNavigate();
 
-  const albums = contributions.filter((c) => c.entityType === "Album");
-  const songs = contributions.filter((c) => c.entityType === "Song");
+  const albums = contributions.filter((c) => c.entityType === "ALBUM");
+  const songs = contributions.filter((c) => c.entityType === "SONG");
 
   const getRoleColor = (role: string) => {
@@ -31,5 +25,4 @@
   return (
     <div className="mt-8">
-      {/* Albums Section */}
       {albums.length > 0 && (
         <div className="mb-12">
@@ -91,5 +84,5 @@
                   </h3>
                   <div className="flex items-center gap-2 mt-1">
-                    <Mic2 className="w-4 h-4 text-gray-400" />
+                    {song.genre}
                   </div>
                 </div>
Index: frontend/src/components/userProfile/UserDetailView.tsx
===================================================================
--- frontend/src/components/userProfile/UserDetailView.tsx	(revision d47e22514aceaaacf9474187f2d3ee201e310ecd)
+++ frontend/src/components/userProfile/UserDetailView.tsx	(revision 0f71490112c86ba2e2d18bbf12dac1b42e534433)
@@ -3,25 +3,8 @@
 import ArtistView from "./ArtistView";
 import ListenerView from "./ListenerView";
-
-interface MusicalEntityDTO {
-  id: number;
-  title: string;
-  genre: string;
-  type: string;
-}
-
-interface ArtistContributionDTO {
-  musicalEntityId: number;
-  title: string;
-  role: string;
-  entityType: string;
-}
-
-interface Playlist {
-  id: number;
-  name: string;
-  cover: string;
-  creatorName: string;
-}
+import axiosInstance from "../../api/axiosInstance";
+import type { ArtistContributionDTO } from "../../types";
+import type { MusicalEntityDTO } from "../../types";
+import type { Playlist } from "../../types";
 
 interface User {
@@ -32,4 +15,5 @@
   followers: number;
   following: number;
+  isFollowedByCurrentUser: boolean;
 
   musicalEntities?: {
@@ -45,4 +29,5 @@
 
 const UserDetail = () => {
+  // user refers to the selected user NOT to the user from context
   const { userId } = useParams();
   const navigate = useNavigate();
@@ -54,15 +39,11 @@
       setError(null);
       try {
-        const response = await fetch(`http://localhost:8080/users/${userId}`);
+        const response = await axiosInstance.get(`/users/${userId}`);
 
-        if (!response.ok) {
-          const errorData = await response.json();
-          throw new Error(errorData.error || "Failed to fetch user");
-        }
-
-        const data = await response.json();
-        setUser(data);
+        setUser(response.data);
       } catch (err: any) {
-        setError(err.message);
+        const errorMessage =
+          err.response?.data?.error || "Failed to fetch user";
+        setError(errorMessage);
       }
     };
@@ -115,6 +96,6 @@
             </div>
 
-            <button className="px-6 py-2 bg-blue-500 text-white rounded-lg hover:bg-blue-600 transition-colors font-medium">
-              Follow
+            <button className="px-6 py-2 bg-blue-500 hover:bg-blue-600 text-white font-semibold rounded-lg shadow-md transition-colors duration-200 cursor-pointer">
+              {user.isFollowedByCurrentUser ? "Unfollow" : "Follow"}
             </button>
           </div>
Index: frontend/src/types.ts
===================================================================
--- frontend/src/types.ts	(revision d47e22514aceaaacf9474187f2d3ee201e310ecd)
+++ frontend/src/types.ts	(revision 0f71490112c86ba2e2d18bbf12dac1b42e534433)
@@ -1,7 +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 MusicalEntityDTO {
+  id: number;
+  title: string;
+  genre: string;
+  type: string;
+}
+
+export interface Playlist {
+  id: number;
+  name: string;
+  cover: string;
+  creatorName: string;
+}
