logo
0
0
WeChat Login
麻薯 (OpenClaw)<openclaw@cnb.cool>
docs: 补全 FAQ 章节

乡愁 (XiangChou)

基于云开发 + CloudBase AI ToolKit 构建的社交平台项目

Powered by CloudBase

项目简介

乡愁 是一个基于 React + 腾讯云 CloudBase 的全栈社交应用。用户可以分享生活动态、浏览发现内容、关注互动、即时聊天以及购物。项目采用现代化前端技术栈,结合 CloudBase 提供的认证、数据库、云函数和云存储等后端服务能力,实现免服务器全栈开发。

核心功能

  • 社区动态 - 浏览信息流、发布笔记/帖子、点赞评论、收藏分享
  • 社交互动 - 关注/粉丝系统、即时聊天、消息通知
  • 用户中心 - 个人资料编辑、我的帖子管理、收藏夹
  • 搜索发现 - 热门搜索、搜索历史、用户搜索、内容搜索
  • 乡里板块 - 本地化内容展示(Xiangli 页面)
  • 商城购物 - 商品浏览、购物车(Cart)
  • 用户认证 - 用户名密码登录/注册、匿名登录、手机号验证码登录(独立 auth 模块)

项目结构

xiangchou/ ├── xiangguanguli/ # 主应用(前端 + 云函数) │ ├── src/ │ │ ├── app/ │ │ │ ├── components/ # React 组件(Layout、TabBar、UI 组件库) │ │ │ ├── context/ # 全局状态管理 (AppContext) │ │ │ ├── hooks/ # 自定义 Hooks │ │ │ ├── pages/ # 页面组件 │ │ │ └── App.tsx # 应用入口 & 路由配置 │ │ ├── lib/ │ │ │ ├── cloudbase.ts # CloudBase SDK 初始化 │ │ │ ├── auth.ts # 认证工具函数 │ │ │ └── db-utils.ts # 数据库工具 │ │ ├── styles/ # 样式文件(Tailwind、主题、字体) │ │ └── main.tsx # 应用启动 │ ├── cloudfunctions/ # 云函数(26 个) │ │ ├── init-db/ # 数据库初始化 │ │ ├── getOpenId/ # 获取 OpenID │ │ ├── publishNote/ # 发布笔记 │ │ ├── getNotes/ # 获取笔记列表 │ │ ├── createPost/ # 创建帖子 │ │ ├── getPosts/ # 获取帖子列表 │ │ ├── deletePost/ # 删除帖子 │ │ ├── likeNote/ # 点赞笔记 │ │ ├── toggleLike/ # 切换点赞 │ │ ├── toggleFavorite/ # 切换收藏 │ │ ├── getFavorites/ # 获取收藏列表 │ │ ├── createComment/ # 创建评论 │ │ ├── deleteComment/ # 删除评论 │ │ ├── getComments/ # 获取评论列表 │ │ ├── toggleFollow/ # 切换关注 │ │ ├── getFollowers/ # 获取粉丝列表 │ │ ├── getFollowing/ # 获取关注列表 │ │ ├── getProfile/ # 获取用户资料 │ │ ├── updateProfile/ # 更新用户资料 │ │ ├── searchPosts/ # 搜索帖子 │ │ ├── searchUsers/ # 搜索用户 │ │ ├── getHotSearch/ # 获取热门搜索 │ │ ├── getSearchHistory/ # 获取搜索历史 │ │ ├── sendMessage/ # 发送消息 │ │ ├── getMessages/ # 获取消息列表 │ │ ├── getChatMessages/ # 获取聊天记录 │ │ ├── getOrCreateChat/ # 获取或创建会话 │ │ ├── markMessagesAsRead/ # 标记消息已读 │ │ ├── createOrder/ # 创建订单 │ │ ├── getGoods/ # 获取商品列表 │ │ ├── uploadImage/ # 上传图片 │ │ └── collectNote/ # 收集笔记 │ ├── Dockerfile # Docker 镜像配置 │ ├── docker-compose.yml # Docker Compose 编排 │ ├── nginx.conf # Nginx 配置 │ ├── cloudbaserc.json # CloudBase 配置 │ ├── vite.config.ts # Vite 构建配置 │ ├── package.json # 项目依赖 │ └── env.example # 环境变量模板 ├── auth/ # 独立认证模块(手机号登录) │ ├── config.js # CloudBase 配置 │ ├── auth.js # Auth SDK 封装 │ ├── register.html/js # 注册页面 │ ├── login.html/js # 登录页面 │ ├── index.html # 用户中心 │ └── styles.css # 样式 ├── rules/ # AI 编程规则集(CloudBase AI ToolKit) ├── cloudbaserc.json # 仓库级 CloudBase 配置 ├── Assistant.md # CNB NPC 配置 └── README.md # 本文件

