Index: chapterx-frontend/src/store/authStore.ts
===================================================================
--- chapterx-frontend/src/store/authStore.ts	(revision 0b502c2664f4d6c64626f3394b4f1dc540e0aa9b)
+++ chapterx-frontend/src/store/authStore.ts	(revision 99c1e45f4ac45a164229bc6f60f3b05bc26df047)
@@ -2,5 +2,4 @@
 import { persist } from 'zustand/middleware'
 import { User, UserRole } from '../types'
-import { mockUsers } from '../data/mockData'
 import axios from 'axios'
 
@@ -153,4 +152,5 @@
           const res = await axios.get(`${API_BASE}/users`)
           const data: any[] = res.data?.users ?? res.data ?? []
+          const existing = get().allUsers
           const users: User[] = data.map((u: any) => ({
             user_id: u.id,
@@ -163,4 +163,5 @@
             follower_count: 0,
             following_count: 0,
+            bio: existing.find(e => e.user_id === u.id)?.bio,
           }))
           set({ allUsers: users })
Index: chapterx-frontend/src/store/storyStore.ts
===================================================================
--- chapterx-frontend/src/store/storyStore.ts	(revision 0b502c2664f4d6c64626f3394b4f1dc540e0aa9b)
+++ chapterx-frontend/src/store/storyStore.ts	(revision 99c1e45f4ac45a164229bc6f60f3b05bc26df047)
@@ -138,7 +138,8 @@
         story_id: s.id,
         user_id: s.userId,
-        title: s.shortDescription,
-        short_description: s.shortDescription,
-        content: s.content,
+        title: s.title ?? '',
+        short_description: s.shortDescription ?? '',
+        content: s.content ?? '',
+        cover_image: s.image ?? undefined,
         mature_content: s.matureContent,
         status: 'published' as StoryStatus,
@@ -203,8 +204,10 @@
   addStory: async (story) => {
     set(state => ({ stories: [...state.stories, story] }))
+    const imageUrl = story.cover_image?.startsWith('http') ? story.cover_image : null
     const res = await axios.post(`${API}/stories`, {
       matureContent: story.mature_content,
-      shortDescription: story.short_description || story.title,
-      image: null,
+      title: story.title,
+      shortDescription: story.short_description,
+      image: imageUrl,
       content: story.content,
       userId: story.user_id,
@@ -233,9 +236,12 @@
       const story = get().stories.find(s => s.story_id === id)
       if (!story) return
+      const rawImage = partial.cover_image ?? story.cover_image ?? null
+      const imageUrl = rawImage?.startsWith('http') ? rawImage : null
       await axios.put(`${API}/stories/${id}`, {
         id,
         matureContent: partial.mature_content ?? story.mature_content,
-        shortDescription: partial.title ?? partial.short_description ?? story.title ?? story.short_description,
-        image: null,
+        title: partial.title ?? story.title,
+        shortDescription: partial.short_description ?? story.short_description,
+        image: imageUrl,
         content: partial.content ?? story.content,
       }, { headers: getAuthHeaders() })
@@ -335,10 +341,16 @@
   },
 
-  incrementViewCount: (chapterId) =>
+  incrementViewCount: (chapterId) => {
+    const chapter = get().chapters.find(c => c.chapter_id === chapterId)
     set(state => ({
       chapters: state.chapters.map(c =>
         c.chapter_id === chapterId ? { ...c, view_count: c.view_count + 1 } : c
       ),
-    })),
+      stories: state.stories.map(s =>
+        s.story_id === chapter?.story_id ? { ...s, total_views: s.total_views + 1 } : s
+      ),
+    }))
+    axios.patch(`${API}/chapters/${chapterId}/view`, null, { headers: getAuthHeaders() }).catch(() => {})
+  },
 
   addComment: (comment) =>
