首页 › Vibe coding 项目实战专栏 › VibeCoding实战 个人作品集网站 › 作品八:个人博客系统

作品八:个人博客系统

博客系统是最经典的全栈项目之一 ​

涉及文章发布 、分类管理 、评论互动等功能 。​

通过这个项目 ,你可以学习如何处理 CRUD( 增删改查)操作, 以及用户认证等基础功能。​

•

这个博客系统要支持文章的发布 、编辑 、删除和查看 。​

•

文章可以分类,支持标签 。用户可以注册登录,发布自己的文章 。​

•

访客可以浏览文章,但不能发布 。文章支持 Markdown 格式,可以添加封面图 。​

•

首页显示文章列表,支持分页和搜索。​

​

​

​

飞书文档 - 图片

​

50%

​

​

​

飞书文档 - 图片

​

50%

​

​

​

🔷

技术选型上,前端使用 React + TypeScript + Vite ,样式用 Tailwind CSS 。后端使用 Node.js +Express ,数据库用 MySQL 。用户认证用 JWT(JSON Web Token)。​

文章编辑器可以复用之前做过的Markdown 编辑器。​

​

开发步骤​

1)设计数据库​

开发的第一步是设计数据库。在开始写代码之前,先设计数据库结构。创建一个 database.md 文件,定义需要哪些表,每个表有哪些字段。​

​

代码块​

Plain Text

比如用户表需要:​

id( 主键)​

username( 用户名, 唯一)​

email( 邮箱, 唯一)​

password( 密码,加密存储)​

avatar( 头像 URL)​

created_at(创建时间)。​

文章表需要:​

id ​

title(标题)​

content( 内容,Markdown 格式)​

cover( 封面图 URL)​

category( 分类)​

tags(标签,JSON 数组)​

author_id(作者 ID ,外键关联 users)​

views( 浏览次数)​

created_at ​

updated_at。​

分类表需要:​

id ​

name( 分类名称)​

​

2) 写需求文档​

设计好数据库后,就可以写需求文档了。创建 PRD.md 文件:​

​

代码块​

Plain Text

# 个人博客系统 PRD​

​

## 核心功能​

### 用户功能​

- 注册:用户名 、邮箱 、密码​

- 登录:返回 JWT token​

- 个人中心:查看和编辑个人信息​

​

### 文章功能​

- 发布文章:标题 、内容 、分类 、标签 、封面​

- 编辑文章:修改已发布的文章​

- 删除文章:只能删除自己的文章​

​

3)与 AI 对话开发后端​

有了文档,就可以和 AI 对话开发后端了 。打开 Cursor ,开始和 AI 对话。第一步,初始化后端项目 :​

​

代码块​

Plain Text

请创建一个 Node.js + Express 后端项目 :​

1. 初始化项目 ,安装 express、mysql2、jsonwebtoken、bcrypt 等依赖​

2. 创建基本的项目结构:src/routes( 路由)、src/controllers(控制器)、src/models( 数据模型)、src/middleware( 中间件)、src/config( 配置)​

3. 配置数据库连接​

​

这个提示词说明了要创建什么项目 ,安装哪些依赖,项目结构是什么样的。第二步,创建数据库表:​

​

代码块​

Plain Text

根据 database.md 中的设计,创建数据库表的 SQL 语句。然后创建一个初始化脚本, 自动创建这些表。​

​

AI 会根据你的数据库设计,生成创建表的 SQL 语句。第三步,实现用户注册和登录:​

​

代码块​

Plain Text

实现用户注册和登录功能:​

注册接口 ( POST /api/auth/register):​

- 接收 username、email、password​

- 验证参数( 用户名 3-20 字符, 邮箱格式正确,密码至少 6 位)​

- 检查用户名和邮箱是否已存在​

- 密码用 bcrypt 加密​

- 保存到数据库​

- 返回成功信息​

​

