Index: chapterx-frontend/src/store/authStore.ts
===================================================================
--- chapterx-frontend/src/store/authStore.ts	(revision 73b69b22fa1e9888b8530a66db4a150efb8f52bc)
+++ chapterx-frontend/src/store/authStore.ts	(revision d300631ac3354730c3b03cb7b160974af50e7894)
@@ -19,4 +19,5 @@
   updateUserRole: (userId: number, role: UserRole) => void
   addUser: (user: User) => void
+  fetchAllUsers: () => Promise<void>
 }
 
@@ -135,4 +136,25 @@
       addUser: (user: User) =>
         set(state => ({ allUsers: [...state.allUsers, user] })),
+
+      fetchAllUsers: async () => {
+        try {
+          const res = await axios.get(`${API_BASE}/users`)
+          const data: any[] = res.data?.users ?? res.data ?? []
+          const users: User[] = data.map((u: any) => ({
+            user_id: u.id,
+            username: u.username,
+            email: u.email ?? '',
+            name: u.name ?? u.username,
+            surname: u.surname ?? '',
+            role: (u.role ?? 'regular') as UserRole,
+            created_at: u.createdAt ?? new Date().toISOString(),
+            follower_count: 0,
+            following_count: 0,
+          }))
+          set({ allUsers: users })
+        } catch {
+          // keep existing
+        }
+      },
     }),
     {
Index: chapterx-frontend/src/store/storyStore.ts
===================================================================
--- chapterx-frontend/src/store/storyStore.ts	(revision 73b69b22fa1e9888b8530a66db4a150efb8f52bc)
+++ chapterx-frontend/src/store/storyStore.ts	(revision d300631ac3354730c3b03cb7b160974af50e7894)
@@ -73,4 +73,5 @@
   fetchStories: () => Promise<void>
   fetchChapters: () => Promise<void>
+  fetchCollaborations: () => Promise<void>
   fetchReadingLists: () => Promise<void>
   fetchUserReadingLists: (userId: number) => Promise<void>
@@ -98,7 +99,7 @@
 
   // Collaboration actions
-  addCollaboration: (collab: Collaboration) => void
+  addCollaboration: (collab: Collaboration) => Promise<void>
   updateCollaborationPermission: (userId: number, storyId: number, level: PermissionLevel) => void
-  removeCollaboration: (userId: number, storyId: number) => void
+  removeCollaboration: (userId: number, storyId: number) => Promise<void>
 
   // AI Suggestion actions
@@ -175,4 +176,25 @@
     } catch {
       // keep mock data on failure
+    }
+  },
+
+  fetchCollaborations: async () => {
+    try {
+      const res = await axios.get(`${API}/collaborations`)
+      const data: any[] = res.data ?? []
+      const collaborations: Collaboration[] = data.map((c: any) => ({
+        collab_id: c.id,
+        story_id: c.storyId,
+        user_id: c.userId,
+        username: c.username ?? '',
+        name: c.name ?? c.username ?? '',
+        story_title: '',
+        role: 'editor' as any,
+        permission_level: 3 as any,
+        joined_at: c.createdAt,
+      }))
+      set({ collaborations })
+    } catch {
+      // keep existing
     }
   },
@@ -364,6 +386,16 @@
     get().likedStories.some(l => l.userId === userId && l.storyId === storyId),
 
-  addCollaboration: (collab) =>
-    set(state => ({ collaborations: [...state.collaborations, collab] })),
+  addCollaboration: async (collab) => {
+    set(state => ({ collaborations: [...state.collaborations, collab] }))
+    try {
+      await axios.post(`${API}/collaborations`, {
+        userId: collab.user_id,
+        storyId: collab.story_id,
+        role: collab.role,
+      }, { headers: getAuthHeaders() })
+    } catch {
+      // keep optimistic
+    }
+  },
 
   updateCollaborationPermission: (userId, storyId, level) =>
@@ -376,10 +408,16 @@
     })),
 
-  removeCollaboration: (userId, storyId) =>
+  removeCollaboration: async (userId, storyId) => {
     set(state => ({
       collaborations: state.collaborations.filter(
         c => !(c.user_id === userId && c.story_id === storyId)
       ),
-    })),
+    }))
+    try {
+      await axios.delete(`${API}/collaborations/user/${userId}/story/${storyId}`, { headers: getAuthHeaders() })
+    } catch {
+      // keep optimistic
+    }
+  },
 
   fetchSuggestions: async () => {
