Day 5 / 7

实战:从零搭建完整项目

用 Claude Code 从零开始,搭建一个全栈 Web 应用

📖 预计阅读时间:40分钟🎯 难度:实战

今天我们要完成一个完整的项目:从项目初始化、数据库设计、API 开发、前端界面,到测试和部署准备。全程由 Claude Code 辅助,体验 AI 驱动的开发流程。

项目目标:个人博客系统

功能需求

核心功能

  • • 文章发布、编辑、删除
  • • Markdown 编辑器
  • • 文章分类和标签
  • • 评论系统
  • • 用户认证

技术栈

  • • Next.js 14 + TypeScript
  • • Prisma + PostgreSQL
  • • NextAuth.js
  • • Tailwind CSS
  • • React Markdown

第一步:项目初始化

让 Claude Code 帮我们创建项目骨架和基础配置。

1.1 创建 Next.js 项目

claude "创建一个 Next.js 14 项目:
项目名:my-blog
使用 TypeScript
使用 App Router
使用 Tailwind CSS
使用 ESLint"

1.2 安装依赖

claude "安装项目依赖:
1. @prisma/client prisma - 数据库 ORM
2. next-auth - 用户认证
3. react-markdown - Markdown 渲染
4. zod - 数据验证
5. @tanstack/react-query - 数据请求"

1.3 配置环境变量

claude "创建环境变量配置:
.env.example - 示例文件
.env.local - 本地开发环境

包含:
- DATABASE_URL
- NEXTAUTH_SECRET
- NEXTAUTH_URL"

💡 AI 会自动做什么

  • • 运行 npx create-next-app 命令
  • • 安装所有依赖包
  • • 创建配置文件
  • • 生成随机的 NEXTAUTH_SECRET
  • • 更新 .gitignore

第二步:数据库设计

使用 Prisma 设计数据库模型。

2.1 初始化 Prisma

claude "初始化 Prisma:
1. 运行 npx prisma init
2. 配置 PostgreSQL 连接
3. 创建数据模型"

2.2 设计数据模型

claude "在 prisma/schema.prisma 创建数据模型:

User 模型:
- id, email, name, password, avatar
- 关联:posts, comments

Post 模型:
- id, title, content, slug, published
- authorId, categoryId
- createdAt, updatedAt
- 关联:author, category, tags, comments

Category 模型:
- id, name, slug
- 关联:posts

Tag 模型:
- id, name, slug
- 关联:posts(多对多)

Comment 模型:
- id, content, authorId, postId
- createdAt
- 关联:author, post"

AI 会生成完整的 Prisma schema,包括所有关联关系和索引。

2.3 生成数据库

claude "执行数据库迁移:
1. npx prisma migrate dev --name init
2. npx prisma generate
3. 创建 lib/prisma.ts 客户端"

第三步:API 开发

创建 RESTful API 接口。

3.1 文章 API

claude "创建文章 API 路由:
app/api/posts/route.ts
- GET: 获取文章列表(支持分页、筛选)
- POST: 创建文章(需要认证)

app/api/posts/[id]/route.ts
- GET: 获取单篇文章
- PUT: 更新文章(需要认证)
- DELETE: 删除文章(需要认证)

使用 Zod 验证请求参数"

3.2 评论 API

claude "创建评论 API:
app/api/posts/[id]/comments/route.ts
- GET: 获取文章评论
- POST: 添加评论(需要认证)

app/api/comments/[id]/route.ts
- DELETE: 删除评论(需要认证)"

3.3 用户认证

claude "配置 NextAuth.js:
app/api/auth/[...nextauth]/route.ts
- 使用 Credentials Provider
- 密码使用 bcrypt 加密
- 配置 session 策略
- 创建登录、注册接口"

✨ API 开发要点

  • • 所有接口都有错误处理
  • • 使用 Zod 验证请求参数
  • • 需要认证的接口检查 session
  • • 返回统一的 JSON 格式
  • • 添加适当的 HTTP 状态码