技术栈

前端

技术版本说明
React18.3.1UI 框架
TypeScript-类型安全
Vite6.3.5构建工具
React Router7.12.0路由管理
Tailwind CSS4.1.12样式框架
Radix UI-无障碍 UI 组件库
MUI7.3.5Material Design 组件
Lucide React0.487.0图标库
Motion12.23.24动画库
React Hook Form7.55.0表单管理
Recharts2.15.2图表库
Sonner2.0.3Toast 消息提示

后端(CloudBase 云开发)

服务说明
CloudBase Web SDK 2.25.1云开发 SDK
Auth v3身份认证(用户名密码/匿名/手机号)
NoSQL 文档数据库数据存储(users、posts、messages 等集合)
云函数 (26 个)业务逻辑(发布、评论、关注、搜索、聊天等)
云存储文件上传下载(头像、图片等)
静态网站托管前端部署

部署

方式说明
CloudBase 静态托管一键部署到腾讯云
Docker + Nginx容器化部署(含 docker-compose)

快速开始

环境要求

  • Node.js 18+
  • npm 或 pnpm
  • CloudBase 环境(腾讯云)

1. 克隆项目

git clone https://cnb.cool/oiool/xiangchou.git cd xiangchou

2. 安装依赖

cd xiangguanguli npm install

3. 配置环境变量

cp env.example .env.local

编辑 .env.local,填入实际的 CloudBase 配置:

VITE_CLOUDBASE_ENV_ID=你的环境ID VITE_CLOUDBASE_REGION=ap-shanghai VITE_CLOUDBASE_PUBLISHABLE_KEY=你的PublishableKey

Publishable Key 可在 CloudBase 控制台 > API 密钥 获取。

4. 启动开发服务器

npm run dev

访问 http://localhost:5173 查看应用。

5. 构建生产版本

npm run build

构建输出在 dist/ 目录。

部署

方式一:CloudBase 静态托管(推荐)

# 安装 CloudBase CLI npm install -g @cloudbase/cli # 登录 tcb login # 部署 tcb hosting:deploy dist -e hjhsite-4gwrqvh455f57d20

方式二:Docker 部署

# 构建镜像 docker build -t xiangguanguli . # 运行容器 docker run -d -p 80:80 \ -e VITE_CLOUDBASE_PUBLISHABLE_KEY=你的key \ xiangguanguli

或使用 Docker Compose:

# 编辑 .env 文件设置环境变量 cp env.docker.example .env # 启动 docker-compose up -d

CloudBase 配置

环境信息

配置项
环境 IDhjhsite-4gwrqvh455f57d20
环境别名hjhsite
区域ap-shanghai(上海)
云函数根目录./cloudfunctions

控制台入口

登录方式配置

建议在 身份认证管理 中:

  • 必须开启:用户名密码登录(UserNameLogin
  • 可选开启:匿名登录(AnonymousLogin,用于游客模式)
  • 可选开启:短信登录(SmsLogin,需配置短信模板)

页面路由

路径页面是否需要登录
/首页(信息流)
/xiangli乡里板块
/post/:postId帖子详情
/user/:userId用户主页
/user/:userId/notes用户笔记
/user/:userId/followers粉丝列表
/user/:userId/following关注列表
/search搜索结果
/search/users用户搜索
/login登录
/profile个人中心
/create发布内容
/messages消息列表
/chat/:chatId聊天详情
/settings编辑资料
/my-posts我的帖子
/following我的关注
/followers我的粉丝
/favorites收藏夹
/cart购物车

开发规范

CloudBase 使用规范

  1. 认证方式:必须使用 CloudBase Web SDK 内置认证,禁止在云函数中实现明文密码校验
  2. 写操作:前端不直写数据库/不直传云存储,所有写操作统一通过云函数(便于鉴权、校验与审计)
  3. 读操作:简单查询可直连数据库,复杂聚合/状态判断建议走云函数
  4. 错误处理:所有 CloudBase API 调用需包含完整错误处理

代码规范

  • TypeScript 进行类型检查
  • 函数式组件 + React Hooks
  • Tailwind CSS 编写样式
  • Radix UI / MUI 组件库

许可证

本项目基于 Figma 设计 实现。


项目维护者: 如有问题或建议,请通过 Issue 反馈。

本项目基于 CloudBase AI ToolKit 开发,通过 AI 提示词和 MCP 协议 + 云开发,让开发更智能、更高效。

FAQ

Q: 什么是"香臭"? A: 本仓库名称来源于项目代号,详情请咨询项目负责人。

Q: 如何参与开发? A: Fork 本仓库,创建功能分支,完成后提交 Pull Request。