diff --git a/src/App.js b/src/App.js
index e47e7e2..4a74de6 100644
--- a/src/App.js
+++ b/src/App.js
@@ -24,6 +24,7 @@
 import UserInvite from './pages/UserCenter/UserInvite';
 import UserInfo from './pages/UserInfo/UserInfo';
 import UserLayout from './pages/UserCenter/UserLayout';
+import NewUserGuide from './pages/NewUserGuide/NewUserGuide';
 
 function RedirectToAuth() {
   if (typeof window !== 'undefined') {
@@ -73,6 +74,7 @@
           <Route path="/messages" component={() => <PrivateRoute component={MessagePage} />} />
           <Route path="/level" component={() => <PrivateRoute component={LevelPage} />} />
           <Route path="/information/:userId" component={({ userId }) => <PrivateRoute component={() => <UserInfo userId={userId} />} />} />
+          <Route path="/new-user-guide" component={() => <PrivateRoute component={NewUserGuide} />} />
 
           {/* 用户中心路由 */}
           <Route path="/user/profile" component={() => (
diff --git a/src/components/Header.css b/src/components/Header.css
index f322e13..017ba1d 100644
--- a/src/components/Header.css
+++ b/src/components/Header.css
@@ -90,5 +90,28 @@
   transform: scale(1.1); /* 选中项微微放大 */
   line-height: 40px; /* 调整line-height，使文字更居中 */
 }
+/* 新手指南按钮 */
+.guide-button {
+  display: flex;
+  align-items: center;
+  background-color: #a67c6a; /* 柔棕底色 */
+  color: #fff;
+  border: none;
+  border-radius: 20px;
+  padding: 6px 12px;
+  font-size: 16px;
+  font-weight: 500;
+  cursor: pointer;
+  transition: background-color 0.3s ease, transform 0.2s ease;
+}
+
+.guide-button:hover {
+  background-color: #8d6e63; /* 深一点 hover */
+  transform: scale(1.05);
+}
+
+.guide-button span {
+  user-select: none;
+}
 
 
diff --git a/src/components/Header.jsx b/src/components/Header.jsx
index 10e8efb..e0a8495 100644
--- a/src/components/Header.jsx
+++ b/src/components/Header.jsx
@@ -2,6 +2,7 @@
 import './Header.css';
 import logo from '../assets/logo.png';
 import { useUser } from '../context/UserContext';
+import { BookOpen } from '@icon-park/react';  // 导入图标组件
 
 const Header = () => {
   const [currentPath, setCurrentPath] = useState(window.location.pathname);
@@ -39,7 +40,18 @@
           <img src={logo} alt="网站 logo" className="logo" />
           <span className="site-name">Echo</span>
         </div>
-        <div className="user-and-message">
+        <div className="user-and-message" style={{ display: 'flex', alignItems: 'center', gap: '12px' }}>
+          {/* 新手指南图标，放在头像左边 */}
+        <button
+          className="guide-button"
+          onClick={() => handleLinkClick('/new-user-guide')}
+          title="新手指南"
+        >
+          <BookOpen theme="outline" size="20" fill="#fff" />
+          <span style={{ marginLeft: '6px' }}>新手指南</span>
+        </button>
+
+
           <a href="/user/profile">
             <img
               src={user?.avatarUrl}
diff --git a/src/context/UserContext.js b/src/context/UserContext.js
index 7b75005..c8c65e8 100644
--- a/src/context/UserContext.js
+++ b/src/context/UserContext.js
@@ -1,78 +1,3 @@
-// import React, { createContext, useContext, useState, useEffect } from 'react';
-
-// const avatarBaseUrl = process.env.REACT_APP_AVATAR_BASE_URL || '';
-
-// export const UserContext = createContext();
-
-// export const UserProvider = ({ children }) => {
-//   const [user, setUser] = useState(null);
-//   const [loading, setLoading] = useState(true);
-
-//   // ✅ 标准化用户数据结构
-//   const formatUser = (raw) => {
-//     if (!raw) return null;
-//     return {
-//       userId: raw.userId || raw.id || null,
-//       username: raw.username || '匿名用户',
-//       avatarUrl: raw.avatarUrl ? `${avatarBaseUrl}${raw.avatarUrl}` : null,
-//       ...raw, // 保留其它字段（如 email, level 等）
-//     };
-//   };
-
-//   useEffect(() => {
-//     const storedUser = localStorage.getItem('user');
-//     if (storedUser) {
-//       try {
-//         const parsed = JSON.parse(storedUser);
-//         setUser(formatUser(parsed));
-//       } catch (err) {
-//         console.error('本地用户信息解析失败:', err);
-//         localStorage.removeItem('user');
-//         setUser(null);
-//       }
-//     } else {
-//       // 设置默认用户
-//       const defaultUser = {
-//         userId: 1,
-//         username: '测试用户',
-//         avatarUrl: null,
-//       };
-//       localStorage.setItem('user', JSON.stringify(defaultUser));
-//       setUser(formatUser(defaultUser));
-//     }
-//     setLoading(false);
-//   }, []);
-
-//   const saveUser = (userData) => {
-//     if (userData && (userData.userId || userData.id)) {
-//       const formatted = formatUser(userData);
-//       localStorage.setItem('user', JSON.stringify(userData)); // 原始数据存储
-//       setUser(formatted); // 格式化后使用
-//     } else {
-//       console.error('无效的用户数据:', userData);
-//     }
-//   };
-
-//   const logout = () => {
-//     localStorage.removeItem('user');
-//     setUser(null);
-//   };
-
-//   return (
-//     <UserContext.Provider value={{ user, saveUser, logout, loading }}>
-//       {children}
-//     </UserContext.Provider>
-//   );
-// };
-
-// export const useUser = () => {
-//   const context = useContext(UserContext);
-//   if (!context) {
-//     throw new Error('useUser must be used within a UserProvider');
-//   }
-//   return context;
-// };
-
 
 import React, { createContext, useContext, useState, useEffect } from 'react';
 
diff --git a/src/pages/Forum/posts-create/CreatePostPage.jsx b/src/pages/Forum/posts-create/CreatePostPage.jsx
index 28f1a20..5d8e0f2 100644
--- a/src/pages/Forum/posts-create/CreatePostPage.jsx
+++ b/src/pages/Forum/posts-create/CreatePostPage.jsx
@@ -14,7 +14,7 @@
 
   return (
     <div className="create-post-page">
-      <CreatePost userId={user.user_id} />
+      <CreatePost userId={user.userId} />
     </div>
   );
 };
diff --git a/src/pages/Forum/posts-main/components/PostList.jsx b/src/pages/Forum/posts-main/components/PostList.jsx
index 533e726..d5ff736 100644
--- a/src/pages/Forum/posts-main/components/PostList.jsx
+++ b/src/pages/Forum/posts-main/components/PostList.jsx
@@ -177,17 +177,20 @@
                   <div className="post-meta">
                     <span>发布时间：{timeText}</span>
                     <div className="post-actions">
-                      <button className="icon-btn" onClick={() => toggleLike(post.postNo, post.liked, post.user_id)}>
+                      <button className="icon-btn" onClick={() => toggleLike(post.postNo, post.liked,user.userId
+)}>
                         <GoodTwo theme="outline" size="24" fill={post.liked ? '#f00' : '#fff'} />
                         <span>{post.likeCount}</span>
                       </button>
-                      <button className="icon-btn" onClick={() => toggleCollect(post.postNo, post.collected, post.user_id)}>
+                      <button className="icon-btn" onClick={() => toggleCollect(post.postNo, post.collected, user.userId
+)}>
                         <Star theme="outline" size="24" fill={post.collected ? '#ffd700' : '#fff'} />
                         <span>{post.collectCount}</span>
                       </button>
 
                       {canDelete && (
-                        <button className="icon-btn" onClick={() => handleDeletePost(post.postNo, post.user_id)}>
+                        <button className="icon-btn" onClick={() => handleDeletePost(post.postNo, user.userId
+)}>
                           <Delete theme="outline" size="24" fill="#333" />
                         </button>
                       )}
diff --git a/src/pages/NewUserGuide/NewUserGuide.css b/src/pages/NewUserGuide/NewUserGuide.css
new file mode 100644
index 0000000..7149447
--- /dev/null
+++ b/src/pages/NewUserGuide/NewUserGuide.css
@@ -0,0 +1,97 @@
+.new-user-guide-page {
+  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
+  background-color: #f8f3ef; /* 柔和米棕底色 */
+  min-height: 100vh;
+}
+
+.guide-container {
+  display: flex;
+  padding: 32px;
+  max-width: 1000px;
+  margin: 40px auto;
+  background-color: #fffaf7; /* 粉米背景 */
+  border-radius: 16px;
+  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
+}
+
+.guide-nav {
+  width: 200px;
+  display: flex;
+  flex-direction: column;
+  gap: 16px;
+  padding-right: 24px;
+  border-right: 2px solid #e2cfc3;
+}
+
+.guide-nav button {
+  background: none;
+  border: none;
+  font-size: 17px;
+  text-align: left;
+  padding: 10px 12px;
+  cursor: pointer;
+  border-radius: 8px;
+  transition: background 0.3s, color 0.3s;
+  color: #6b4f3b; /* 米棕文字色 */
+}
+
+.guide-nav button:hover {
+  background-color: #f3ded7; /* 柔和粉色hover */
+  color: #4b3325;
+}
+
+.guide-nav button.active {
+  background-color: #eecfc1; /* 活跃标签背景色 */
+  color: #3c271b;
+  font-weight: 600;
+}
+
+.guide-main {
+  flex: 1;
+  padding-left: 32px;
+}
+
+.guide-content h2 {
+  margin-bottom: 16px;
+  font-size: 24px;
+  color: #4e342e;
+  border-bottom: 2px solid #eecfc1;
+  padding-bottom: 6px;
+}
+
+.guide-content ul,
+.guide-content ol {
+  padding-left: 24px;
+  color: #5d4037;
+  line-height: 1.8;
+  font-size: 16px;
+}
+
+.guide-content li {
+  margin-bottom: 10px;
+}
+
+@media (max-width: 768px) {
+  .guide-container {
+    flex-direction: column;
+    padding: 20px;
+  }
+
+  .guide-nav {
+    width: 100%;
+    flex-direction: row;
+    border-right: none;
+    border-bottom: 2px solid #e2cfc3;
+    gap: 8px;
+    margin-bottom: 20px;
+  }
+
+  .guide-nav button {
+    flex: 1;
+    text-align: center;
+  }
+
+  .guide-main {
+    padding-left: 0;
+  }
+}
diff --git a/src/pages/NewUserGuide/NewUserGuide.jsx b/src/pages/NewUserGuide/NewUserGuide.jsx
new file mode 100644
index 0000000..4c4d634
--- /dev/null
+++ b/src/pages/NewUserGuide/NewUserGuide.jsx
@@ -0,0 +1,85 @@
+import Header from '../../components/Header';
+import React, { useState } from 'react';
+import './NewUserGuide.css';
+
+const NewUserGuide = () => {
+  const [activeTab, setActiveTab] = useState('terms');
+
+  const renderContent = () => {
+    switch (activeTab) {
+      case 'terms':
+        return (
+          <div className="guide-content">
+            <h2>名词解释</h2>
+            <p>在本平台中，我们使用以下术语：</p>
+            <ul>
+              <li><strong>种子：</strong> 表示可下载的资源文件索引信息。</li>
+              <li><strong>做种：</strong> 指上传资源供他人下载。</li>
+              <li><strong>分享率：</strong> 上传流量与下载流量的比值。</li>
+              <li><strong>魔力值：</strong> 用于奖励活跃用户的虚拟积分。</li>
+              {/* 可继续添加名词 */}
+            </ul>
+          </div>
+        );
+      case 'tutorial':
+        return (
+          <div className="guide-content">
+            <h2>详细教程</h2>
+            <ol>
+              <li>注册并完善个人资料</li>
+              <li>浏览并下载感兴趣的种子资源</li>
+              <li>做种、评论、评分获得积分</li>
+              <li>发布你的第一个种子</li>
+              {/* 可继续扩展详细步骤 */}
+            </ol>
+          </div>
+        );
+      case 'tasks':
+        return (
+          <div className="guide-content">
+            <h2>成长任务</h2>
+            <p>完成以下任务可快速熟悉平台并获得奖励：</p>
+            <ul>
+              <li>🎯 浏览任意种子页面</li>
+              <li>🗣️ 在论坛发一条评论</li>
+              <li>📤 上传你的第一个资源</li>
+              <li>🌟 连续登录 3 天</li>
+            </ul>
+          </div>
+        );
+      default:
+        return null;
+    }
+  };
+
+  return (
+    <div className="new-user-guide-page">
+      <Header />
+      <div className="guide-container">
+        <div className="guide-nav">
+          <button
+            className={activeTab === 'terms' ? 'active' : ''}
+            onClick={() => setActiveTab('terms')}
+          >
+            名词解释
+          </button>
+          <button
+            className={activeTab === 'tutorial' ? 'active' : ''}
+            onClick={() => setActiveTab('tutorial')}
+          >
+            详细教程
+          </button>
+          <button
+            className={activeTab === 'tasks' ? 'active' : ''}
+            onClick={() => setActiveTab('tasks')}
+          >
+            成长任务
+          </button>
+        </div>
+        <div className="guide-main">{renderContent()}</div>
+      </div>
+    </div>
+  );
+};
+
+export default NewUserGuide;
diff --git a/src/pages/UserCenter/UserNav.jsx b/src/pages/UserCenter/UserNav.jsx
index 64dd375..3456195 100644
--- a/src/pages/UserCenter/UserNav.jsx
+++ b/src/pages/UserCenter/UserNav.jsx
@@ -12,7 +12,7 @@
     { to: '/user/friends', label: '我的好友' },
     { to: '/user/groups', label: '我的群组' },
     { to: '/user/collections', label: '我的收藏' },
-    { to: '/user/newbie-tasks', label: '新手考核' },
+    // { to: '/user/newbie-tasks', label: '新手考核' },
     { to: '/user/invite', label: '邀请新用户' },
   ];
 