这个提示词详细说明了两个接口的功能要求 。AI 会实现完整的注册和登录逻辑,包括参数验证 、密码加密、 JWT 生成等。​

第四步,实现文章 CRUD:​

​

代码块​

Markdown

实现文章的增删改查功能:​

创建文章( POST /api/posts):​

- 需要登录(验证 JWT token)​

- 接收 title、content、category、tags、cover​

- author_id 从 token 中获取​

- 保存到数据库​

​

这个提示词包含了文章的所有操作 。AI 会实现完整的 CRUD 功能,包括权限验证 、数据查询等。​

4)与 AI 对话开发前端​

后端开发完成后,就可以开发前端了 。建议先用 Postman 或类似工具测试后端接口 ,确保接口正常工作后再开发前端 。这样可以避免前后端同时出问题,不知道问题出在哪里。​

第一步,创建前端项目 :​

​

代码块​

Plain Text

创建 React + TypeScript + Vite 前端项目 ,安装 react-router-dom、axios、react- markdown 等依赖 。配置路由:​

- / 首页( 文章列表)​

- /post/:id 文章详情​

- /write 写文章( 需要登录)​

- /profile 个人中心( 需要登录)​

- /login 登录​

- /register 注册​

​

第二步,实现用户认证:​

​

代码块​

Plain Text

实现用户认证功能:​

1. 创建 AuthContext,管理登录状态和用户信息​

2. Token 存储在 localStorage​

3. 封装 axios, 自动在请求头添加 token​

4. 创建 ProtectedRoute 组件,保护需要登录的页面​

5. 实现登录和注册页面​

​

这个提示词说明了用户认证的实现方式 。AuthContext 用来管理全局的登录状态,ProtectedRoute 用来保护需要登录才能访问的页面。​

第三步,实现文章列表页:​

​

代码块​

Plain Text

实现首页文章列表:​

1. 获取文章列表,显示标题 、封面 、分类 、作者 、时间​

2. 支持分页 ,每页 10 条​

3. 支持分类筛选( 顶部分类标签)​

4. 支持搜索( 搜索框)​

​

第四步,实现文章详情页:​

​

代码块​

Plain Text

实现文章详情页:​

1. 根据 ID 获取文章详情​

2. 使用 react-markdown 渲染文章内容​

3. 显示作者信息 、发布时间 、浏览次数​

4. 如果是自己的文章,显示编辑和删除按钮​

​

第五步,实现写文章页:​

​

代码块​

Plain Text

实现写文章页:​

1. 使用之前做的 Markdown 编辑器​

2. 输入标题 、选择分类 、添加标签 、上传封面​

3. 左侧编辑,右侧实时预览​

​

开发技巧​

在开发全栈应用时,有几个技巧可以提高效率 。首先,使用环境变量管理配置 。数据库连接信息 、JWT 密钥等敏感信息不要硬编码在代码里 ,要用环境变量 。创建 .env 文件,把配置放进去,然后在代码中通过 process.env 读取。​

其次,要做好错误处理 。API 调用可能失败,数据库操作可能出错,要捕获这些错误并返回友好的提示 。可以让 AI 帮你创建一个统一的错误处理中间件。​

最后,开发时可以使用 nodemon 自动重启后端服务,使用 Vite 的热更新功能自动刷新前端页面 ,这样修改代码后不需要手动重启,大大提高开发效率。​

扩展思路​

基础版完成后,可以继续扩展功能 。​

比如添加评论系统,用户可以评论文章;​

添加点赞功能,给喜欢的文章点赞;​

支持文章草稿,保存未发布的文章;​

集成图片上传,上传到云存储;​

添加文章归档,按月份归档;​

支持 RSS 订阅,方便读者订阅;​

优化 SEO ,让文章更容易被搜索引擎收录。​

​

​

​

​

50%

​

​

​

​

50%

​

​

​

​

​

​

50%

​

​

​

​

50%

​

​