第四步:前端开发

创建用户界面和交互逻辑。

4.1 首页 - 文章列表

claude "创建首页:
app/page.tsx
- 展示文章列表
- 支持分页
- 显示分类筛选
- 响应式布局

components/PostCard.tsx
- 文章卡片组件
- 显示标题、摘要、作者、日期"

4.2 文章详情页

claude "创建文章详情页:
app/posts/[slug]/page.tsx
- 使用 react-markdown 渲染内容
- 显示作者信息
- 显示标签
- 评论列表和表单

components/MarkdownRenderer.tsx
- Markdown 渲染组件
- 代码高亮
- 自定义样式"

4.3 文章编辑器

claude "创建文章编辑器:
app/admin/posts/new/page.tsx
app/admin/posts/[id]/edit/page.tsx

components/MarkdownEditor.tsx
- Markdown 编辑器
- 实时预览
- 标题、分类、标签选择
- 发布/草稿切换"

4.4 用户认证页面

claude "创建认证页面:
app/login/page.tsx - 登录页
app/register/page.tsx - 注册页

components/AuthForm.tsx
- 表单验证
- 错误提示
- 加载状态"

第五步:测试与优化

5.1 单元测试

claude "添加测试:
1. 安装 Jest 和 React Testing Library
2. 为 API 路由添加测试
3. 为组件添加测试
4. 配置测试脚本"

5.2 性能优化

claude "优化性能:
1. 添加图片优化(next/image)
2. 实现 ISR(增量静态再生成)
3. 添加 loading 状态
4. 优化数据库查询(添加索引)"

5.3 SEO 优化

claude "添加 SEO:
1. 配置 metadata(title, description)
2. 生成 sitemap.xml
3. 配置 robots.txt
4. 添加 Open Graph 标签"

第六步:部署准备

6.1 Docker 配置

claude "创建 Docker 配置:
1. Dockerfile - 生产环境镜像
2. docker-compose.yml - 本地开发环境
3. .dockerignore"

6.2 CI/CD 配置

claude "配置 GitHub Actions:
.github/workflows/ci.yml
- 运行测试
- 检查代码规范
- 构建 Docker 镜像"

6.3 部署文档

claude "创建部署文档:
DEPLOYMENT.md
- 环境要求
- 部署步骤
- 环境变量配置
- 常见问题"

项目总结

完成的功能

后端

  • ✓ 完整的数据库设计
  • ✓ RESTful API 接口
  • ✓ 用户认证系统
  • ✓ 数据验证和错误处理

前端

  • ✓ 响应式界面
  • ✓ Markdown 编辑器
  • ✓ 评论系统
  • ✓ 用户认证界面

🎉 恭喜!

你已经用 Claude Code 完成了一个完整的全栈项目。整个过程中:

  • • AI 帮你写了 90% 的代码
  • • 你专注在架构设计和需求确认
  • • 代码质量高,符合最佳实践
  • • 包含测试和文档
  • • 可以直接部署上线

💡 关键经验

  • • 分步骤进行,每步确认后再继续
  • • 明确技术栈和代码规范
  • • 让 AI 先分析需求,再动手
  • • 及时测试,发现问题立即修复
  • • 保持对话上下文,AI 会记住之前的决策

今日小结

你已经学会了:

  • 用 Claude Code 从零搭建完整项目
  • 设计数据库模型和 API 接口
  • 开发前后端功能
  • 添加测试和优化性能
  • 准备部署和上线

明天预告

在 Day 6,我们将学习:

  • • 高级配置和权限管理
  • • 与 Git 的深度集成
  • • 团队协作最佳实践
  • • 自定义工作流

🎓 加入云途AGI社群,获取更多学习资源

社群提供基础资源、答疑支持和陪伴式学习,帮助你更好地掌握 AI 工具

📚

基础资源

入门教程、工具指南、实战案例

💬

答疑支持

遇到问题随时提问,及时获得解答

🤝

陪伴式学习

与同行者一起成长,不再孤单学习